/**
 * 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;
    --primary-color-icon: invert(0);
    --primary-color-sidebar-item: #fefeff;

    --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) !important;
    width: 100%;
    display: grid;
    grid-template-rows: repeat(auto-fill, 109px);
    grid-auto-flow: column;
    grid-template-columns: repeat(auto-fill, 120px);
    padding-top: 15px;
}

.device-desktop .desktop {
    padding-top: 5px;
}

.desktop.desktop-taskbar-position-left {
    margin-left: 50px;
    padding-right: 0;
    padding-bottom: 0;
    height: calc(100vh) !important;
}

.desktop.desktop-taskbar-position-right {
    margin-right: 50px;
    padding-left: 0;
    padding-bottom: 0;
    height: calc(100vh) !important;
}

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

.device-phone .desktop {
    height: calc(100vh - 90px) !important;
    height: calc(100dvh - 90px) !important;
    /* Ensure no left/right padding on mobile, regardless of taskbar position classes */
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !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: none;
}

.item-divider {
    height: 3px;
    width: 100%;
}

.item-container-list .item-divider, .item-container-details .item-divider {
    display: none;
}

.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;
    pointer-events: all;
}

.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-badges .item-badge {
    pointer-events: all;
}

.item-container-list .item-badges {
    /* display: none; */
    justify-content: flex-start !important;
    left: 15px;
    top: 12px;
}
.item-container-list .item-badges .item-badge {
    height: 8px;
    width: 8px;
}

.item-container-details .item-badges {
    /* display: none; */
    justify-content: flex-start !important;
    left: 15px;
    top: 12px;
}
.item-container-details .item-badges .item-badge {
    height: 8px;
    width: 8px;
}


.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: 1px;
    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;
    pointer-events: all;
}

.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;
    margin-bottom: 3px;
}

.item-name-shadow {
    max-width: 109px;
    text-align: center;
    font-weight: 500;
    font-size: 13px;
    display: none;
}

.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;
    pointer-events: all;
}

.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;
    border-radius: 4px;
    border: none;
    transition: opacity .2s;
    user-select: none !important;
    -moz-user-select: none !important;
    -webkit-user-select: none;
    contain: paint;
}

.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;
    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: 25px 10px 10px 15px;
    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: #7a8187;
    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: 3px;
    margin-top: 0px;
}

.window-sidebar-item:hover, .window-sidebar-item.has-open-contextmenu {
    background-color: #5a5d6155;
    cursor: pointer;
}

.window-sidebar-item, .window-sidebar-item.grabbing {
    margin-bottom: 8px;
    margin-top: 2px;
    padding: 4px;
    border-radius: 3px;
    color: var(--primary-color);
    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: var(--primary-color-sidebar-item);
}

.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 #e3e3e35c;
    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);
}
.window-with-menubar .window-body-app {
    height: calc(100% - 65px);
}
.fullpage-mode.device-phone .window-body-app {
    height: calc(100%);
}

.fullpage-mode.device-desktop .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;
    width: initial !important;
}

.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;
    filter: var(--primary-color-icon);
}

.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, .window-selection-area {
    background-color: #afafaf36;
    border: 1px solid #CCC;
}

.window-selection-area{
    position: absolute;
    pointer-events: none;
    display: block;
}

.hidden-selection-area{
    background-color: none;
    border: none;
}

.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
 ***********************************/

.toolbar {
    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;
    left: 50%;
    right: 50%;
    left: 50%;
    transform: translate(-50%);
    top: 0px;
    border-top-right-radius: 0px;
    border-top-left-radius: 0px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    width: max-content;
    overflow: clip;
    box-shadow: rgb(255 255 255 / 14%) 0px 0px 0px 0.5px inset, rgba(0, 0, 0, 0.2) 0px 0px 0px 0.5px, rgba(0, 0, 0, 0.2) 0px 2px 14px;
    position: absolute;
    overflow-y: hidden;
}

.toolbar-hidden {
    box-shadow: rgb(255 255 255 / 44%) 0px 0px 0px 0.5px inset, rgba(0, 0, 0, 0.2) 0px 0px 0px 0.5px, rgba(0, 0, 0, 0.2) 0px 2px 14px;
}

