body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: transparent;
    color: #fff;
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
    margin: 0;
    -webkit-user-select: none;
    user-select: none
}

code {
    font-family: source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace
}

#root {
    margin: 0;
    padding: 0
}

#hidden-box {
    height: 0;
    left: 0;
    overflow: hidden;
    position: fixed;
    top: 0;
    width: 0;
    z-index: -1
}

.ui-screen-content {
    align-items: center;
    background: #000;
    color: #fff;
    display: flex;
    height: 100%;
    justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 9999
}

.ui-screen-content-box {
    margin-top: -30px;
    text-align: center
}

.ui-title {
    align-items: center;
    display: flex;
    flex-direction: column;
    font-size: 55px;
    font-weight: 700
}

.ui-desc {
    font-size: 28px;
    font-weight: 700;
    opacity: .8
}

.ui-desc::after {
    content: '';
    display: inline-block;
    width: 3px;
    height: 1em;
    margin-left: 4px;
    vertical-align: -2px;
    background: #26bbff;
    animation: boot-caret 1s steps(1) infinite
}

@keyframes boot-caret {
    0%,
    100% {
        opacity: 1
    }
    50% {
        opacity: 0
    }
}

.ui-sm {
    font-size: 18px;
    font-weight: 700;
    opacity: .6
}

.ui-disclaimer {
    margin-top: 26px;
    font-size: 13px;
    line-height: 1.8;
    color: rgba(255, 255, 255, .42);
    letter-spacing: .5px;
    padding: 0 20px;
    user-select: none
}

.ui-disclaimer .disclaimer-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    letter-spacing: 2px;
    background: linear-gradient(90deg, #ff5d5d, #ffa94d, #ffd54f, #06d6a0, #26bbff, #ab47bc, #ff5d5d);
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: disclaimer-rainbow 3s linear infinite
}

.ui-disclaimer {
    animation: disclaimer-glow 1.6s ease-in-out infinite
}

@keyframes disclaimer-rainbow {
    0% {
        background-position: 0% 50%
    }
    100% {
        background-position: 300% 50%
    }
}

@keyframes disclaimer-glow {
    0%,
    100% {
        color: rgba(255, 255, 255, .35);
        text-shadow: 0 0 0 transparent
    }
    50% {
        color: rgba(255, 255, 255, .8);
        text-shadow: 0 0 12px rgba(38, 187, 255, .45)
    }
}

.ui-title span {
    background: #561dff;
    border-radius: 5px;
    color: #0e0e0e;
    font-size: 14px;
    font-weight: 700;
    padding: 5px 10px
}

.ui-title span b {
    color: #ffffff9f
}

.fps {
    bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    left: 10px;
    opacity: .5;
    position: fixed
}

* {
    touch-action: none
}

.ui-loader {
    display: flex;
    justify-content: center;
    margin-bottom: 10px;
    margin-top: -20px
}

.loader {
    --c: at 50% 66%, #000 60deg, #0000 0;
    animation: appear 1.5s infinite;
    background: #26bbff;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    height: 43.3px;
    -webkit-mask: conic-gradient(from 30deg var(--c)) right, conic-gradient(from 150deg var(--c)) bottom, conic-gradient(from -90deg var(--c)) left, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    -webkit-mask-repeat: no-repeat;
    width: 50px
}

@keyframes appear {
    0% {
        -webkit-mask-size: 0 0, 0 0, 0 0, auto
    }

    13.33% {
        -webkit-mask-size: 100% 100%, 0 0, 0 0, auto
    }

    26.67% {
        -webkit-mask-size: 100% 100%, 100% 100%, 0 0, auto
    }

    40%,
    60% {
        -webkit-mask-size: 100% 100%, 100% 100%, 100% 100%, auto
    }

    73.33% {
        -webkit-mask-size: 0 0, 100% 100%, 100% 100%, auto
    }

    86.67% {
        -webkit-mask-size: 0 0, 0 0, 100% 100%, auto
    }

    to {
        -webkit-mask-size: 0 0, 0 0, 0 0, auto
    }
}

.MuiCheckbox-root {
    color: #26bbff !important
}

.MuiCheckbox-root svg {
    fill: #26bbff !important;
    height: .9em !important;
    width: .9em !important
}

.MuiCheckbox-root {
    border: 0 !important;
    padding: 0 !important
}

.MuiSlider-thumb {
    background-color: #fff !important;
    height: 13px !important;
    width: 13px !important
}

.MuiSlider-rail {
    background-color: #575757 !important
}

.MuiSlider-track {
    background-color: #26bbff !important;
    border-color: #26bbff !important
}

.gui {
    left: 0;
    position: fixed;
    top: 0;
    z-index: 999
}

.gui:before {
    background-color: #0000;
    content: "";
    height: 100%;
    position: absolute;
    width: 100%
}

.gui-bottom {
    bottom: calc(16px + env(safe-area-inset-bottom));
    height: 40px;
    position: fixed;
    width: 100%
}

.camera-button,
.gui-bottom {
    align-items: center;
    display: flex;
    justify-content: center
}

.camera-button {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background-color: #2b282873;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 30px;
    color: #ffffffd3;
    cursor: pointer;
    font-size: 14px;
    height: 38px;
    max-width: 130px;
    padding: 0 10px;
    position: relative;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none
}

.camera-button:hover {
    background-color: #26bbff;
    border-color: #0000 !important;
    color: #000;
    font-weight: 700;
    transform: translateY(-10%) scale(1.02)
}

.camera-button:hover .icon {
    color: #000
}