.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 !important;
}

.toolbar-hidden .toolbar-btn {
    opacity: 0;
}

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

.login-error-msg, .signup-error-msg, .publish-website-error-msg, .form-error-msg, .publish-worker-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, .window-publishWorker-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, .publishWorker-published-link {
    text-decoration: none;
    color: #007cff;
}

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

.publishWebsite-published-link-icon, .publishWorker-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;
}

.sharing-form {
    padding: 30px 40px 20px;
    border-bottom: 1px solid #ced7e1;
}

.sharing-item-name {
    font-size: 17px;
    margin-top: 0;
    text-align: center;
    margin-bottom: 40px;
    font-weight: 400;
    color: #303d49;
}

.sharing-already-shared {
    font-size: 14px;
    margin-bottom: 0px;
    color: #303d49;
    text-shadow: 1px 1px white;
}

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

/* Bottom positioned taskbar (default) */
.taskbar.taskbar-position-bottom {
    bottom: 5px;
    left: 50%;
    right: auto;
    top: auto;
    width: auto;
    height: 50px;
    transform: translateX(-50%);
    flex-direction: row;
    justify-content: center;
    writing-mode: initial;
}

/* Left positioned taskbar */
.taskbar.taskbar-position-left {
    left: 0 !important;
    top: 0;
    width: 50px;
    transform: none;
    height: 100% !important;
    flex-direction: column;
    justify-content: normal;
    writing-mode: initial;
    padding-top: 7px;
    padding-bottom: 7px;
    padding-left: 0;
    padding-right: 0;
    border-radius: 0;
}

/* Right positioned taskbar */
.taskbar.taskbar-position-right {
    right: 0 !important;
    top: 0;
    left: auto;
    bottom: auto;
    width: 50px;
    height: 100% !important;
    transform: none;
    flex-direction: column;
    justify-content: normal;
    writing-mode: initial;
    padding-top: 7px;
    padding-bottom: 7px;
    padding-left: 0;
    padding-right: 0;
    border-radius: 0;
}

.taskbar.taskbar-position-left .taskbar-sortable,
.taskbar.taskbar-position-right .taskbar-sortable {
    display: block !important;
}

/* Taskbar items for left/right positioning */
.taskbar.taskbar-position-left .taskbar-item,
.taskbar.taskbar-position-right .taskbar-item {
    margin-bottom: 5px;
    margin-left: 0;
    margin-right: 0;
}

.taskbar.taskbar-position-left .taskbar-item:last-child,
.taskbar.taskbar-position-right .taskbar-item:last-child {
    margin-bottom: 0;
}

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

.desktop:not(.desktop-selectable-active) .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;
}

/* Taskbar separator styling */
.taskbar-item[data-app="separator"] {
    pointer-events: none !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
}

.taskbar-item[data-app="separator"] .taskbar-icon {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Vertical separator for bottom taskbar */
.taskbar.taskbar-position-bottom .taskbar-item[data-app="separator"] .taskbar-icon::after {
    content: '';
    width: 1px;
    height: 35px;
    max-height: 35px;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 0.5px;
}

/* Horizontal separator for left/right taskbar */
.taskbar.taskbar-position-left .taskbar-item[data-app="separator"] .taskbar-icon::after,
.taskbar.taskbar-position-right .taskbar-item[data-app="separator"] .taskbar-icon::after {
    content: '';
    width: 35px;
    height: 1px;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 0.5px;
}

/* Hide separator on mobile devices */
.device-phone .taskbar-item[data-app="separator"],
.device-tablet .taskbar-item[data-app="separator"] {
    display: none !important;
}

.taskbar.taskbar-position-bottom .taskbar-item[data-app="separator"]{
    max-width: 10px;
    min-width: 10px !important;
}

.taskbar.taskbar-position-bottom .taskbar-item[data-app="separator"] .taskbar-icon{
    width: 100% !important;
}

.taskbar.taskbar-position-left .taskbar-item[data-app="separator"],
.taskbar.taskbar-position-right .taskbar-item[data-app="separator"]{
    max-height: 10px;
    min-height: 10px !important;
    padding: 5px 3px 5px 7px !important;
}
.taskbar.taskbar-position-left .taskbar-item[data-app="separator"] .taskbar-icon,
.taskbar.taskbar-position-right .taskbar-item[data-app="separator"] .taskbar-icon{
    max-height: 10px;
    min-height: 10px !important;
    padding-bottom: 5px !important;
}

/*****************************************************
 * Captcha 
 *****************************************************/

.captcha-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.captcha-modal .modal-content {
    background-color: white;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    max-width: 400px;
    width: 90%;
    text-align: center;
    position: relative;
}

.captcha-modal .captcha-logo {
    width: 40px; 
    height: 40px; 
    margin: 0 auto 15px; 
    display: block; 
    padding: 15px; 
    background-color: blue; 
    border-radius: 8px;
}

.captcha-modal .captcha-title {
    margin: 0;
    color: #1f2937;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.2;
    -webkit-font-smoothing: antialiased;
}

.captcha-modal .captcha-description {
    margin: 10px 0 0 0;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.4;
}

.captcha-modal .captcha-container {
    display: flex;
    justify-content: center;
    margin: 20px 0;
    min-height: 80px;
    align-items: center;
}

.captcha-modal .loading-state {
    display: none;
    margin: 20px 0;
    color: #6b7280;
    font-size: 16px;
    height: 80px;
    line-height: 70px;
}

.captcha-modal .loading-state-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid #e5e7eb;
    border-radius: 50%;
    border-top: 2px solid #3b82f6;
    animation: spin 1s linear infinite;
    margin-right: 10px;
    vertical-align: middle;
}

.captcha-modal .error-message {
    display: none;
    color: #dc2626;
    font-size: 14px;
    margin-top: 15px;
    padding: 10px;
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
}

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

/*****************************************************
 * Task Manager
 *****************************************************/

.task-manager-container {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    background-color: rgba(255,255,255,0.8);
    border: 2px inset rgba(127, 127, 127, 0.3);
    overflow: auto;
}

.task-manager-container table {
    box-sizing: border-box;
    border-collapse: collapse;
    width: 100%;
}

.task-manager-container thead th {
    box-shadow: 0 1px 4px -2px rgba(0,0,0,0.2);
    backdrop-filter: blur(2px);
    position: sticky;
    z-index: 100;
    padding: calc(10 * var(--scale)) calc(2.5 * var(--scale)) calc(5 * var(--scale)) calc(2.5 * var(--scale));
    top: 0;
    background-color: hsla(0, 0%, 100%, 0.8);
    text-align: left;
    border-bottom: 1px solid #e0e0e0;
    padding: 5px;
}

.task-manager-container thead th:not(:last-of-type) {
    border-right: 1px solid #e0e0e0;
}

.task-manager-container tbody > tr > td {
    border-bottom: 1px solid #e0e0e0;
    padding: 0 calc(2.5 * var(--scale));
    vertical-align: middle;
    padding-left: 0;
}

.task-manager-container td > span {
    padding: 0 calc(2.5 * var(--scale));
}

.task {
    display: flex;
    height: calc(10 * var(--scale));
    line-height: calc(10 * var(--scale));
}

.task-name {
    flex-grow: 1;
    padding-left: calc(2.5 * var(--scale));
}

.task-indentation {
    display: flex;
}

.indentcell {
    position: relative;
    align-items: right;
    width: calc(10 * var(--scale));
    height: calc(10 * var(--scale));
}

.indentcell-trunk {
    position: absolute;
    top: 0;
    left: calc(5 * var(--scale));
    width: calc(5 * var(--scale));
    height: calc(10 * var(--scale));
    border-left: 2px solid var(--line-color);
}

.indentcell-branch {
    position: absolute;
    top: 0;
    left: calc(5 * var(--scale));
    width: calc(5 * var(--scale));
    height: calc(5 * var(--scale));
    border-left: 2px solid var(--line-color);
    border-bottom: 2px solid var(--line-color);
    border-radius: 0 0 0 calc(2.5 * var(--scale));
}


#clock {
    display: none;
    color: white;
    font-size: 13px;
    background-color: #00000056;
    margin-left: 20px;
    /* prevent clock from moving other taskbar items */
    height: 22px;
    line-height: 22px;

    /* line-height above handles vertical padding */
    padding: 0 5px;

    border-radius: 5px;
    opacity: 0.8;
}