.camera-button .value {
    margin: 0 5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.camera-button .icon {
    color: #ffffffd3;
    font-size: 20px;
    transition: transform .3s ease
}

.camera-button .icon.open {
    transform: rotate(180deg)
}

.camera-button .hero {
    margin-right: 4px;
    overflow: hidden
}

.camera-button .hero,
.camera-button .hero img {
    border-radius: 100%;
    height: 20px;
    width: 20px
}

.settings-button {
    align-items: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background-color: #2b282873;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 30px;
    cursor: pointer;
    display: flex;
    font-size: 14px;
    height: 38px;
    justify-content: center;
    margin-left: 5px;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    width: 38px
}

.settings-button:hover {
    background-color: #26bbff;
    border-color: #0000 !important;
    transform: translateY(-10%) scale(1.02)
}

.settings-button .icon {
    color: #ffffffd3;
    font-size: 20px
}

.settings-button:hover .icon {
    color: #000
}

.lists {
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    background-color: #2b2828d0;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 10px;
    bottom: 45px;
    box-sizing: border-box;
    color: #ffffffd3;
    display: flex;
    flex-direction: column;
    font-size: 14px;
    justify-content: flex-end;
    left: 50%;
    min-width: 180px;
    opacity: 0;
    padding: 10px;
    pointer-events: none;
    position: absolute;
    transform: translateX(-50%);
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    transition: opacity .3s ease, visibility .3s ease;
    visibility: hidden;
    width: 100%
}

.lists.show {
    opacity: 1;
    pointer-events: auto;
    visibility: visible
}

.list {
    align-items: center;
    background-color: #0000002b;
    border-radius: 2px;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    height: 38px;
    margin-bottom: 5px;
    padding: 0 10px;
    transition: background-color .2s ease
}

.list:last-child {
    margin-bottom: 0
}

.list.active,
.list:hover {
    background-color: #00000080
}

.list.active {
    border-bottom: 2px solid #26bbff
}

.list .name {
    margin-left: 5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.camera-button.isOpen {
    background-color: #26bbff;
    border-color: #0000 !important;
    color: #000;
    font-weight: 700
}

.camera-button.isOpen .icon {
    color: #000
}

.settings-gui {
    align-items: center;
    background-color: rgba(0, 0, 0, .637);
    display: flex;
    height: 100%;
    justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 9999
}

.settings-gui-content {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background-color: #1616166c;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    font-size: 14px;
    max-height: 90vh;
    max-width: 90%;
    padding: 16px;
    width: 350px
}

.settings-gui-content-body {
    flex: 1 1;
    overflow-y: auto
}

.settings-gui-content-container::-webkit-scrollbar {
    width: 4px
}

.settings-gui-content-container::-webkit-scrollbar-track {
    background: #0000
}

.settings-gui-content-container::-webkit-scrollbar-thumb {
    background: #ffffff1a;
    border-radius: 2px;
    -webkit-transition: background .2s ease;
    transition: background .2s ease
}

.settings-gui-content-container::-webkit-scrollbar-thumb:hover {
    background: #fff3
}

.settings-gui-content-body::-webkit-scrollbar,
.settings-gui-content-body::-webkit-scrollbar-thumb,
.settings-gui-content-body::-webkit-scrollbar-thumb:hover,
.settings-gui-content-body::-webkit-scrollbar-track {
    display: none
}

.settings-gui-header {
    align-items: center;
    border-bottom: 1px solid oklch(1 0 0/10%);
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 1fr auto;
    margin-bottom: 16px;
    padding-bottom: 16px;
    width: 100%
}

.settings-gui-tab-button-group {
    align-items: center;
    display: flex;
    gap: 8px;
    grid-column: 2
}

.settings-gui-tab,
.settings-gui-tab-container {
    align-items: center;
    display: flex;
    justify-content: center
}

.settings-gui-tab {
    background-color: #282828;
    border-radius: 30px;
    color: #ffffff9d;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    padding: 0 10px;
    width: 130px
}

.settings-gui-tab-item {
    flex: 1 1;
    padding: 6px 0;
    text-align: center
}

.settings-gui-tab-item.active {
    color: #fff;
    position: relative
}

.settings-gui-tab-item:hover {
    color: #fff
}

.settings-gui-tab-item.active:after {
    background-color: #26bbff;
    bottom: 0;
    content: "";
    display: block;
    height: 2px;
    left: 15px;
    position: absolute;
    width: 15px
}

.settings-gui-logo {
    align-items: center;
    box-sizing: border-box;
    color: #ffffffd3;
    display: flex;
    font-size: 14px;
    font-weight: 700;
    grid-column: 1
}

.settings-gui-logo-version {
    background-color: #282828;
    border-radius: 30px;
    font-size: 10px;
    margin-left: 5px;
    margin-top: 2px;
    padding: 0 5px
}

.settings-gui-button {
    background-color: #26bbff;
    border-radius: 30px;
    color: #000;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    padding: 5px 10px;
    transition: all .3s cubic-bezier(.4, 0, .2, 1)
}

.settings-gui-button:hover {
    opacity: .8;
    transform: translateY(-10%) scale(1.02)
}

.settings-gui-logo-icon {
    color: #26bbff;
    font-size: 14px
}

@media screen and (max-width:768px) {
    .settings-gui {
        box-sizing: border-box;
        padding: 16px
    }

    .settings-gui-content {
        max-width: calc(100% - 32px);
        padding: 12px
    }

    .settings-gui-header {
        gap: 12px;
        grid-template-columns: 1fr
    }

    .settings-gui-logo {
        justify-content: center
    }

    .settings-gui-tab-button-group {
        grid-column: 1;
        justify-content: center
    }
}

@media screen and (max-width:320px) {
    .settings-gui {
        padding: 12px
    }

    .settings-gui-content {
        max-height: calc(100vh - 24px);
        max-width: calc(100% - 24px);
        padding: 8px
    }

    .settings-gui-header {
        gap: 8px;
        margin-bottom: 8px
    }

    .settings-gui-tab {
        padding: 0 8px
    }

    .settings-gui-logo {
        font-size: 12px
    }

    .settings-gui-logo-version {
        font-size: 9px
    }
}

.settings-gui-content-container {
    background-color: #1b1b1ba9;
    border-radius: 10px;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 16px
}

.settings-gui-content-item {
    align-items: center;
    display: flex;
    margin-bottom: 5px
}

.settings-gui-content-item:last-child {
    margin-bottom: 0
}

.settings-gui-content-item-title {
    flex: 1 1;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 2px;
    margin-right: 10px;
    opacity: .8
}

.settings-gui-content-item-value {
    margin-right: -1px;
    min-width: 50%;
    text-align: right
}

.setting-divider {
    background-color: oklch(1 0 0/10%);
    height: 1px;
    margin: 10px 0;
    width: 100%
}

.settings-gui-content-item-slider {
    align-items: flex-start;
    flex-direction: column
}

.settings-gui-content-item-slider .settings-gui-content-item-value {
    margin-bottom: -10px;
    margin-right: 0;
    min-width: 100%
}

.setting-mark {
    background-color: rgba(0, 0, 0, .637);
    height: 100%;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    transition: opacity .2s;
    width: 100%;
    z-index: 9998
}

.setting-mark.show {
    opacity: 1;
    pointer-events: auto
}

.MuiSlider-root {
    pointer-events: none !important
}

.MuiSlider-thumb {
    pointer-events: auto !important
}

.setting {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    background-color: hsla(0, 0%, 9%, .424);
    border: 1px solid oklch(1 0 0/.1);
    border-radius: 2px;
    border-radius: 8px;
    box-shadow: 0 0 12px 0 #0000004d;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 90%;
    left: 50%;
    max-height: 800px;
    max-width: 1080px;
    opacity: 0;
    padding: 10px;
    pointer-events: none;
    position: fixed;
    top: 50%;
    transform: translate(-50%, -50%) scale(.5);
    transition: all .3s;
    width: 90%;
    z-index: 9999
}

.setting .MuiSlider-thumb,
.setting .setting-content {
    pointer-events: none !important
}

@media(max-width:500px) {
    .setting {
        height: 98%;
        max-height: 98%;
        max-width: 98%;
        width: 98%
    }
}

.setting.show {
    left: 50%;
    opacity: 1;
    pointer-events: auto;
    top: 50%;
    transform: translate(-50%, -50%) scale(1)
}

.setting.show .MuiSlider-thumb,
.setting.show .setting-content.show {
    pointer-events: auto !important
}

.setting .setting-header {
    align-items: center;
    border-bottom: 1px solid #26bbff66;
    display: flex;
    flex-direction: row;
    flex-shrink: 0;
    height: 42px;
    padding-bottom: 8px
}

@media(max-width:600px) {
    .setting .setting-header {
        display: flex;
        flex-direction: column;
        height: auto;
        padding-bottom: 12px
    }

    .setting .setting-header .setting-header-left .setting-header-title {
        font-size: 16px !important
    }

    .setting .setting-header .setting-header-left .setting-header-subtitle {
        font-size: 10px !important
    }

    .setting .setting-header .setting-header-right {
        margin-left: 0 !important;
        margin-top: 12px
    }

    .setting .setting-header .setting-header-right .setting-header-menus {
        height: 28px !important
    }

    .setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item {
        font-size: 12px !important
    }

    .setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item:after {
        bottom: -1px !important;
        height: 2px !important
    }

    .setting .setting-header .setting-header-right .setting-header-close {
        font-size: 12px !important;
        height: 28px !important;
        margin-left: 6px !important
    }
}

.setting .setting-header .setting-header-left {
    align-items: center;
    display: flex;
    flex-direction: row
}

.setting .setting-header .setting-header-left .setting-header-logo {
    height: 24px;
    margin-left: 8px;
    width: 24px
}

.setting .setting-header .setting-header-left .setting-header-title {
    color: hsla(0, 0%, 100%, .827);
    font-size: 18px;
    font-weight: 700;
    margin-left: 8px
}

.setting .setting-header .setting-header-left .setting-header-subtitle {
    background-color: #282828;
    border-radius: 30px;
    font-size: 12px;
    margin-left: 8px;
    margin-top: 2px;
    padding: 4px 8px
}

.setting .setting-header .setting-header-right {
    display: flex;
    flex-direction: row;
    margin-left: auto
}

.setting .setting-header .setting-header-right .setting-header-menus {
    align-items: center;
    background-color: #282828;
    border: 1px solid oklch(1 0 0/.1);
    border-radius: 30px;
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    height: 36px;
    padding: 0 4px
}

.setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item {
    align-items: center;
    color: hsla(0, 0%, 100%, .616);
    cursor: pointer;
    display: flex;
    flex-direction: row;
    font-size: 14px;
    font-weight: 700;
    height: 100%;
    justify-content: center;
    padding: 0 8px;
    position: relative;
    transition: all .3s
}

.setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item:after {
    background-color: #26bbff;
    border-radius: 18px;
    bottom: 0;
    content: "";
    height: 3px;
    left: 50%;
    opacity: 0;
    position: absolute;
    transform: translateX(-50%);
    transition: all .3s;
    width: 20px;
    width: 0;
    z-index: 1
}

.setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item:hover {
    color: #fff
}

.setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item.active {
    color: #26bbff
}

.setting .setting-header .setting-header-right .setting-header-menus .setting-header-menu-item.active:after {
    opacity: 1;
    width: 20px
}

.setting .setting-header .setting-header-right .setting-header-close {
    align-items: center;
    background-color: #26bbff;
    border-radius: 18px;
    color: #000;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    font-size: 14px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    margin-left: 12px;
    padding: 0 12px;
    transform: scale(1);
    transition: transform .3s
}

.setting .setting-header .setting-header-right .setting-header-close:hover {
    transform: scale(.92)
}

.setting .setting-content-container {
    flex: 1 1;
    height: 0;
    position: relative;
    touch-action: auto !important
}

.setting .setting-content-container * {
    touch-action: auto !important
}

.setting .setting-content-container .setting-content {
    filter: blur(4px);
    height: 100%;
    left: 0;
    opacity: 0;
    overflow: auto;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateX(-20px);
    transition: all .4s;
    width: 100%
}

.setting .setting-content-container .setting-content::-webkit-scrollbar {
    display: none
}

.setting .setting-content-container .setting-content.show {
    filter: blur(0) !important;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
    transition: all .4s;
    transition-delay: .2s
}

.setting .setting-content-container .setting-content.hide {
    filter: blur(4px);
    opacity: 0;
    pointer-events: none;
    transform: translateX(20px);
    transition: all .4s
}

.setting .setting-tab {
    border-top: 1px solid #26bbff66;
    flex-direction: row;
    padding-bottom: 8px;
    padding-top: 16px
}

.setting .setting-tab,
.setting .setting-tab .setting-tab-item {
    align-items: center;
    display: flex;
    flex-shrink: 0;
    justify-content: center
}

.setting .setting-tab .setting-tab-item {
    cursor: pointer;
    flex-direction: column;
    height: 32px;
    width: 70px
}

.setting .setting-tab .setting-tab-item .setting-tab-item-icon {
    height: 22px;
    width: 22px
}

.setting .setting-tab .setting-tab-item .setting-tab-item-name {
    font-size: 12px;
    margin-top: 6px
}

.setting .setting-tab .setting-tab-item .setting-tab-item-name.active {
    color: #26bbff
}

.user-container .setting-card {
    height: auto;
    margin-top: 12px;
    width: 100%
}

.user-container .masonry-grid {
    position: relative;
    width: 100%
}

.user-container .masonry-item,
.user-container .masonry-sizer {
    box-sizing: border-box;
    width: calc(33.33333% - 8px)
}

.user-container .masonry-grid.masonry-no-anim .masonry-item {
    transition: none !important
}

@media(max-width:780px) {

    .user-container .masonry-item,
    .user-container .masonry-sizer {
        width: calc(50% - 6px)
    }
}

@media(max-width:500px) {

    .user-container .masonry-item,
    .user-container .masonry-sizer {
        width: 100%
    }
}

.user-container .my-masonry-grid {
    display: flex;
    margin-left: -12px;
    width: auto
}

.user-container .my-masonry-grid_column {
    background-clip: padding-box;
    padding-left: 12px
}

.point-container .setting-card {
    height: auto;
    margin-top: 12px;
    width: 100%
}

.point-container .masonry-grid {
    position: relative;
    width: 100%
}

.point-container .masonry-item,
.point-container .masonry-sizer {
    box-sizing: border-box;
    width: calc(33.33333% - 8px)
}

.point-container .masonry-grid.masonry-no-anim .masonry-item {
    transition: none !important
}

@media(max-width:780px) {

    .point-container .masonry-item,
    .point-container .masonry-sizer {
        width: calc(50% - 6px)
    }
}

@media(max-width:500px) {

    .point-container .masonry-item,
    .point-container .masonry-sizer {
        width: 100%
    }
}

.point-container .my-masonry-grid {
    display: flex;
    margin-left: -12px;
    width: auto
}

.point-container .my-masonry-grid_column {
    background-clip: padding-box;
    padding-left: 12px
}

.item-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    padding-bottom: 12px;
    padding-top: 12px
}

.item-container .item-config {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: calc(33.33% - 12px)
}

.item-container .item-config .setting-card {
    height: auto !important;
    width: 100%
}

.item-container>.setting-card {
    flex: 1 1
}

.item-container .item-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin: 0 7px
}