.toolbar-spacer {
    margin-right: auto;
}

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

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

.arrow:after {
    content: "";
    position: absolute;
    left: 20px;
    top: -20px;
    width: 25px;
    height: 25px;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    background-color: rgba(231, 238, 245, .92);
}

/* Arrow pointing up (tooltip below taskbar item) */
.arrow.bottom {
    bottom: auto;
    top: 31px !important;
    transform: scaleY(-1);
    left: calc(50% + 2px) !important;
}

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

/* Arrow pointing down (tooltip above taskbar item) */
.arrow.top {
    top: auto;
    bottom: -16px;
}

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

/* Arrow pointing right (tooltip to the right of taskbar item) */
.arrow.left {
    width: 16px;
    height: 70px;
    left: -16px;
    right: auto;
    bottom: auto;
    margin-left: 0;
    margin-top: -37px;
    transform: scaleX(-1);
    top:18px !important;
}

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

/* Arrow pointing left (tooltip to the left of taskbar item) */
.arrow.right {
    width: 16px;
    height: 70px;
    right: -16px !important;
    left: auto;
    margin-left: 0;
    margin-top: 35px;
    transform: scaleX(-1);
    position: absolute;
    top:18px !important;
}

.arrow.right:after {
    right: -20px !important;
    left: auto !important;
    top: 20px;
    bottom: auto;
}

/* Center positioning adjustments */
.arrow.center {
    left: 50%;
    margin-left: -35px;
}

.arrow.middle {
    top: 50%;
    margin-top: -35px;
}

/* Horizontal center adjustments for left/right arrows */
.arrow.left.middle,
.arrow.right.middle {
    margin-top: -35px;
}

/* Vertical center adjustments for top/bottom arrows */
.arrow.top.center,
.arrow.bottom.center {
    margin-left: -35px;
}

/******************************************************/
.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, ');
    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: 10px;
    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;
    height: 500px;
}

.settings-sidebar {
    width: 200px;
    background-color: #f9f9f9;
    border-right: 1px solid #e0e0e0;
    padding: 20px;
    position: fixed;
    margin-top: 1px;
    height: 100%;
    z-index: 2;
}


.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: 20px;
    padding-left: 40px;
    font-size: 15px;
}

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

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

.settings-content-container {
    flex: 1;
    padding: 20px 30px;
    overflow-y: auto;
    margin-left: 240px;
}

.device-phone .settings-content-container {
    margin-left: 0;
}

.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: flex;
    flex-direction: column;
}

.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-image-has-picture {
    border: 1px solid white;
}

.driver-usage {
    background-color: white;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
    color: #3c4963;
    height: 85px;
    display: flex;
    flex-direction: column;
}

.driver-usage-container .driver-usage{
    flex-grow: 1;
}
.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;
}

.driver-usage-header{
    display: flex;
    flex-direction: row;
    margin-bottom: 5px;
}

#storage-bar-wrapper {
    width: 100%;
    height: 20px;
    border: 1px solid #dddddd;
    border-radius: 3px;
    background-color: #fbfbfb;
    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 #dddddd;
    border-radius: 3px;
    background-color: #fbfbfb;
    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;
}
.driver-usage-container{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    margin-top: 20px;
}
.driver-usage-details-text{
    cursor: pointer !important;
    font-weight: 500;
}
.driver-usage-details-content {
    display: none;
    margin-top: 10px;
    border-radius: 4px;
}

.driver-usage-details-content.active {
    display: block !important;
    flex-grow: 1;
    overflow-y: scroll;
}

.driver-usage-details{
    display: inline-block;
    cursor: pointer;
    display: flex;
    align-items: center;
    height: 25px;
}

.driver-usage-details .caret {
    transition: transform 0.1s ease-in-out;
    margin-right: 3px;
    display: inline-block;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
    margin-left: -3px;
}

.driver-usage-details .caret svg{
    width: 14px;
    height: 14px;
}

.driver-usage-details.active .caret {
    transform: rotate(90deg);
    margin-top: -2px;
}

.driver-usage-details-content-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
}

.driver-usage-details-content-table thead {
    background-color: #f0f0f0;
}

.driver-usage-details-content-table thead th {
    padding: 7px 5px;
    border: 1px solid #e0e0e0;
    text-align: left;
    font-size: 13px;
    font-weight: 500;
}

.driver-usage-details-content-table thead th.sortable-th {
    cursor: pointer;
    user-select: none;
    transition: background-color 0.15s ease;
}

.driver-usage-details-content-table thead th.sortable-th:hover {
    background-color: #e5e5e5;
}

.driver-usage-details-content-table thead th .sort-icon {
    margin-left: 4px;
    display: inline-flex;
    vertical-align: middle;
}

.driver-usage-details-content-table thead th .sort-icon-neutral {
    opacity: 0.35;
}

.driver-usage-details-content-table thead th .sort-icon-asc,
.driver-usage-details-content-table thead th .sort-icon-desc {
    opacity: 0.85;
}

.driver-usage-details-content-table td {
    padding: 7px 5px;
    border: 1px solid #e0e0e0;
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 13px;
}

.driver-usage-details-content-table td:first-child {
    width: 50%;
}
.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 {
    /* Force taskbar to bottom on mobile devices, overriding any position classes */
    position: fixed !important;
    bottom: 5px !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    width: auto !important;
    height: 50px !important;
    transform: translateX(-50%) !important;
    flex-direction: row !important;
    justify-content: left !important;
    writing-mode: initial !important;
    padding: 0 7px !important;
    border-radius: 10px !important;
    
    /* 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;
}

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

/* Hide desktop icons when the desktop-icons-hidden class is applied */
.desktop.item-container.desktop-icons-hidden>.item {
    visibility: hidden;
}

.refer-friend-c2a {
    text-align: center;
    font-size: 16px;
    padding: 20px;
    font-weight: 400;
    margin: -10px 10px 20px 10px;
    -webkit-font-smoothing: antialiased;
    color: #5f626d;
}
.progress-report{
    font-size:15px; 
    overflow: hidden; 
    flex-grow: 1; 
    text-overflow: ellipsis; 
    white-space: nowrap;
}

/************************************************************
 * AI Button
 ************************************************************/

.btn-send-ai{
    margin-top: 10px;
}
.btn-show-ai{
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    width: 30px;
    height: 30px;
    background-color: #ffffff;
    z-index: 2;
    width: 15px;
    height: 15px;
    padding: 5px;
    top: 5px;
    right: 5px;
    border-radius: 5px;
    background: linear-gradient(to bottom, #f8f8f8, #e0e0e0);
    cursor: pointer;
}
.btn-show-ai svg{
    width: 100%;
    height: 100%;
}
.btn-show-ai:hover{
    background: linear-gradient(to bottom, #f8f8f8, #eae9e9);
}

.device-desktop .btn-show-ai {
    display: block;
}

.fullpage-mode .btn-show-ai{
    display: none;
}

.btn-hide-ai{
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    width: 30px;
    height: 30px;
    z-index: 5;
}

.update-usage-details{
    float: right;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    width: 30px;
    border-radius: 5px;
}

.update-usage-details:hover{
    background: #f0f0f0;
}

.update-usage-details svg{
    width: 20px;
    height: 20px;
}

/* ======================================
   Dashboard
   ====================================== */

.dashboard {
    display: flex;
    height: 100%;
    background: #fff;
}

.dashboard-sidebar {
    width: 200px;
    min-width: 200px;
    background: #f5f5f5;
    border-right: 1px solid #e0e0e0;
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
}

.dashboard-sidebar-nav {
    flex: 1;
}

.dashboard-sidebar-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 4px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    color: #444;
    transition: background-color 0.15s;
}

.dashboard-sidebar-item svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

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

.dashboard-sidebar-item.active {
    background: #e0e0e0;
    font-weight: 500;
}

/* User options button at bottom of sidebar */
.dashboard-user-options {
    border-top: 1px solid #e0e0e0;
    padding-top: 12px;
    margin-top: 8px;
}

.dashboard-user-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.15s;
}

.dashboard-user-btn:hover {
    background: #e8e8e8;
}

.dashboard-user-btn.has-open-contextmenu {
    background: #e8e8e8;
}

.dashboard-user-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: #ddd;
    flex-shrink: 0;
}