.item-container .item-list .item-card-container {
    aspect-ratio: 1/1;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    padding: 5px;
    position: relative;
    width: 20%
}

@media(max-width:1050px) {
    .item-container .item-list .item-card-container {
        width: 25%
    }
}

@media(max-width:870px) {
    .item-container .item-list .item-card-container {
        width: 33.33%
    }
}

@media(max-width:800px) {
    .item-container .item-list .item-card-container {
        width: 25%
    }
}

@media(max-width:600px) {
    .item-container .item-list .item-card-container {
        width: 33.33%
    }
}

@media(max-width:480px) {
    .item-container .item-list .item-card-container {
        width: 33.33%
    }
}

@media(max-width:320px) {
    .item-container .item-list .item-card-container {
        width: 50%
    }
}

.item-container .item-list .item-card-bg {
    background-image: linear-gradient(180deg, #484848, #282828);
    border-radius: 10px;
    flex: 1 1;
    height: 0;
    z-index: 0
}

.item-container .item-list .item-card-bg.checked.level-1 {
    background-image: linear-gradient(180deg, #fff6, #ffffff1a)
}

.item-container .item-list .item-card-bg.checked.level-2 {
    background-image: linear-gradient(180deg, #0c573e, #05261b)
}

.item-container .item-list .item-card-bg.checked.level-3 {
    background-image: linear-gradient(180deg, #12395c, #0a2238)
}

.item-container .item-list .item-card-bg.checked.level-4 {
    background-image: linear-gradient(180deg, #250950, #13042b)
}

.item-container .item-list .item-card-bg.checked.level-5 {
    background-image: linear-gradient(180deg, #694329, #3f2819)
}

.item-container .item-list .item-card-bg.checked.level-6 {
    background-image: linear-gradient(180deg, #5e2526, #331515)
}

.item-container .item-list .item-card {
    border-radius: 10px;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    flex: 1 1;
    flex-direction: column;
    height: 0;
    height: calc(100% - 10px);
    left: 5px;
    overflow: hidden;
    position: absolute;
    top: 5px;
    transition: border .3s;
    transition: all .3s;
    width: calc(100% - 10px);
    z-index: 1
}

@media(max-width:480px) {
    .item-container .item-list .item-card .item-card-level-icon {
        height: 16px !important;
        width: 16px !important
    }

    .item-container .item-list .item-card .item-card-level,
    .item-container .item-list .item-card .item-card-money,
    .item-container .item-list .item-card .item-card-name {
        font-size: 10px !important
    }
}

@media(max-width:320px) {
    .item-container .item-list .item-card .item-card-level-icon {
        height: 18px !important;
        width: 18px !important
    }

    .item-container .item-list .item-card .item-card-level,
    .item-container .item-list .item-card .item-card-money,
    .item-container .item-list .item-card .item-card-name {
        font-size: 12px !important
    }
}

.item-container .item-list .item-card .item-card-header {
    align-items: center;
    box-sizing: border-box;
    color: #fff;
    display: flex;
    flex-direction: row;
    font-size: 12px;
    font-weight: 700;
    height: 20px;
    line-height: 20px;
    margin: 4px
}

.item-container .item-list .item-card .item-card-header .item-card-level-icon {
    height: 18px;
    width: 18px
}

.item-container .item-list .item-card .item-card-header .item-card-level {
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    margin-left: 4px
}

.item-container .item-list .item-card .item-card-header .item-card-money {
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    margin-left: auto;
    margin-right: 2px
}

.item-container .item-list .item-card .item-card-image {
    aspect-ratio: 1/1;
    flex: 1 1;
    height: 0;
    margin-bottom: 12px;
    object-fit: contain
}

.item-container .item-list .item-card .item-card-content {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-shrink: 0;
    height: 12px;
    margin-bottom: 8px;
    padding: 0 8px 0 6px
}

.item-container .item-list .item-card .item-card-content .item-card-name {
    color: #fff;
    flex: 1 1;
    font-size: 12px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 0
}

.item-container .item-list .item-card .item-card-content .item-card-checked {
    align-items: center;
    background-color: #26bbff;
    border-radius: 50%;
    display: flex;
    filter: blur(6px);
    flex-direction: row;
    flex-shrink: 0;
    height: 14px;
    justify-content: center;
    margin-left: 4px;
    opacity: 0;
    transition: all .3s;
    width: 14px
}

.item-container .item-list .item-card .item-card-content .item-card-checked.checked {
    filter: blur(0);
    opacity: 1
}

.item-container .item-list .item-card .item-card-content .item-card-checked:after {
    background-image: url(https://pub-62846ec320cf4c20ad8c9aa58e9161b5.r2.dev/assets/media/e98fc6fe0f6e09903bf1.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    content: "";
    display: inline-block;
    height: 8px;
    width: 8px
}

@media(max-width:800px) {
    .item-container .item-config {
        width: 100%
    }

    .item-container .setting-card {
        width: 100% !important
    }

    .item-container .setting-card:first-child,
    .item-container .setting-card:nth-child(2) {
        width: 100%
    }
}

.containers {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    padding-bottom: 12px;
    padding-top: 12px
}

.containers .item-config {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: calc(33.33% - 12px)
}

.containers .item-config .setting-card {
    height: auto !important;
    width: 100%
}

.containers>.setting-card {
    flex: 1 1
}

.containers .item-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin: 0 6px
}

.containers .item-list .item-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    width: 16.66%
}

@media(max-width:1050px) {
    .containers .item-list .item-card {
        width: 20%
    }
}

@media(max-width:870px) {
    .containers .item-list .item-card {
        width: 25%
    }
}

@media(max-width:800px) {
    .containers .item-list .item-card {
        width: 16.66%
    }
}

@media(max-width:660px) {
    .containers .item-list .item-card {
        width: 20%
    }
}

@media(max-width:500px) {
    .containers .item-list .item-card {
        width: 25%
    }
}

.containers .item-list .item-card.checked .item-card-image {
    background-color: rgba(38, 187, 255, .867)
}

.containers .item-list .item-card.checked .item-card-name {
    color: #fff
}

.containers .item-list .item-card-image {
    align-items: center;
    aspect-ratio: 1/1;
    background-color: #282828;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin: 6px;
    scale: 1;
    transition: all .3s;
    width: calc(100% - 12px)
}

.containers .item-list .item-card-image>img {
    aspect-ratio: 1/1;
    object-fit: contain;
    width: 50%
}

.containers .item-list .item-card-image:active {
    scale: .9
}

.containers .item-list .item-card-name {
    color: hsla(0, 0%, 100%, .667);
    font-size: 12px;
    font-weight: 700;
    height: 12px;
    line-height: 12px;
    margin-bottom: 12px;
    margin-top: 4px;
    overflow: hidden;
    text-align: center;
    transition: all .3s
}

@media(max-width:800px) {
    .containers .item-config {
        width: 100%
    }

    .containers .setting-card {
        width: 100% !important
    }

    .containers .setting-card:first-child,
    .containers .setting-card:nth-child(2) {
        width: 100%
    }
}

.setting-card {
    background-color: rgba(27, 27, 27, .663);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 50%
}

.setting-card.group {
    background-color: #0000;
    gap: 12px
}

.setting-card .setting-card-header {
    align-items: center;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    background-color: rgba(27, 27, 27, .663);
    border-radius: 10px 10px 0 0;
    color: #eee;
    display: flex;
    flex-direction: row;
    font-size: 15px;
    font-weight: 700;
    height: 48px;
    left: 2px;
    padding-left: 8px;
    position: -webkit-sticky;
    position: sticky;
    right: 2px;
    top: -1px;
    z-index: 99
}

.setting-card .setting-card-header .setting-card-header-input {
    align-items: center;
    background-color: rgba(34, 34, 34, .267);
    border: 1px solid rgba(38, 187, 255, .267);
    border-radius: 4px;
    display: flex;
    flex-direction: row;
    font-size: 14px;
    height: 32px;
    line-height: 32px;
    margin-left: auto;
    margin-right: 12px;
    outline: none;
    padding: 0 4px;
    width: 200px
}

.setting-card .setting-card-header .setting-card-header-input>input {
    background-color: #0000;
    border: none;
    color: #fff;
    flex: 1 1;
    margin-left: 4px;
    outline: none;
    width: 0
}

.setting-card .setting-card-header .setting-card-header-input>input::placeholder {
    color: #999
}

.setting-card .setting-card-header:before {
    background-color: #26bbff;
    content: "";
    display: inline-block;
    height: 13px;
    margin-right: 8px;
    width: 4px
}

.setting-card .setting-card-header:after {
    background-color: rgba(38, 187, 255, .267);
    bottom: 0;
    content: "";
    display: inline-block;
    height: 1px;
    left: 12px;
    position: absolute;
    right: 12px
}

.setting-card .setting-card-content {
    display: flex;
    flex-direction: column;
    padding: 12px
}

.setting-card .setting-card-content.no-padding {
    padding: 12px 0
}

.setting-card .setting-card-content .item-type {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    margin-bottom: 8px;
    padding: 0 12px
}

.setting-card .setting-card-content .item-type .item-type-item {
    align-items: center;
    background-color: rgba(27, 27, 27, .663);
    border-radius: 8px;
    color: #eeec;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    padding: 4px 8px;
    transition: all .2s
}

.setting-card .setting-card-content .item-type .item-type-item.active {
    background-color: #26bbff;
    color: #111
}

.setting-card .setting-card-content .setting-item {
    align-items: center;
    display: flex;
    flex-direction: row;
    height: 32px;
    justify-content: space-between
}

.setting-card .setting-card-content .setting-item.col {
    align-items: flex-start;
    flex-direction: column;
    height: auto;
    justify-content: flex-start
}

.setting-card .setting-card-content .setting-item.col .setting-item-label {
    width: calc(100% - 10px)
}

.setting-card .setting-card-content .setting-item.col .setting-item-value {
    margin-bottom: 8px;
    margin-top: 8px;
    width: calc(100% - 10px)
}

.setting-card .setting-card-content .setting-item .setting-item-label {
    align-items: center;
    color: hsla(0, 0%, 100%, .733);
    display: flex;
    flex-direction: row;
    font-size: 14px;
    font-weight: 700;
    transition: color .2s
}

.setting-card .setting-card-content .setting-item .setting-item-label-desc {
    color: #ddd;
    margin-left: auto
}

.setting-card .setting-card-content .setting-item .setting-item-label-desc .item-level-tag {
    align-items: center;
    color: #fff;
    display: flex;
    flex-direction: row;
    height: 20px;
    justify-content: center;
    transition: all .2s
}

.setting-card .setting-card-content .setting-item .setting-item-label-desc .item-level-tag>img {
    height: 19px;
    margin-right: 4px;
    margin-top: 2px;
    width: 19px
}

.setting-card .setting-card-content .setting-item .setting-item-value {
    align-items: center;
    display: flex;
    flex-direction: row;
    height: 18px;
    justify-content: center
}

.setting-card .setting-card-content .setting-item:hover .setting-item-label {
    color: #26bbff
}

.setting-card .setting-card-content .setting-item-line {
    background-color: oklch(1 0 0/.1);
    height: 1px;
    margin: 8px 0;
    width: 100%
}

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

.service .service-title {
    color: #eee;
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 8px;
    margin-top: 12px;
    width: 300px
}

.service .g-input {
    width: 300px
}

.service .g-button {
    margin-top: 12px;
    width: 300px
}

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

.about-logo {
    height: 200px;
    width: 200px
}

.about-name {
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    margin-top: 16px
}

.about-version {
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    margin-top: 12px
}

.about-contact {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 18px
}

.about-desc {
    color: #aaa;
    font-size: 12px;
    font-weight: 700;
    margin-top: 16px
}

.about-link {
    align-items: center;
    -webkit-appearance: none;
    appearance: none;
    background-color: #282828;
    border: 1px solid oklch(1 0 0/.1);
    border-radius: 18px;
    box-sizing: border-box;
    color: #eee;
    cursor: pointer;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    gap: 6px;
    height: 36px;
    justify-content: center;
    line-height: 1;
    min-width: 118px;
    outline: none;
    padding: 0 14px;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease
}

.about-link:hover {
    background-color: #303030;
    border-color: #26bbff66;
    box-shadow: 0 8px 18px #26bbff29;
    transform: translateY(-1px)
}

.about-link.primary {
    background-color: #26bbff;
    border-color: #26bbff;
    box-shadow: 0 8px 18px #26bbff2e;
    color: #000
}

.about-link-icon {
    flex-shrink: 0;
    font-size: 18px !important
}

.about-config-tools {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 12px
}

.floor-selector-vertical {
    display: flex;
    flex-direction: column;
    gap: 8px;
    opacity: .5;
    position: fixed;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    transition: opacity .3s ease;
    z-index: 1000
}

.floor-selector-vertical:hover {
    opacity: 1
}

.floor-button {
    align-items: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background-color: #2b282873;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 8px;
    color: #ffffffd3;
    cursor: pointer;
    display: flex;
    font-size: 12px;
    font-weight: 700;
    height: 40px;
    justify-content: center;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    width: 40px
}

.floor-button:hover {
    background-color: #26bbff;
    border-color: #0000 !important;
    color: #000;
    transform: scale(1.05)
}

.floor-button.active {
    background-color: #ffffffe6;
    border-color: #0000;
    color: #000;
    font-weight: 700
}

.floor-button svg {
    height: 20px;
    width: 20px
}

@media screen and (max-width:768px) {
    .floor-selector-vertical {
        gap: 6px;
        right: 12px
    }

    .floor-button {
        font-size: 11px;
        height: 36px;
        width: 36px
    }

    .floor-button svg {
        height: 18px;
        width: 18px
    }
}

@media screen and (max-width:480px) {
    .floor-selector-vertical {
        gap: 4px;
        right: 8px
    }

    .floor-button {
        font-size: 10px;
        height: 32px;
        width: 32px
    }

    .floor-button svg {
        height: 16px;
        width: 16px
    }
}

.item-box-container {
    align-items: center;
    height: 100%;
    left: 8px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1px
}

.item-box,
.item-box-container {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.item-box {
    pointer-events: none;
    width: 100vw;
    z-index: 10
}

.item-box .item-box-item {
    display: flex;
    flex-direction: row;
    margin-left: auto;
    margin-top: 4px;
    width: 50vw
}

.item-box .item-box-item.active .item-box-item-view {
    box-shadow: 0 0 0 1px #ff4747e6, 0 0 12px #ff474773
}

.item-box .item-box-item.active .item-box-item-info-description,
.item-box .item-box-item.active .item-box-item-info-name {
    color: #ff8d8f
}

.item-box .item-box-item.level-1 .item-box-item-view {
    background-color: #ffffff4d;
    border-left-color: #fff
}

.item-box .item-box-item.level-2 .item-box-item-view {
    background-color: #478f6f4d;
    border-left-color: #63c79a
}

.item-box .item-box-item.level-3 .item-box-item-view {
    background-color: #4d719a4d;
    border-left-color: #699dd7
}

.item-box .item-box-item.level-4 .item-box-item-view {
    background-color: #6b539a4d;
    border-left-color: #9775d9
}

.item-box .item-box-item.level-5 .item-box-item-view {
    background-color: #8c5f3f4d;
    border-left-color: #c58557
}

.item-box .item-box-item.level-6 .item-box-item-view {
    background-color: #8b413f4d;
    border-left-color: #cb605d
}

.item-box .item-box-item .item-box-item-view {
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    background-color: #00000080;
    border-left: 2px solid #fff;
    border-radius: 4px;
    cursor: pointer;
    height: 48px;
    pointer-events: auto;
    position: relative;
    transition: transform .15s ease, box-shadow .15s ease;
    width: 48px
}

.item-box .item-box-item .item-box-item-view:hover {
    transform: translateX(-2px)
}

.item-box .item-box-item .item-box-item-view .item-card-image {
    height: 38px;
    left: 50%;
    object-fit: contain;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 38px
}

.item-box .item-box-item .item-box-item-view .item-card-level-icon {
    height: 10px;
    left: 4px;
    object-fit: contain;
    position: absolute;
    top: 4px;
    width: 10px
}

.item-box .item-box-item .item-box-item-view .item-box-item-info-money {
    bottom: 2px;
    color: #fff;
    font-size: 8px;
    position: absolute;
    right: 2px;
    text-shadow: 0 0 4px #00000080
}

.item-box .item-box-item .item-box-item-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 8px;
    text-shadow: 0 0 4px #00000080
}

.item-box .item-box-item .item-box-item-info .item-box-item-info-name {
    color: #fff;
    font-size: 11px
}

.item-box .item-box-item .item-box-item-info .item-box-item-info-description {
    color: #fff;
    font-size: 10px;
    margin-top: 4px
}

.player-lists {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background-color: #1616166c;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 8px;
    color: #ffffffd3;
    display: flex;
    flex-direction: column;
    font-family: Arial, sans-serif;
    max-height: calc(100vh - 170px);
    padding: 16px;
    position: fixed;
    right: 20px;
    top: 50%;
    touch-action: auto;
    transform: translateY(-50%);
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    width: 340px;
    z-index: 999
}

.player-lists.hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(20px);
    visibility: hidden
}

.player-lists-header {
    align-items: center;
    border-bottom: 1px solid oklch(1 0 0/10%);
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    padding-bottom: 10px
}

.player-lists-header h3 {
    color: #ffffffd3;
    font-size: 14px;
    font-weight: 700;
    margin: 0
}

.player-count {
    background-color: #63626294;
    border-radius: 30px;
    font-family: JetBrains Mono, Fira Code, SF Mono, Consolas, monospace;
    font-size: 10px;
    font-weight: 700;
    opacity: .7;
    padding: 4px 10px
}

.player-lists-content {
    flex-grow: 1;
    margin-right: -4px;
    overflow: hidden !important;
    padding-right: 4px;
    position: relative;
    touch-action: none !important
}

.player-lists-content::-webkit-scrollbar {
    width: 4px
}

.player-lists-content::-webkit-scrollbar-track {
    background: #0000
}

.player-lists-content::-webkit-scrollbar-thumb {
    background: #ffffff1a;
    border-radius: 0;
    -webkit-transition: background .2s ease;
    transition: background .2s ease
}

.player-lists-content::-webkit-scrollbar-thumb:hover {
    background: #fff3
}

.player-lists-content {
    scrollbar-color: #ffffff1a #0000;
    scrollbar-width: thin
}

.player-item {
    align-items: center;
    background-color: #0000002b;
    border-radius: 0;
    cursor: pointer;
    display: flex;
    margin-bottom: 10px;
    padding: 8px;
    position: relative;
    transition: all .2s ease
}

.player-item:hover {
    background-color: #00000080
}

.player-item.current-camera {
    background-color: #26bbff1a;
    position: relative
}

.player-item.current-camera:after {
    border: 1px solid #26bbff33;
    border-bottom: none;
    bottom: 4px;
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0
}

.player-item.current-camera:hover {
    background-color: #26bbff33
}

.player-avatar {
    align-items: center;
    display: flex;
    margin-right: 12px;
    position: relative
}

.hero-avatar {
    background-color: var(--team-color);
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 50%;
    height: 32px;
    padding: 1px;
    width: 32px
}

.team-id {
    align-items: center;
    background: #000c;
    border-radius: 3px;
    bottom: -2px;
    color: #fff;
    display: flex;
    font-size: 9px;
    font-weight: 700;
    height: 14px;
    justify-content: center;
    min-width: 14px;
    padding: 0 3px;
    position: absolute;
    right: -2px;
    white-space: nowrap
}

.team-id.teammate-badge {
    background: #26bbff;
    color: #000;
    font-weight: 700
}

.player-info {
    flex-grow: 1;
    min-width: 0
}

.player-item.has-weapon .player-info {
    padding-right: 50px
}

.player-item.has-weapon.weapon-name-mode .player-info {
    padding-right: 118px
}

.player-name-row {
    align-items: center;
    display: flex;
    gap: 6px;
    margin-bottom: 4px;
    min-width: 0
}

.hero-name {
    color: #ffffff80;
    flex-shrink: 0;
    font-weight: 400
}

.hero-name,
.player-name {
    font-size: 12px;
    white-space: nowrap
}

.player-name {
    color: #ffffffd3;
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis
}

.player-equipment {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    min-height: 18px;
    min-width: 0;
    overflow: hidden
}

.equipment-item {
    align-items: center;
    background: #ffffff1a;
    border-radius: 4px;
    display: flex;
    flex: 0 0 auto;
    line-height: 1;
    padding: 2px 4px;
    white-space: nowrap
}

.equipment-icon-container {
    display: inline-block;
    height: 14px;
    margin-right: 2px;
    width: 14px
}

.equipment-icon-container img,
.equipment-item img {
    height: 14px;
    width: 14px
}

.equipment-item img {
    margin-right: 2px;
    object-fit: contain;
    opacity: .92
}

.equipment-item.icon-only {
    padding: 2px 4px
}

.equipment-item.icon-only img {
    margin-right: 0
}

.equipment-item span {
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    text-align: left
}

.weapon-container {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 2px;
    justify-content: center;
    position: absolute;
    right: 10px;
    text-align: right;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1
}

.weapon {
    align-items: center;
    display: flex
}

.weapon-icon {
    height: 12px;
    object-fit: contain;
    object-position: right center;
    opacity: .8;
    width: 32px
}

.weapon-icon.secondary {
    opacity: .72
}

.weapon-name {
    background: #ffffff24;
    border-radius: 999px;
    color: #ffffffeb;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    max-width: 110px;
    overflow: hidden;
    padding: 3px 8px;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap
}

.weapon-name.secondary {
    background: #ffffff1a;
    opacity: .8
}

.health-bar {
    background: #00000040;
    bottom: -4px;
    height: 4px;
    left: 0;
    position: absolute;
    right: 0
}

.health-fill {
    box-shadow: 0 0 8px #0000004d;
    height: 100%;
    transition: background-color .2s ease
}

.player-item[data-type="2"] {
    opacity: .7
}

.player-item[data-type="3"] {
    background-color: #ff00001a
}

.empty-state {
    align-items: center;
    background: #0000002b;
    border-radius: 6px;
    color: #ffffff4d;
    display: flex;
    flex-direction: column;
    height: 120px;
    justify-content: center;
    -webkit-user-select: none;
    user-select: none
}

.empty-icon {
    font-size: 24px;
    margin-bottom: 8px;
    opacity: .5
}

.empty-text {
    font-size: 14px
}

.player-list-settings-button {
    align-items: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background-color: #2b282873;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 30px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    cursor: pointer;
    display: flex;
    font-size: 14px;
    height: 38px;
    justify-content: center;
    position: fixed;
    right: 20px;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    width: 38px;
    z-index: 999
}

.player-list-settings-button:hover {
    background-color: #26bbff;
    border-color: #0000 !important;
    transform: translateY(-10%) scale(1.02)
}

.player-list-settings-button .icon {
  color: #ffffffd3;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.player-list-settings-button .icon svg {
  width: 20px;
  height: 20px;
  display: block;
}

.player-list-settings-button:hover .icon {
    color: #000
}

@media screen and (max-width:768px) {
    .player-lists {
        left: 50%;
        max-height: calc(100vh - 270px);
        touch-action: auto;
        transform: translateY(-50%) translateX(-50%);
        width: calc(100% - 80px)
    }

    .player-lists-content {
        margin-right: 0;
        overflow: hidden !important;
        padding-right: 0;
        touch-action: none !important
    }

    .player-lists-content::-webkit-scrollbar {
        width: 2px
    }

    .player-lists-content::-webkit-scrollbar-thumb {
        background: #ffffff4d;
        border-radius: 2px
    }
}

.pwd {
    align-items: center;
    background-color: rgba(0, 0, 0, .445);
    height: 100%;
    inset: 0;
    justify-content: center;
    overflow: hidden;
    position: fixed;
    width: 100%;
    z-index: 9999
}

.pwd,
.pwd-container {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-sizing: border-box;
    display: flex
}

.pwd-container {
    background: #1717176c;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 12px;
    flex-direction: column;
    padding: 40px
}

.pwd-header {
    margin-bottom: 32px
}

.pwd-title {
    align-items: center;
    color: #fff;
    display: flex;
    font-size: 20px;
    font-weight: 600;
    justify-content: center;
    margin-bottom: 8px
}

.pwd-subtitle {
    color: #fff9;
    font-size: 14px;
    margin-top: -5px;
    text-align: center
}

.pwd-h1 {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    margin-bottom: 20px;
    width: 100%
}

.pwd-icon {
    font-size: 50px !important
}

.pwd-content {
    width: 100%
}

.pwd-input-group {
    display: flex;
    gap: 12px;
    margin-bottom: 32px
}

.pwd-input-box {
    background: #2626267e;
    border: 1px solid #333;
    border-radius: 8px;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    height: 3rem;
    text-align: center;
    transition: all .2s ease;
    width: 3rem
}

@media screen and (max-width:768px) {
    .pwd-input-box {
        font-size: 18px;
        height: 2.5rem;
        width: 2.5rem
    }
}

.pwd-input-box:focus {
    background: #262626;
    border-color: #26bbff;
    outline: none
}

.pwd-input-box.invalid {
    animation: shake .3s;
    border-color: #ff4d4d
}

.pwd-input {
    opacity: 0;
    pointer-events: none;
    position: absolute
}

.pwd-confirm-btn {
    background: #fafafa;
    border: none;
    border-radius: 8px;
    color: #000;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    opacity: .5;
    padding: 14px;
    pointer-events: none;
    transition: all .2s ease;
    width: 100%
}

.pwd-confirm-btn.active {
    background: #26bbff;
    opacity: 1;
    pointer-events: auto
}

.pwd-confirm-btn.active:hover {
    background: #3ac5ff;
    transform: translateY(-5px) scale(1.02);
    transition: all .2s ease
}

.pwd-confirm-btn.active:active {
    transform: scale(.98)
}

@keyframes shake {

    0%,
    to {
        transform: translateX(0)
    }

    25% {
        transform: translateX(-4px)
    }

    75% {
        transform: translateX(4px)
    }
}

.pwd {
    opacity: 1;
    transition: opacity .3s ease, visibility .3s ease;
    visibility: visible
}

.pwd.hide {
    opacity: 0;
    pointer-events: none;
    visibility: hidden
}

.pwd-status {
    background-color: #fff3;
    border-radius: 4px;
    color: #ffffffa8;
    font-size: 14px;
    margin-top: 10px;
    padding: 8px;
    text-align: center
}

.pwd-received-data {
    background-color: #f5f5f5;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    font-family: monospace;
    margin-top: 10px;
    max-height: 200px;
    overflow-y: auto;
    padding: 8px;
    white-space: pre-wrap;
    word-break: break-all
}

.ping-stats {
    align-items: center;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    background: #2b282873;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 999px;
    box-shadow: 0 4px 6px #0000001a, 0 1px 3px #00000014;
    box-sizing: border-box;
    color: #fff;
    display: flex;
    font-family: Inter, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    font-size: 12px;
    left: 50%;
    padding: 6px 10px;
    position: fixed;
    top: 20px;
    transform: translateX(-50%);
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    z-index: 1000
}

.ping-stats:hover {
    background: #0009;
    transform: translateX(-50%) scale(1.02)
}

.ping-item {
    align-items: center;
    display: flex;
    margin-right: 6px;
    position: relative
}

.ping-item:last-child {
    margin-left: 6px;
    margin-right: 0
}

.ping-item:first-child {
    margin-left: -2px
}

.ping-item:not(:last-child):after {
    background: #fff3;
    content: "";
    height: 8px;
    position: absolute;
    right: -6px;
    top: 50%;
    transform: translateY(-50%);
    width: 1px
}

.ping-item .label {
    box-sizing: border-box;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 2px;
    opacity: .75;
    order: 2;
    white-space: nowrap
}

.ping-item .value {
    align-items: center;
    border-radius: 999px;
    box-sizing: border-box;
    display: inline-flex;
    font-family: JetBrains Mono, Fira Code, SF Mono, Consolas, monospace;
    font-weight: 600;
    letter-spacing: -.2px;
    margin-right: 6px;
    order: 1;
    padding: 3px 8px;
    position: relative;
    transition: all .3s cubic-bezier(.4, 0, .2, 1)
}

.players-count .value {
    align-items: center;
    background: #ffffff1a;
    display: flex;
    padding: 3px 8px
}

.players-count .value:before {
    display: none
}

.ping-display .value:before {
    border-radius: 50%;
    content: "";
    display: inline-block;
    flex-shrink: 0;
    height: 6px;
    margin-right: 4px;
    transition: all .3s ease;
    vertical-align: initial;
    width: 6px
}

.ping-item .value.ping-good {
    background: #0ff5951e;
    color: #0ff595
}

.ping-item .value.ping-good:before {
    background: #0ff595;
    box-shadow: 0 0 12px #0ff5951e
}

.ping-item .value.ping-warning {
    background: #ffb70026;
    color: #ffb700
}

.ping-item .value.ping-warning:before {
    background: #ffb700;
    box-shadow: 0 0 12px #ffb70080
}

.ping-item .value.ping-danger {
    background: #ff454526;
    color: #ff4545
}

.ping-item .ping-nolive {
    background: #74747426;
    color: #fff
}

.ping-item .ping-nolive:before {
    background: #fff
}

.ping-item .value.ping-danger:before {
    background: #ff4545;
    box-shadow: 0 0 12px #ff454580
}

@keyframes pulse {
    0% {
        transform: scale(1)
    }

    50% {
        transform: scale(1.1)
    }

    to {
        transform: scale(1)
    }
}

.ping-item .value:before {
    animation: pulse 2s infinite
}

.timeout-warning-container {
    left: 50%;
    pointer-events: none;
    position: fixed;
    top: 70px;
    transform: translateX(-50%);
    z-index: 999
}

.timeout-warning-content {
    align-items: center;
    animation: warningFadeIn .3s ease-in-out;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    background: #ff454526;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 30px;
    box-shadow: 0 4px 6px #0000001a;
    color: #ff4545;
    display: flex;
    flex-direction: row;
    font-family: Inter, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    padding: 6px 10px;
    text-align: center;
    white-space: nowrap
}

.timeout-warning-content sm {
    font-size: 14px;
    margin-left: 5px;
    opacity: .7
}

.timeout-warning-content .icon {
    font-size: 18px;
    margin-right: 5px
}

@keyframes warningFadeIn {
    0% {
        opacity: 0;
        transform: translateY(-10px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

/* ===================== 左上角地图控制（手动切图 + 漂移微调） ===================== */

.map-control {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    background: #2b282873;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 14px;
    box-shadow: 0 4px 6px #0000001a, 0 1px 3px #00000014;
    box-sizing: border-box;
    color: #fff;
    display: flex;
    flex-direction: column;
    font-family: Inter, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    font-size: 12px;
    left: 16px;
    max-width: 232px;
    padding: 6px;
    position: fixed;
    top: 20px;
    transition: background .3s cubic-bezier(.4, 0, .2, 1);
    user-select: none;
    -webkit-user-select: none;
    z-index: 1001
}

.map-control:hover {
    background: #0009
}

.map-control:focus {
    outline: none
}

.map-control:focus-visible {
    border-color: #26bbff8c;
    box-shadow: 0 0 0 2px #26bbff40, 0 4px 6px #0000001a
}

.map-control-head {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 6px;
    padding: 4px 6px;
    white-space: nowrap
}

.map-control-dot {
    background: #4bed69;
    border-radius: 50%;
    flex-shrink: 0;
    height: 6px;
    transition: background .3s ease;
    width: 6px
}

.map-control.manual .map-control-dot {
    background: #ffb020
}

.map-control-title {
    font-size: 13px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.map-control-mode {
    background: #4bed6926;
    border-radius: 999px;
    color: #4bed69;
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    padding: 3px 7px;
    transition: all .3s ease
}

.map-control.manual .map-control-mode {
    background: #ffb02026;
    color: #ffb020
}

.map-control-caret {
    color: #ffffff8c;
    flex-shrink: 0;
    font-size: 10px;
    margin-left: auto;
    transition: transform .25s ease
}

.map-control.collapsed .map-control-caret {
    transform: rotate(-90deg)
}

.map-control-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 420px;
    opacity: 1;
    overflow: hidden;
    padding: 2px 6px 6px;
    transition: max-height .28s ease, opacity .2s ease, padding .28s ease
}

.map-control.collapsed .map-control-body {
    max-height: 0;
    opacity: 0;
    padding-bottom: 0;
    padding-top: 0;
    pointer-events: none
}

.map-control-row {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: space-between
}

.map-control-label {
    color: #ffffffa6;
    flex-shrink: 0;
    font-size: 11px
}

.map-control-select {
    -webkit-appearance: none;
    appearance: none;
    background: #ffffff14;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 7px;
    color: #fff;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    max-width: 132px;
    outline: none;
    padding: 4px 6px
}

.map-control-select option {
    background: #1c1a1a;
    color: #fff
}

.map-control-seg {
    background: #ffffff12;
    border-radius: 7px;
    display: flex;
    overflow: hidden
}

.map-control-seg button {
    background: none;
    border: 0;
    color: #ffffffa6;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    min-width: 34px;
    padding: 4px 6px;
    transition: all .2s ease
}

.map-control-seg button:hover {
    background: #ffffff1f;
    color: #fff
}

.map-control-seg button.active {
    background: #ffffffe6;
    color: #000;
    font-weight: 700
}

.map-control-value {
    font-family: Consolas, ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    color: #26bbff
}

.map-control-pad {
    display: grid;
    gap: 4px;
    grid-template-columns: repeat(4, 1fr)
}

.map-control-pad button {
    background: #ffffff14;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 7px;
    color: #fff;
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
    padding: 7px 0;
    transition: all .18s cubic-bezier(.4, 0, .2, 1)
}

.map-control-pad button:hover {
    background: #26bbff;
    border-color: #0000;
    color: #000
}

.map-control-pad button:active {
    transform: scale(.94)
}

.map-control-reset {
    background: #ffffff0f;
    border: 1px solid oklch(1 0 0/10%);
    border-radius: 7px;
    color: #ffffffb8;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    padding: 5px 8px;
    transition: all .2s ease
}

.map-control-reset:hover {
    background: #ff6b6b26;
    border-color: #ff6b6b4d;
    color: #ff8f8f
}

.map-control-divider {
    background: #ffffff1a;
    height: 1px;
    margin: 1px 0
}

.map-control-hint {
    background: #ffb0201a;
    border-left: 2px solid #ffb020;
    border-radius: 4px;
    color: #ffd08a;
    font-size: 10px;
    line-height: 1.45;
    padding: 4px 6px
}

.map-control-hint[hidden] {
    display: none
}

@media screen and (max-width:768px) {
    .map-control {
        left: 12px;
        max-width: 200px;
        top: 16px
    }

    .map-control-title {
        font-size: 12px
    }
}

/* 窄屏（≤620px）：居中状态条左边缘 (W-261)/2 会压到左上角 chip，下移到 chip 之下。
   620 这个值来自 (W-261)/2 < 176 → W < 613，留 7px 余量。 */
@media screen and (max-width:620px) {
    .ping-stats {
        top: 56px
    }
}

@media screen and (max-width:480px) {
    .map-control {
        left: 8px;
        max-width: 168px;
        top: 12px
    }

    .map-control-select {
        max-width: 92px
    }
}