.dashboard-user-name {
    flex: 1;
    font-size: 14px;
    color: #333;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-user-chevron {
    width: 16px;
    height: 16px;
    color: #888;
    flex-shrink: 0;
}

.dashboard-content {
    flex: 1;
    padding: 24px 32px;
    overflow-y: auto;
}

.dashboard-section {
    display: none;
}

.dashboard-section.active {
    display: block;
}

.dashboard-section h2 {
    margin: 0 0 16px 0;
    font-size: 20px;
    font-weight: 600;
    color: #333;
}

.dashboard-section p {
    font-size: 14px;
}

.dashboard-section-apps {
    max-width: 600px;
    margin: 0 auto;
}

.dashboard-section-usage {
    max-width: 600px;
    margin: 0 auto;
}

/* Dashboard Apps */
.dashboard-apps-container {
    margin-top: 8px;
}

.dashboard-apps-heading {
    font-size: 14px;
    font-weight: 600;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 16px 0;
}

.dashboard-apps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
    gap: 20px;
    margin-bottom: 8px;
}

.dashboard-app-card {
    width: 100%;
    transition: background-color 0.15s, transform 0.1s;
    transition: transform 0.15s ease;
}

.dashboard-app-card .start-app {
    cursor: pointer;
    width: 90px;
}
.dashboard-app-card:hover {
    background: none !important;
}

.dashboard-app-card:hover .start-app, .dashboard-app-card .start-app:hover {
    background: none !important;
}

.dashboard-app-card:active {
    transform: scale(0.97);
}

.dashboard-app-card .start-app {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.dashboard-app-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 8px;
    filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.1));
}

.dashboard-app-card .start-app{
    transition: transform 0.15s ease;
}
.dashboard-app-card .start-app:hover {
    transform: scale(1.05);
}

.dashboard-app-title {
    font-size: 13px;
    color: #333;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.dashboard-no-apps {
    color: #888;
    font-size: 14px;
    padding: 24px 0;
}

/* Mobile sidebar toggle */
.dashboard-sidebar-toggle {
    display: none;
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 100;
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.dashboard-sidebar-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    background: #444;
    border-radius: 1px;
    transition: transform 0.2s, opacity 0.2s;
}

.dashboard-sidebar-toggle.open span:nth-child(1) {
    transform: rotate(45deg) translate(4px, 4px);
}

.dashboard-sidebar-toggle.open span:nth-child(2) {
    opacity: 0;
}

.dashboard-sidebar-toggle.open span:nth-child(3) {
    transform: rotate(-45deg) translate(4px, -4px);
}

.dashboard-sidebar-separator {
    height: 1px;
    background: #e0e0e0;
    margin: 8px 0;
}

/* Responsive: tablet and below */
@media (max-width: 768px) {
    .dashboard-sidebar-toggle {
        display: flex;
    }

    .dashboard-sidebar {
        position: fixed;
        left: 0;
        top: 0;
        height: 100%;
        z-index: 99;
        transform: translateX(-100%);
        transition: transform 0.2s ease;
        box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
    }

    .dashboard-sidebar.open {
        transform: translateX(0);
    }

    .dashboard-content {
        padding: 64px 16px 24px;
    }

    .dashboard-apps-grid {
        grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
        gap: 4px;
    }

    .dashboard-app-card {
        padding: 10px 6px;
    }

    .dashboard-app-icon {
        width: 40px;
        height: 40px;
    }
}

/* Full HD */
@media (min-width: 1920px) {
    .dashboard-section-home .bento-container {
        max-width: 1000px;
    }
}
/* 4K UHD */
@media (min-width: 2560px) {
    .dashboard-section-home .bento-container {
        max-width: 1200px;
    }
}

/* ============================================== */
/* Bento Box Home Dashboard                       */
/* ============================================== */

.bento-container {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 20px;
    max-width: 800px;
    margin: 0 auto;
    padding: 8px 0;
    align-items: stretch;
}

.bento-card {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 
        0 1px 3px rgba(0, 0, 0, 0.04),
        0 4px 12px rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(0, 0, 0, 0.06);
}

/* Welcome Card */
.bento-welcome {
    position: relative;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    color: #1e293b;
    min-height: 280px;
}

.bento-welcome-inner {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 24px;
    box-sizing: border-box;
}

.bento-welcome-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 20% 30%, rgba(99, 102, 241, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(168, 85, 247, 0.06) 0%, transparent 40%);
    pointer-events: none;
}

.bento-welcome-content {
    position: relative;
    z-index: 1;
}

.bento-welcome-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: #e2e8f0;
    border: 3px solid #fff;
    margin-bottom: 16px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.bento-greeting {
    font-size: 14px;
    color: #64748b;
    font-weight: 400;
    letter-spacing: 0.02em;
    display: block;
    margin-bottom: 4px;
}

.bento-username {
    font-size: 25px;
    font-weight: 700;
    margin: 0 0 8px 0;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #414b62;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bento-tagline {
    font-size: 13px;
    margin: 0;
    font-weight: 400;
}

/* Recent Apps Card - Rectangle */
.bento-recent {
    min-height: 350px;
    display: flex;
    flex-direction: column;
    background: 
        radial-gradient(circle at 90% 10%, rgba(99, 102, 241, 0.06) 0%, transparent 40%),
        radial-gradient(circle at 10% 90%, rgba(236, 72, 153, 0.04) 0%, transparent 35%),
        linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}

.bento-card-header {
    padding: 20px 24px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.bento-card-header h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
    letter-spacing: -0.01em;
}

/* Fancy header with icon */
.bento-card-fancy-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 24px;
    background: linear-gradient(135deg, rgba(200, 220, 255, 0.5) 0%, rgba(180, 210, 255, 0.3) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.6);
}

.bento-card-fancy-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bento-card-fancy-icon svg {
    width: 28px;
    height: 28px;
}

.bento-card-fancy-icon-apps {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.bento-card-fancy-icon-usage {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

.bento-card-fancy-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bento-card-fancy-text h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    color: #1e293b;
    letter-spacing: -0.02em;
}

.bento-card-fancy-subtitle {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #64748b;
}

.bento-card-fancy-subtitle svg {
    width: 14px;
    height: 14px;
}

.bento-view-more {
    font-size: 13px;
    color: #5271ff;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.15s ease;
}

.bento-view-more:hover {
    color: #3d5bd9;
    text-decoration: underline;
}

.bento-recent-apps-container {
    flex: 1;
    padding: 16px 24px 24px;
}

.bento-recent-apps-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 12px;
    justify-items: center;
}

/* Hide 7th and 8th apps on screens below 4K (show only 6) */
.bento-recent-app:nth-child(n+7) {
    display: none;
}

/* Show all 8 apps on 4K UHD screens */
@media (min-width: 2560px) {
    .bento-recent-apps-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    
    .bento-recent-app:nth-child(n+7) {
        display: flex;
    }
}

.bento-recent-app {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 12px;
    border-radius: 14px;
    cursor: pointer;
    transition: transform 0.15s ease;
    background: transparent;
    border: 1px solid transparent;
    width: 100%;
    max-width: 110px;
}

.bento-recent-app:hover {
    background: none !important;
    transform: scale(1.05);
}

.bento-recent-app:active {
    transform: scale(0.97);
}

.bento-recent-app-icon {
    width: 44px;
    height: 44px;
    margin-bottom: 10px;
    border-radius: 10px;
}

.bento-recent-app-title {
    font-size: 13px;
    color: #333;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Empty state for recent apps */
.bento-recent-apps-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 200px;
    text-align: center;
    color: #888;
}

.bento-recent-apps-empty svg {
    width: 48px;
    height: 48px;
    stroke: #ccc;
    margin-bottom: 16px;
}

.bento-recent-apps-empty p {
    margin: 0 0 4px 0;
    font-size: 14px;
    font-weight: 500;
    color: #666;
}

.bento-recent-apps-empty span {
    font-size: 13px;
    color: #999;
}

/* Usage bento card */
.bento-usage {
    grid-column: 1 / -1;
    min-height: auto;
    background: 
        radial-gradient(circle at 5% 50%, rgba(34, 197, 94, 0.05) 0%, transparent 40%),
        radial-gradient(circle at 95% 50%, rgba(59, 130, 246, 0.05) 0%, transparent 40%),
        linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}

.bento-usage-container {
    padding: 16px 24px 24px;
}

.bento-usage-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}

.bento-usage-section {
    display: flex;
    flex-direction: column;
}

/* Your Plan section styles */
.bento-plan-section {
    justify-content: flex-start;
}

.bento-plan-info {
    flex-grow: 1;
}

.bento-plan-badge {
    font-weight: 400;
}

.bento-plan-badge.active {
    color: #16a34a;
}

.bento-plan-upgrade {
    font-size: 14px;
    font-weight: 500;
    color: #3b82f6;
    text-decoration: none;
    transition: color 0.2s;
}

.bento-plan-upgrade:hover {
    color: #2563eb;
    text-decoration: underline;
}

.bento-usage-section-header {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    margin-bottom: 8px;
}

.bento-usage-section-header h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #3c4963;
    flex-grow: 1;
}

.bento-usage-section-values {
    font-size: 13px;
    color: #3c4963;
    opacity: 0.85;
}

/* New card-based usage styles */
.bento-usage-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bento-usage-card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

.bento-usage-card-header:hover {
    opacity: 0.7;
}

.bento-usage-card-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    color: #1e293b;
}

.bento-usage-card-arrow {
    font-size: 18px;
    font-weight: 300;
    color: #64748b;
    line-height: 1;
}

.bento-usage-card-bar-wrapper {
    width: 100%;
    height: 14px;
    background-color: #e5e7eb;
    border-radius: 7px;
    overflow: hidden;
}

.bento-usage-card-bar {
    height: 100%;
    background: linear-gradient(90deg, #f59e0b, #f97316);
    border-radius: 7px;
    width: 0;
    transition: width 0.4s ease;
}

.bento-usage-card-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.bento-usage-card-used {
    font-size: 20px;
    font-weight: 600;
    color: #1e293b;
}

.bento-usage-card-details {
    font-size: 14px;
    color: #64748b;
}

/* Legacy bar styles (kept for compatibility) */
.bento-usage-bar-wrapper {
    width: 100%;
    height: 20px;
    border: 1px solid #dddddd;
    border-radius: 3px;
    background-color: #fbfbfb;
    position: relative;
    display: flex;
    align-items: center;
}

.bento-usage-bar {
    height: 20px;
    background: linear-gradient(#dbe3ef, #c2ccdc, #dbe3ef);
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    width: 0;
    transition: width 0.3s ease;
}

/* Responsive bento layout */
@media (max-width: 768px) {
    .bento-container {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 0;
    }

    .bento-welcome {
        aspect-ratio: auto;
        min-height: 180px;
    }

    .bento-welcome-inner {
        padding: 20px;
    }

    .bento-username {
        font-size: 24px;
    }

    .bento-welcome-avatar {
        width: 56px;
        height: 56px;
        margin-bottom: 12px;
        border-width: 2px;
    }

    .bento-recent-apps-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px 8px;
    }

    .bento-recent-app {
        padding: 12px 8px;
        max-width: 90px;
    }

    .bento-recent-app-icon {
        width: 36px;
        height: 36px;
        margin-bottom: 8px;
    }

    .bento-recent-app-title {
        font-size: 11px;
    }

    .bento-usage-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .bento-usage-container {
        padding: 16px 20px 20px;
    }

    .bento-usage-card-header h3 {
        font-size: 15px;
    }

    .bento-usage-card-arrow {
        font-size: 17px;
    }

    .bento-usage-card-used {
        font-size: 18px;
    }

    .bento-usage-card-details {
        font-size: 13px;
    }

    .bento-card-fancy-header {
        padding: 16px 20px;
        gap: 12px;
    }

    .bento-card-fancy-icon {
        width: 40px;
        height: 40px;
        border-radius: 10px;
    }

    .bento-card-fancy-icon svg {
        width: 22px;
        height: 22px;
    }

    .bento-card-fancy-text h2 {
        font-size: 17px;
    }

    .bento-card-fancy-subtitle {
        font-size: 12px;
    }
}