:root {
    --app-theme-light: color-mix(in srgb, var(--app-theme) 68%, white);
    --app-theme-dark: color-mix(in srgb, var(--app-theme) 78%, #30256f);
    --app-theme-strong: color-mix(in srgb, var(--app-theme) 86%, #30256f);
    --app-theme-accent: color-mix(in srgb, var(--app-theme) 64%, hsl(285 68% 66%));
    --app-theme-accent-light: color-mix(in srgb, var(--app-theme-accent) 58%, white)
}

*::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 999px
}

*::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 999px;
    background-clip: padding-box
}

*::-webkit-scrollbar-thumb:hover {
    background: var(--app-theme)
}

#downloadButton {
    padding: 14px 36px !important;
    font-size: 16px !important;
    border-radius: 26px !important;
    position: relative;
    animation: downloadButtonPulse 2.2s ease-out infinite
}

@keyframes downloadButtonPulse {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--app-theme) 45%, transparent)
    }

    70% {
        box-shadow: 0 0 0 13px color-mix(in srgb, var(--app-theme) 0%, transparent)
    }

    100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--app-theme) 0%, transparent)
    }
}

body {
    background: #f5f6f8;
    color: #586174
}

.app-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 72px;
    background: rgba(255, 255, 255, .55);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, .4);
    box-shadow: 0 2px 16px rgba(139, 92, 246, .06);
    z-index: 999
}

.app-nav>.container {
    display: grid !important;
    grid-template-columns: 266px minmax(0, 1fr) 266px;
    align-items: center;
}

.app-nav-links {
    display: flex;
    align-items: center;
    justify-self: start;
    gap: 4px
}

.app-nav-toggle {
    display: none
}

.app-nav-link {
    position: relative;
    padding: 0 12px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    font-family: "Microsoft YaHei", "微软雅黑", Arial, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    height: 36px !important;
    line-height: 34px !important;
    color: #475569;
    text-decoration: none;
    transition: color .2s ease !important;
    white-space: nowrap;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: inline-flex;
    align-items: center
}

.app-nav-link::after {
    position: absolute;
    right: 50%;
    bottom: 2px;
    left: 50%;
    height: 2px;
    content: "";
    border-radius: 1px;
    background: var(--app-theme);
    opacity: 0;
    transform: translateX(-50%);
    transition: width .2s ease, opacity .2s ease;
    width: 0
}

.app-nav-link:hover {
    color: var(--app-theme) !important
}

.app-nav-link:hover::after {
    width: 18px;
    opacity: .55
}

.app-nav .app-nav-link,
.app-nav .app-nav-link:visited,
.app-nav .app-nav-link:focus,
.app-nav .app-nav-link:active {
    background: transparent !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent
}

.app-nav .app-nav-link.active,
.app-nav .app-nav-link.active:hover,
.app-nav .app-nav-link.active:focus,
.app-nav .app-nav-link.active:active {
    border: 0 !important;
    background: transparent !important;
    color: var(--app-theme) !important;
    box-shadow: none !important
}

.app-nav .app-nav-link.active::after,
.app-nav .app-nav-link.active:hover::after,
.app-nav .app-nav-link.active:focus::after,
.app-nav .app-nav-link.active:active::after {
    width: 18px;
    opacity: 1
}

.app-brand {
    width: 176px;
    min-width: 0;
    height: 72px;
    display: inline-flex;
    align-items: center;
    color: #475569;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .5px;
    cursor: pointer;
    position: relative;
    transition: color .25s ease
}

.app-brand:hover {
    color: var(--app-theme)
}

.app-brand-name {
    margin-left: 10px
}

.app-brand-arrow {
    margin-left: 6px;
    display: inline-flex;
    transition: transform .3s ease
}

.app-brand:hover .app-brand-arrow {
    transform: rotate(180deg)
}

.app-brand-dropdown {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    min-width: 320px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    z-index: 1000;
    overflow: visible
}

.app-brand-dropdown-arrow {
    position: absolute;
    top: -14px;
    left: 30px;
    width: 0;
    height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-bottom: 14px solid #fff;
    filter: drop-shadow(0 -2px 4px rgba(0, 0, 0, .06))
}

.app-brand:hover .app-brand-dropdown,
.app-brand-dropdown.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0)
}

.app-brand-dropdown-header {
    padding: 14px 18px 16px 18px;
    font-size: 13px;
    font-weight: 600;
    color: #94a3b8;
    border-bottom: 1px solid #f1f5f9;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center
}

.app-brand-dropdown-title-link {
    color: #94a3b8;
    text-decoration: none;
    transition: color .25s ease;
    margin-top: 4px
}

.app-brand-dropdown-title-link:hover {
    color: var(--app-theme);
    text-decoration: none
}

.app-brand-dropdown-list {
    max-height: 400px;
    overflow-y: auto;
    padding: 8px
}

.app-brand-dropdown-list::-webkit-scrollbar {
    width: 6px
}

.app-brand-dropdown-list::-webkit-scrollbar-track {
    background: transparent
}

.app-brand-dropdown-list::-webkit-scrollbar-thumb {
    background: #e2e8f0;
    border-radius: 3px
}

.app-brand-dropdown-list::-webkit-scrollbar-thumb:hover {
    background: #cbd5e1
}

.app-brand-dropdown-item {
    display: flex;
    align-items: center;
    padding: 12px 14px;
    border-radius: 8px;
    text-decoration: none;
    color: #475569;
    transition: all .25s ease;
    margin-bottom: 4px
}

.app-brand-dropdown-item:last-child {
    margin-bottom: 0
}

.app-brand-dropdown-item:hover {
    background: #f8fafc;
    color: var(--app-theme);
    transform: translateX(4px)
}

.app-brand-dropdown-item.active {
    background: color-mix(in srgb, var(--app-theme) 10%, transparent);
    color: var(--app-theme);
    font-weight: 600
}

.app-brand-dropdown-icon {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08)
}

.app-brand-dropdown-info {
    margin-left: 12px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px
}

.app-brand-dropdown-name {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3
}

.app-brand-dropdown-version {
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.2
}

.app-brand-dropdown-item.active .app-brand-dropdown-version {
    color: color-mix(in srgb, var(--app-theme) 70%, #94a3b8)
}

.app-brand-dropdown-current {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
    background: var(--app-theme);
    color: #fff;
    font-weight: 600;
    flex-shrink: 0
}

@keyframes officialShine {

    0%,
    45% {
        left: -35%
    }

    70%,
    100% {
        left: 117%
    }
}

.nav-actions {
    grid-column: 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    width: 266px;
    min-width: 266px
}

.nav-actions a.user-login-btn,
.nav-actions .btn-primary.btn-sm {
    border-radius: 22px !important;
    padding: 0 20px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important;
    height: 36px !important;
    margin-top: 2px !important;
    display: block !important;
    text-align: center !important;
    line-height: 36px !important
}

.nav-actions a.user-login-btn {
    border: 1.5px solid color-mix(in srgb, var(--app-theme) 35%, transparent) !important;
    background: color-mix(in srgb, var(--app-theme) 8%, transparent) !important;
    color: var(--app-theme) !important;
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px)
}

.nav-actions a.user-login-btn:hover:hover {
    border-color: color-mix(in srgb, var(--app-theme) 60%, transparent) !important;
    background: color-mix(in srgb, var(--app-theme) 15%, transparent) !important;
    color: var(--app-theme-strong) !important;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--app-theme) 18%, transparent) !important;
    transform: translateY(-1px)
}

.nav-actions .btn-primary.btn-sm {
    background: linear-gradient(79deg, var(--app-theme), var(--app-theme-accent)) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--app-theme-accent) 38%, transparent) !important;
    padding: 0 25px !important
}

.nav-actions .btn-primary.btn-sm:hover {
    background: linear-gradient(79deg, var(--app-theme-light), var(--app-theme-accent-light)) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 24px color-mix(in srgb, var(--app-theme-accent) 52%, transparent) !important
}

.hero {
    position: relative;
    overflow: hidden;
    padding: 110px 0 130px;
    background: linear-gradient(135deg, #f0f4ff 0%, #e8efff 25%, #f5f0ff 50%, #eef5ff 75%, #f8f4ff 100%);
    border-bottom: 1px solid rgba(139, 92, 246, .08)
}

.hero:before {
    content: '';
    position: absolute;
    width: 1000px;
    height: 1000px;
    top: -400px;
    right: -300px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(167, 139, 250, .32) 0%, rgba(167, 139, 250, .16) 30%, transparent 65%);
    animation: heroFloat 20s ease-in-out infinite;
    filter: blur(60px)
}

.hero:after {
    content: '';
    position: absolute;
    width: 950px;
    height: 950px;
    bottom: -380px;
    left: -280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(139, 92, 246, .40) 0%, rgba(139, 92, 246, .20) 30%, transparent 65%);
    animation: heroFloat 20s ease-in-out infinite;
    animation-delay: -10s;
    filter: blur(55px)
}

.hero-mesh {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 120% 70% at 50% 0%, rgba(167, 139, 250, .12) 0%, transparent 50%), radial-gradient(ellipse 90% 60% at 85% 25%, rgba(139, 92, 246, .1) 0%, transparent 50%), radial-gradient(ellipse 80% 50% at 20% 80%, rgba(99, 102, 241, .08) 0%, transparent 50%);
    pointer-events: none
}

.hero-dots {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(2.5px 2.5px at 12% 22%, rgba(167, 139, 250, .1) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 32% 68%, rgba(139, 92, 246, .08) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 52% 12%, rgba(167, 139, 250, .07) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 72% 42%, rgba(139, 92, 246, .09) 50%, transparent 50%), radial-gradient(3px 3px at 8% 78%, rgba(167, 139, 250, .12) 50%, transparent 50%), radial-gradient(3px 3px at 62% 82%, rgba(139, 92, 246, .1) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 82% 8%, rgba(167, 139, 250, .08) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 42% 48%, rgba(139, 92, 246, .06) 50%, transparent 50%), radial-gradient(2px 2px at 22% 88%, rgba(167, 139, 250, .11) 50%, transparent 50%), radial-gradient(2px 2px at 88% 58%, rgba(139, 92, 246, .08) 50%, transparent 50%);
    pointer-events: none;
    animation: heroDots 30s linear infinite
}

.hero-grid {
    position: absolute;
    border-radius: 28px;
    transform: rotate(45deg);
    animation: heroGrid 35s linear infinite
}

.hero-grid-one {
    width: 420px;
    height: 420px;
    top: -140px;
    left: 12%;
    border: 2px solid rgba(167, 139, 250, .06);
    background: linear-gradient(135deg, rgba(167, 139, 250, .02) 0%, transparent 50%)
}

.hero-grid-two {
    width: 360px;
    height: 360px;
    right: 8%;
    bottom: -180px;
    border: 2px solid rgba(139, 92, 246, .05);
    background: linear-gradient(135deg, rgba(139, 92, 246, .02) 0%, transparent 50%);
    animation-direction: reverse;
    animation-duration: 40s
}

.hero-grid-three {
    position: absolute;
    width: 280px;
    height: 280px;
    top: 32%;
    right: 28%;
    border: 2px solid rgba(167, 139, 250, .04);
    background: linear-gradient(135deg, rgba(167, 139, 250, .02) 0%, transparent 50%);
    transform: rotate(30deg);
    animation: heroGrid 45s linear infinite reverse
}

.hero-line {
    position: absolute;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .1), rgba(139, 92, 246, .1), transparent);
    animation: heroLine 12s ease-in-out infinite
}

.hero-line-one {
    top: 26%;
    left: 0;
    right: 0
}

.hero-line-two {
    top: 70%;
    left: 0;
    right: 0;
    animation-delay: -6s;
    background: linear-gradient(90deg, transparent, rgba(139, 92, 246, .08), rgba(167, 139, 250, .08), transparent)
}

.hero .container {
    position: relative;
    z-index: 2
}

.hero h1 {
    font-size: 56px;
    font-weight: 800;
    margin-bottom: 28px;
    letter-spacing: 1px;
    line-height: 1.08;
    background: linear-gradient(135deg, #334155 0%, #475569 50%, #64748b 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.hero p {
    max-width: 600px;
    font-size: 19px;
    line-height: 1.9;
    color: #94a3b8;
    margin-bottom: 40px
}

.download-banner {
    min-height: 285px;
    padding: 32px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-strong));
    box-shadow: 0 14px 36px color-mix(in srgb, var(--app-theme) 30%, transparent);
    color: #fff;
    display: flex;
    align-items: center
}

.download-banner h4 {
    color: #fff;
    font-size: 22px
}

.download-banner .btn {
    padding: 11px 16px;
    font-weight: 600
}

.download-banner .download-meta {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, .2);
    font-size: 12px;
    color: rgba(255, 255, 255, .72)
}

.banner-placeholder {
    width: 150px;
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 32px;
    background: rgba(255, 255, 255, .15);
    font-size: 70px;
    color: rgba(255, 255, 255, .8);
    transform: rotate(-7deg)
}

@keyframes heroFlow {

    0%,
    100% {
        background-position: 0% 50%
    }

    50% {
        background-position: 100% 50%
    }
}

@keyframes heroOrb {

    0%,
    100% {
        transform: translate(0, 0) scale(1)
    }

    50% {
        transform: translate(-28px, 32px) scale(1.14)
    }
}

@keyframes heroGrid {
    to {
        transform: rotate(405deg)
    }
}

.monitor {
    position: relative;
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
    overflow: visible
}

.monitor-screen {
    height: 190px;
    padding: 8px;
    border: 8px solid #e2e8f0;
    border-radius: 14px 14px 8px 8px;
    background: linear-gradient(180deg, #1e1b4b 0%, #13103a 50%, #0c0a2e 100%);
    box-shadow: 0 18px 36px rgba(139, 92, 246, .15), 0 0 0 1px rgba(139, 92, 246, .08);
    overflow: visible
}

.monitor-screen img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.monitor-screen .banner-placeholder {
    width: 100%;
    height: 100%;
    border-radius: 5px;
    transform: none
}

.monitor-logo {
    position: absolute;
    top: 173px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 9px;
    color: #b6bdca
}

.monitor-stand {
    width: 45px;
    height: 25px;
    margin: 0 auto;
    background: linear-gradient(90deg, #a8b0bd, #f2f4f7, #a8b0bd);
    clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
    z-index: 1
}

.monitor-base {
    width: 125px;
    height: 7px;
    margin: 0 auto;
    border-radius: 50% 50% 4px 4px;
    background: linear-gradient(90deg, #9ca5b4, #f4f5f7, #9ca5b4);
    z-index: 1
}

.agent-modal-dialog {
    min-height: 430px
}

.agent-step-icon {
    border-radius: 50%
}

.video-modal-dialog {
    width: 800px;
    max-width: calc(100vw - 40px);
    height: 530px;
    max-height: calc(100vh - 40px);
    background: #111827;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 16px 50px rgba(0, 0, 0, .36)
}

#serviceModal .video-modal-dialog {
    width: 860px;
    max-width: calc(100vw - 40px);
    height: calc(70vh + 90px);
    overflow: visible;
    border: 0;
    border-radius: 10px;
    background: transparent
}

#serviceModal .video-modal-dialog {
    opacity: 0;
    visibility: hidden;
    transform: scale(.96);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease
}

#serviceModal.is-ready .video-modal-dialog {
    opacity: 1;
    visibility: visible;
    transform: scale(1)
}

#serviceModal .video-modal-body {
    position: relative;
    height: 100%;
    overflow: hidden;
    background: transparent;
    border-radius: 10px
}

#serviceModal .video-modal-body iframe {
    display: block;
    width: 100%;
    height: 100% !important;
    border: 0;
    border-radius: 10px
}

.service-modal-loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 13px;
    color: #fff;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease
}

#serviceModal.is-loading .service-modal-loading {
    opacity: 1;
    visibility: visible
}

.service-modal-loading .app-switch-spinner {
    width: 100px;
    height: 100px;
    margin: 0
}

.service-modal-loading strong {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    text-shadow: 0 2px 8px rgba(15, 23, 42, .36)
}

.service-modal-loading span {
    color: rgba(255, 255, 255, .72);
    font-size: 14px
}

#copyrightModal .copyright-loading>span {
    color: #fff
}

#serviceModal .auth-close-btn {
    position: absolute !important;
    top: -18px !important;
    right: -18px !important;
    z-index: 10001 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-shadow: none !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important
}

#serviceModal .auth-close-btn svg {
    width: 18px !important;
    height: 18px !important;
    fill: none !important;
    stroke: #7a8599 !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important
}

#serviceModal .auth-close-btn:hover {
    background: #e63946 !important;
    box-shadow: 0 5px 18px rgba(230, 71, 70, .35) !important;
    transform: rotate(360deg) !important
}

#serviceModal .auth-close-btn:hover svg {
    stroke: #fff !important
}

#videoModal .video-modal-body {
    width: 100%;
    height: 100%;
    padding: 0;
    background: #000;
    border-radius: 0;
    overflow: hidden
}

#videoModal .video-modal-body video,
#videoModal .video-modal-body iframe {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 0
}

.video-modal-body {
    padding: 0;
    background: #000
}

.video-modal video {
    display: block;
    width: 100%;
    max-height: 70vh
}

.section-title {
    font-size: 20px;
    font-weight: 600;
    color: #313a46
}

.buyer-list {
    display: flex;
    overflow-x: auto;
    padding: 3px 1px 12px;
    gap: 12px;
    scroll-snap-type: x proximity
}

.agent-modal {
    display: none;
    position: fixed;
    z-index: 1050;
    inset: 0;
    background: rgba(49, 58, 70, .56);
    padding: 20px;
    overflow: auto
}

.agent-modal.show {
    display: flex;
    align-items: center;
    justify-content: center
}

.agent-modal-dialog {
    width: 100%;
    max-width: 720px;
    min-height: 430px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 16px 50px rgba(0, 0, 0, .24);
    overflow: hidden
}

.agent-modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid #edf0f4;
    display: flex;
    align-items: center;
    justify-content: space-between
}

.agent-modal-title {
    font-size: 20px;
    color: #313a46;
    font-weight: 600
}

.agent-modal-close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 27px;
    line-height: 1;
    color: #98a6ad;
    cursor: pointer;
    transition: .2s
}

.agent-modal-close:hover {
    background: #fa5c7c;
    color: #fff;
    transform: rotate(90deg)
}

.agent-modal-body {
    padding: 36px 24px 48px
}

.agent-steps {
    display: flex;
    align-items: flex-start
}

.agent-step {
    flex: 1;
    text-align: center
}

.agent-step-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 13px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef0ff;
    color: var(--app-theme);
    font-size: 24px
}

.agent-step:nth-child(3) .agent-step-icon {
    background: #e7f8f4;
    color: #0acf97
}

.agent-step:nth-child(5) .agent-step-icon {
    background: #fff5dc;
    color: #ffbc00
}

.agent-step-title {
    font-size: 16px;
    color: #313a46;
    font-weight: 600
}

.agent-step-text {
    margin: 7px auto 0;
    max-width: 150px;
    font-size: 13px;
    line-height: 1.7;
    color: #98a6ad
}

.agent-step-line {
    height: 2px;
    flex: 0 0 46px;
    margin-top: 25px;
    background: #dfe3f7
}

.agent-modal-actions {
    padding-top: 32px;
    text-align: center
}

.agent-modal-actions .btn {
    min-width: 180px
}

.section-gap {
    margin-bottom: 30px
}

.footer {
    position: static;
    padding: 24px 0;
    color: #98a6ad;
    font-size: 13px
}

.footer a {
    color: inherit
}


.hero {
    padding: 110px 0 130px
}

.hero:before {
    opacity: .7
}

.hero-grid {
    border-color: rgba(167, 139, 250, .1)
}

.hero .row {
    min-height: 440px
}

.hero p.hero-description,
p.hero-description {
    color: #5f696e !important
}

.hero-description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden
}

.hero-tags {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 42px;
    flex-wrap: wrap
}

.hero-tag {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 22px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .75);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(167, 139, 250, .15);
    color: #475569;
    font-size: 14px;
    font-weight: 500;
    box-shadow: 0 4px 16px rgba(139, 92, 246, .08), 0 1px 3px rgba(139, 92, 246, .04);
    transition: all .35s cubic-bezier(.4, 0, .2, 1)
}

.hero-tag strong {
    color: #1e1b4b
}

.download-banner {
    min-height: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none
}

.monitor {
    max-width: 580px;
    filter: drop-shadow(0 20px 40px rgba(139, 92, 246, .08))
}

.monitor-screen {
    height: 380px;
    padding: 6px;
    border: 3px solid #e2e8f0;
    border-radius: 20px 20px 12px 12px;
    box-shadow: 0 30px 80px rgba(139, 92, 246, .12), 0 0 0 1px rgba(139, 92, 246, .1), inset 0 0 60px rgba(139, 92, 246, .03);
    overflow: visible;
    background: linear-gradient(180deg, #1e1b4b 0%, #13103a 50%, #0c0a2e 100%)
}

.monitor-screen>.monitor-video,
.monitor-screen>.monitor-carousel,
.monitor-screen>.banner-placeholder {
    border-radius: 9px 9px 3px 3px;
    overflow: hidden
}

.monitor-logo {
    top: 362px
}

.monitor-stand {
    width: 160px;
    height: 36px;
    margin: 0 auto;
    background: linear-gradient(180deg, rgba(139, 92, 246, .15) 0%, rgba(139, 92, 246, .08) 100%);
    clip-path: polygon(28% 0, 72% 0, 100% 100%, 0 100%);
    filter: drop-shadow(0 6px 12px rgba(139, 92, 246, .08))
}

.monitor-base {
    width: 280px;
    height: 6px;
    margin: 0 auto;
    border-radius: 6px;
    background: linear-gradient(90deg, rgba(139, 92, 246, .12), rgba(167, 139, 250, .18), rgba(139, 92, 246, .12));
    filter: drop-shadow(0 2px 6px rgba(139, 92, 246, .06))
}

.download-meta {
    display: none
}

.buyer-section {
    padding-top: 0
}

.buyer-list {
    padding: 4px 2px 15px
}

@keyframes buyerMarquee {
    from {
        transform: translateX(0)
    }

    to {
        transform: translateX(-50%)
    }
}

.video-modal-dialog {
    width: 700px;
    max-width: calc(100vw - 40px);
    border: 5px solid var(--app-theme);
    border-radius: 12px;
    position: relative;
    height: auto
}

.video-modal video {
    width: 100%;
    height: auto;
    max-height: calc(100vh - 100px);
    object-fit: contain;
    display: block
}

@keyframes heroGlow {

    0%,
    100% {
        transform: translate(0, 0) scale(1)
    }

    50% {
        transform: translate(20px, -15px) scale(1.04)
    }
}

@keyframes heroFloat {

    0%,
    100% {
        transform: translate(0, 0) scale(1)
    }

    50% {
        transform: translate(30px, -20px) scale(1.06)
    }
}

@keyframes heroDots {
    0% {
        opacity: .6
    }

    50% {
        opacity: 1
    }

    100% {
        opacity: .6
    }
}

@keyframes heroLine {

    0%,
    100% {
        opacity: .3
    }

    50% {
        opacity: .8
    }
}

.hero-grid-three,
.hero-line-one,
.hero-line-two {
    display: none
}

.video-modal-dialog {
    height: auto
}

.video-modal video {
    height: auto
}

.download-meta {
    color: rgba(148, 163, 184, .7);
    font-size: 13px
}

.hero {
    padding: 70px 0 80px
}

.hero .row {
    min-height: 450px;
    padding-top: 90px
}

.hero-tags {
    gap: 24px
}

.hero-tag {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 15px;
    border-radius: 8px;
    box-shadow: 0 6px 16px rgba(72, 85, 150, .08)
}

.hero-tag:before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--app-theme);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--app-theme) 13%, transparent)
}

.hero-tag:nth-child(2):before {
    background: #0acf97;
    box-shadow: 0 0 0 4px rgba(10, 207, 151, .13)
}

.download-banner {
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none
}

.monitor {
    max-width: 460px
}

.monitor-screen {
    height: 266px;
    padding: 6px;
    border-width: 4px;
    border-radius: 14px 14px 7px 7px
}

.monitor-logo {
    top: 248px
}

.monitor-stand {
    width: 70px;
    height: 24px
}

.monitor-base {
    width: 180px;
    height: 7px
}

.video-modal-dialog {
    height: auto;
    background: #000;
    border: 5px solid var(--app-theme)
}

.activity-card {
    border: 1px solid #edf0f4;
    border-radius: 8px;
    padding: 16px;
    min-width: 245px;
    background: #fff
}

.activity-title {
    font-weight: 600;
    color: #313a46;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.activity-title .time {
    font-size: 12px;
    font-weight: 400;
    color: #98a6ad
}

.activity-text {
    margin-top: 8px;
    font-size: 13px;
    color: #667085;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.activity-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    font-weight: 600
}

.activity-track {
    display: flex;
    gap: 12px;
    width: max-content;
    animation: buyerMarquee 70s linear infinite
}

.buyer-list:hover .activity-track {
    animation-play-state: paused
}

.buyer-list {
    padding-bottom: 16px
}

.monitor {
    max-width: 540px
}

.monitor-screen {
    height: 310px;
    border-width: 3px;
    border-radius: 13px
}

.monitor-logo {
    top: 292px
}

.monitor-stand {
    width: 110px;
    height: 14px;
    background: #b4bdca;
    clip-path: polygon(15% 0, 85% 0, 100% 100%, 0 100%)
}

.monitor-base {
    width: 210px;
    height: 5px;
    border-radius: 4px;
    background: #a5afbe
}

.hero-tag {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-size: 14px
}

.hero-tag:before {
    width: 22px;
    height: 22px;
    box-shadow: none;
    background: #eef0ff
}

.hero-tag:after {
    content: '●';
    position: absolute;
    font-size: 10px;
    color: var(--app-theme)
}

.hero-tag:nth-child(2):before {
    background: #e7f8f4;
    box-shadow: none
}

.hero-tags .copyright-trigger#openCopyrightModal {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: #475569;
    white-space: nowrap
}

.hero-tags .copyright-trigger#openCopyrightModal i {
    font-size: 18px;
    color: #f59e0b
}

.hero-tag:nth-child(1):before {
    background: #fff3e6;
    box-shadow: none
}

.hero-tag:nth-child(1):after {
    color: #f59e0b
}

.hero-tag:nth-child(2):before {
    background: #eef0ff;
    box-shadow: none
}

.hero-tag:nth-child(2):after {
    color: var(--app-theme)
}

.hero-tag:nth-child(3):before {
    background: #e7f8f4;
    box-shadow: none
}

.hero-tag:nth-child(3):after {
    color: #0acf97
}

#videoModal .video-modal-dialog {
    width: auto;
    max-width: calc(100vw - 40px);
    max-height: 498px;
    height: 498px;
    aspect-ratio: auto;
    border: 0;
    overflow: visible
}

.video-modal video {
    display: block;
    width: auto;
    height: auto;
    max-width: calc(100vw - 50px);
    max-height: calc(100vh - 50px);
    object-fit: contain
}

.activity-card {
    min-width: 270px;
    padding: 17px;
    border: 0;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(49, 58, 70, .1);
    transform: translateY(0);
    transition: .2s
}

.activity-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(49, 58, 70, .16)
}

.activity-title {
    display: flex;
    align-items: center;
    min-width: 0
}

.activity-text {
    padding-left: 42px;
    margin-top: 9px
}

.activity-controls {
    display: flex;
    gap: 8px
}

.activity-control {
    width: 29px;
    height: 29px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    color: #64748b;
    cursor: pointer
}

.activity-control:hover {
    color: var(--app-theme);
    border-color: var(--app-theme)
}

.buyer-list {
    scroll-behavior: smooth
}

.recent-static {
    animation: none
}

.monitor {
    width: 600px;
    max-width: 100%
}

.monitor-screen {
    height: 380px
}

.monitor-logo {
    top: 361px
}

.monitor-stand {
    width: 150px;
    height: 28px;
    background: #aeb8c5;
    clip-path: polygon(32% 0, 68% 0, 100% 100%, 0 100%)
}

.monitor-base {
    width: 260px;
    height: 8px;
    border-radius: 7px;
    background: linear-gradient(90deg, #9ba6b5, #d7dce3, #9ba6b5)
}

#videoModal .video-modal-dialog {
    width: 820px;
    max-width: calc(100vw - 40px);
    max-height: 498px;
    height: 498px;
    overflow: visible
}

.video-modal-body {
    display: flex;
    align-items: center;
    justify-content: center
}

.video-modal video {
    max-width: 100%;
    max-height: calc(100vh - 100px);
    width: auto;
    height: auto
}

.buyer-list {
    overflow: hidden;
    padding-bottom: 0
}

.buyer-list::-webkit-scrollbar {
    display: none
}

.activity-title {
    font-size: 15px
}

.activity-text {
    font-size: 13px
}

.activity-title .time {
    margin-left: 4px
}

.hero-tag {
    position: relative;
    color: rgba(var(--app-theme-rgb), .78);
    font-size: 15px;
    font-weight: 400
}

.hero-tag svg {
    width: 20px;
    height: 20px;
    margin-right: -5px;
    vertical-align: -5px;
    fill: rgba(var(--app-theme-rgb), .55);
    stroke: rgba(var(--app-theme-rgb), .55);
    stroke-width: 14;
    paint-order: stroke fill
}

.hero-tag:before,
.hero-tag:after {
    display: none
}

.download-banner {
    width: 560px;
    max-width: none;
    margin: 0 auto
}

.monitor-screen {
    width: 560px;
    max-width: none;
    height: 373px
}

.monitor-stand {
    height: 34px
}

.monitor-base {
    width: 300px;
    height: 10px
}

#videoModal .video-modal-dialog {
    width: 820px;
    max-width: calc(100vw - 40px);
    max-height: 498px;
    overflow: visible;
    height: 498px
}

.video-modal video {
    width: 100%;
    height: auto;
    max-height: calc(100vh - 100px);
    object-fit: contain
}

.buyer-list {
    overflow: hidden;
    padding: 14px 10px 18px;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.buyer-list::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important
}

.activity-track {
    width: 100%;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 48px) / 5);
    gap: 12px;
    animation: none
}

.activity-track:not(.recent-static) {
    width: max-content;
    display: flex;
    gap: 12px;
    animation: buyerMarquee 70s linear infinite
}

.activity-track:not(.recent-static) .activity-card {
    width: calc((1140px - 48px) / 5);
    min-width: 208px
}

.activity-card {
    min-width: 0;
    overflow: visible;
    background: #fff;
    border: 1px solid #edf0f4;
    box-shadow: 0 4px 12px rgba(49, 58, 70, .07)
}

.activity-card:hover {
    box-shadow: 0 6px 15px rgba(49, 58, 70, .1)
}

.activity-avatar {
    background-size: cover !important;
    background-position: center !important;
    color: transparent !important
}

.activity-avatar img {
    display: none
}

.member-mark {
    border-radius: 50%
}

.activity-control {
    width: 34px;
    height: 30px;
    border-color: #e6eaf0;
    border-radius: 6px;
    background: #fff;
    color: #9aa5b3;
    font-size: 0;
    line-height: 1
}

.activity-control:hover {
    color: var(--app-theme);
    border-color: #cdd3ff
}

.activity-control:before {
    display: none
}

.activity-control svg {
    width: 14px;
    height: 14px;
    fill: currentColor
}

.activity-controls {
    gap: 8px
}

.hero .col-lg-6>a.btn-primary {
    position: relative
}

.download-count-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    background: rgba(25, 32, 45, .72);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(25, 32, 45, .2)
}

.hero {
    padding-bottom: 180px;
    background: linear-gradient(90deg, #fff 0%, #fff 42%, rgba(var(--app-theme-rgb), .07) 72%, rgba(var(--app-theme-rgb), .15) 100%) !important;
}

.hero:before {
    background: radial-gradient(circle, rgba(var(--app-theme-rgb), .24) 0%, rgba(var(--app-theme-rgb), .10) 36%, transparent 68%) !important;
}

.hero-mesh {
    background: radial-gradient(ellipse 90% 75% at 92% 42%, rgba(var(--app-theme-rgb), .16) 0%, transparent 66%) !important;
}

.download-banner {
    transform: translateY(25px)
}

.hero .col-lg-6>a.btn-primary {
    height: 45px;
    border-radius: 23px;
    padding: 0 25px;
    display: inline-flex;
    align-items: center;
    animation: downloadPulse 2s ease-out infinite
}

@keyframes downloadPulse {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--app-theme) 45%, transparent)
    }

    70% {
        box-shadow: 0 0 0 10px color-mix(in srgb, var(--app-theme) 0%, transparent)
    }
}

.download-banner .btn-primary {
    height: 45px;
    border-radius: 23px;
    padding: 0 25px;
    display: inline-flex;
    align-items: center
}

.monitor-screen {
    position: relative;
    overflow: hidden
}

.monitor-screen:after {
    content: '';
    position: absolute;
    inset: -30% auto -30% -45%;
    width: 20%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
    transform: skewX(-20deg);
    animation: monitorShine 8s ease-in-out infinite;
    pointer-events: none
}

.monitor:hover .monitor-screen:after,
.monitor.playing .monitor-screen:after {
    animation-play-state: paused
}

@keyframes monitorShine {

    0%,
    45% {
        left: -45%
    }

    70%,
    100% {
        left: 125%
    }
}

.monitor-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #101522
}

.monitor-carousel {
    position: absolute;
    inset: 6px;
    z-index: 1;
    overflow: hidden;
    border-radius: 9px 9px 3px 3px;
    background: #101522;
}

.monitor-carousel-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain !important;
    opacity: 0;
    transition: opacity 1s cubic-bezier(.4, 0, .2, 1);
    pointer-events: none;
}

.monitor-carousel-image.active {
    opacity: 1;
    pointer-events: auto;
}

.monitor-carousel-control {
    position: absolute;
    z-index: 3;
    bottom: 10px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 3px;
    background: rgba(0, 0, 0, .55);
    backdrop-filter: blur(8px);
    color: #fff;
    cursor: pointer;
}

.monitor-carousel-control:hover {
    background: rgba(var(--app-theme-rgb), .85);
}

.monitor-carousel-control svg {
    width: 10px;
    height: 10px;
    fill: currentColor;
}

.monitor-carousel-control.prev {
    left: calc(50% - 26px);
}

.monitor-carousel-control.next {
    left: calc(50% + 4px);
}

.monitor.playing .monitor-carousel {
    display: none;
}

.monitor-play {
    position: absolute;
    z-index: 50;
    top: calc(50% - 20px);
    left: 50%;
    width: 60px;
    height: 60px;
    border: 0;
    border-radius: 50%;
    background: rgba(var(--app-theme-rgb), .55);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    transition: transform .2s, box-shadow .2s, background .2s
}

.monitor-play:hover {
    transform: translate(-50%, -50%) scale(1.12);
    background: rgba(var(--app-theme-rgb), .52);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .35)
}

.monitor-play svg {
    width: 28px;
    height: 28px;
    margin-left: 4px;
    fill: currentColor
}

.monitor.playing .monitor-play {
    display: none
}

#recentBuyers {
    container-type: inline-size
}

#recentBuyers .activity-track {
    width: max-content;
    display: flex;
    gap: 12px;
    animation: buyerMarquee 70s linear infinite
}

#recentBuyers:hover .activity-track {
    animation-play-state: running
}

#recentBuyers .activity-card {
    flex: 0 0 calc((100cqw - 48px) / 5);
    width: calc((100cqw - 48px) / 5);
    min-width: 0
}

.app-recommend-section {
    position: relative;
    overflow: hidden;
    border: 0;
    border-radius: .25rem;
    background: linear-gradient(90deg, #fff 0%, #fff 72%, #fafbff 100%);
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075)
}

.app-recommend-section:before {
    display: none
}

.app-recommend-heading {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 20px
}

.app-recommend-hint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 30px;
    border: 1px solid #e6eaf0;
    border-radius: 6px;
    background: #fff;
    color: #9aa5b3;
    transition: all .22s;
    text-decoration: none;
    cursor: pointer;
}

.app-recommend-hint:hover {
    color: var(--app-theme);
    border-color: rgba(var(--app-theme-rgb), .52);
    background: rgba(var(--app-theme-rgb), .10);
    box-shadow: 0 3px 9px rgba(var(--app-theme-rgb), .14);
}

.app-recommend-hint:hover svg {
    fill: currentColor;
}

.app-recommend-hint svg {
    width: 14px;
    height: 14px;
    fill: currentColor
}

.app-recommend-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px
}

.app-recommend-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 178px;
    padding: 17px;
    border: 1px solid rgba(222, 227, 246, .95);
    border-radius: 14px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 5px 15px rgba(49, 58, 70, .055);
    color: inherit;
    text-decoration: none;
    overflow: hidden;
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease
}

.app-recommend-card:after {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--app-theme), var(--app-theme-light));
    opacity: 0;
    transition: .24s
}

.app-recommend-card:hover {
    border-color: #c8cffd;
    box-shadow: 0 12px 25px rgba(83, 96, 190, .15);
    transform: translateY(-4px);
    text-decoration: none
}

.app-recommend-card:hover:after {
    opacity: 1
}

.app-recommend-top {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: -17px -17px 14px;
    padding: 15px 17px;
    background: linear-gradient(135deg, #f5f6ff 0%, #fff 72%);
    border-bottom: 1px solid #edf0fa
}

.app-recommend-icon {
    width: 56px;
    height: 56px;
    padding: 3px;
    border: 0px solid #dce2ff;
    border-radius: 16px;


    overflow: hidden;
    flex-shrink: 0
}

.app-recommend-icon img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 12px;
    object-fit: cover
}

.app-recommend-top-info {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px
}

.app-recommend-name {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #2f3850;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.app-recommend-ver {
    flex: 0 0 auto;
    font-size: 10px;
    color: var(--app-theme-dark);
    background: #e8ebff;
    padding: 4px 8px;
    border: 1px solid #d9defe;
    border-radius: 999px;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: 0 2px 5px color-mix(in srgb, var(--app-theme) 8%, transparent)
}

.app-recommend-body {
    padding: 0;
    flex: 1
}

.app-recommend-desc {
    font-size: 13px;
    color: #657083;
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.app-recommend-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 15px;
    padding-top: 12px;
    border-top: 1px dashed #e5e8f3;
    background: transparent
}

.app-recommend-footer-text {
    font-size: 11px;
    color: #94a0b1
}

.app-recommend-download {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 11px;
    border: 1px solid #d9defd;
    border-radius: 999px;
    background: #f1f3ff;
    color: var(--app-theme-dark);
    font-size: 12px;
    font-weight: 600;
    transition: .2s
}

.app-recommend-card:hover .app-recommend-download {
    border-color: var(--app-theme);
    background: var(--app-theme);
    color: #fff
}

.app-recommend-section {
    border-radius: 14px
}

.app-recommend-heading {
    align-items: flex-start;
    gap: 10px
}

.app-recommend-hint {
    font-size: 11px
}

.app-recommend-card {
    min-height: 0
}

.notice-banner-card {
    border-left: 3px solid #ff8c42 !important
}

.notice-banner-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 140, 66, .12);
    color: #ff8c42;
    flex: 0 0 32px;
    margin-right: 12px
}

.notice-banner-icon svg {
    width: 18px;
    height: 18px;
    animation: bellRing 2s ease-in-out infinite
}

.notice-banner-label {
    font-size: 13px;
    font-weight: 700;
    color: #ff8c42;
    background: rgba(255, 140, 66, .1);
    padding: 4px 12px;
    border-radius: 12px;
    margin-right: 14px;
    white-space: nowrap
}

.notice-banner-text {
    flex: 1;
    font-size: 15px;
    color: #4a5568;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500
}

.notice-banner-time {
    font-size: 12px;
    color: #98a6ad;
    margin-left: 14px;
    white-space: nowrap
}

@keyframes bellRing {

    0%,
    100% {
        transform: rotate(0)
    }

    10%,
    30% {
        transform: rotate(15deg)
    }

    20%,
    40% {
        transform: rotate(-15deg)
    }

    50% {
        transform: rotate(0)
    }
}

.pt-5,
.py-5 {
    padding-top: 2.5rem !important
}

.member-mark {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    font-size: 14px;
    font-weight: 700
}

.member-mark.year {
    background: linear-gradient(135deg, #f6c453, #d99a22);
    box-shadow: 0 3px 8px rgba(217, 154, 34, .24)
}

.member-mark.month {
    background: linear-gradient(135deg, #5fa8d3, #3f7cac);
    box-shadow: 0 3px 8px rgba(63, 124, 172, .22)
}

.member-mark.season {
    background: linear-gradient(135deg, #a78bca, #7656a6);
    box-shadow: 0 3px 8px rgba(118, 86, 166, .22)
}

.member-mark.forever {
    background: linear-gradient(135deg, #ef7474, #c94f5f);
    box-shadow: 0 3px 8px rgba(201, 79, 95, .24)
}

.member-mark.trial {
    background: linear-gradient(135deg, #43e97b, #38f9d7);
    box-shadow: 0 3px 8px rgba(67, 233, 123, .22)
}

.member-mark.default {
    background: linear-gradient(135deg, #62b6a6, #388c7b);
    box-shadow: 0 3px 8px rgba(56, 140, 123, .2)
}

.member-mark.points {
    background: linear-gradient(135deg, #ffb347, #f97316);
    box-shadow: 0 3px 8px rgba(249, 115, 22, .24)
}

.auth-modal-dialog {
    max-width: 450px !important;
    min-height: 430px !important;
    height: auto !important;
    border-radius: 12px !important;
    overflow: visible !important;
    border: 1px solid #e5e9f0 !important;
    box-shadow: 0 12px 32px rgba(49, 58, 70, .14) !important
}

.auth-modal-body {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0 !important;
    border-radius: 12px;
    overflow: hidden !important
}

.auth-modal-header-bar {
    position: relative;
    flex: 0 0 136px;
    padding: 14px 36px 10px;
    background: #fff !important;
    border-bottom: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px
}

.auth-modal-brand {
    width: 76px;
    height: 76px;
    margin-top: 30px;
    border-radius: 10px;
    object-fit: contain
}

.auth-modal-header-bar:after {
    display: none
}

.auth-modal-header-title {
    color: #2f3745;
    font-size: 18px;
    font-weight: 600;
    margin: 0;
    position: relative;
    z-index: 1;
    text-shadow: none
}

.auth-modal-form-wrap {
    padding: 20px 24px 24px
}

.auth-field-group {
    position: relative;
    margin-bottom: 14px
}

.auth-field-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #b0b8c9;
    transition: color .2s;
    pointer-events: none;
    z-index: 2
}

.auth-field-group:focus-within .auth-field-icon {
    color: var(--app-theme)
}

.auth-field-group input {
    display: block;
    width: 100%;
    height: 42px;
    padding: 0 14px 0 40px;
    border: 1px solid #dfe4ef;
    border-radius: 21px;
    background: #fff;
    font-size: 14px;
    color: #313a46;
    transition: all .25s ease;
    outline: 0
}

.auth-field-group input:focus {
    border-color: var(--app-theme);
    background: #fff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-theme) 10%, transparent)
}

.auth-field-group input::placeholder {
    color: #b0b8c9
}

.auth-submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 42px;
    margin-top: 18px;
    margin-bottom: 8px;
    border: 1px solid var(--app-theme);
    border-radius: 21px;
    background: var(--app-theme);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 3px 8px color-mix(in srgb, var(--app-theme) 28%, transparent);
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
    letter-spacing: 0
}

.auth-submit-btn:hover {
    box-shadow: 0 5px 12px color-mix(in srgb, var(--app-theme) 34%, transparent);
    transform: none;
    background: var(--app-theme-dark)
}

.auth-submit-btn:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--app-theme) 25%, transparent)
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 20px 0 18px;
    color: #b0b8c9;
    font-size: 12px
}

.auth-divider:before,
.auth-divider:after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, #e2e6ef, transparent)
}

.auth-oauth-row {
    display: flex;
    justify-content: center;
    gap: 12px
}

.auth-oauth-row form {
    margin: 0
}

.auth-oauth-btn {
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease
}

.auth-oauth-btn:hover {
    border-color: transparent;
    background: transparent;
    transform: translateY(-2px);
    box-shadow: 0 5px 12px rgba(49, 58, 70, .16)
}

.auth-oauth-btn svg {
    width: 28px;
    height: 28px
}

.auth-oauth-btn[disabled] {
    opacity: .35;
    cursor: not-allowed
}

.auth-oauth-btn[disabled]:hover {
    transform: none;
    box-shadow: none;
    border-color: transparent;
    background: transparent
}

.auth-switch-link {
    display: block;
    text-align: center;
    margin-top: 16px;
    font-size: 13px;
    color: #7a8599
}

.auth-switch-link a {
    color: var(--app-theme);
    font-weight: 600;
    text-decoration: none;
    transition: color .2s
}

.auth-switch-link a:hover {
    color: var(--app-theme-dark);
    text-decoration: underline
}

.auth-modal-header-bar {
    padding: 14px 36px 10px
}

.auth-modal-form-wrap {
    display: block;
    padding: 14px 36px 20px
}

.auth-modal-form-wrap #authForm {
    order: initial;
}

.auth-modal-form-wrap .auth-divider {
    order: initial;
    margin: 12px 0 6px;
}

.auth-modal-form-wrap .auth-oauth-row {
    order: initial;
    margin-bottom: 0;
}

.auth-modal-form-wrap .auth-switch-link {
    order: initial;
    margin: 0;
}

.auth-modal-form-wrap {
    position: static;
}

.auth-modal-form-wrap .auth-switch-link {
    display: block;
    position: static;
    margin: -2px 0 10px;
    text-align: center;
    font-size: 12px;
    line-height: 18px;
}

.auth-modal-form-wrap .auth-submit-btn {
    margin: 0;
}

.auth-modal-form-wrap .auth-divider {
    display: flex;
    margin: 16px 0 8px;
    font-size: 11px;
    color: #aeb7c7;
}

.auth-modal-form-wrap .auth-oauth-row {
    position: static;
    justify-content: center;
    gap: 14px;
    margin: 0;
}

.auth-modal-form-wrap .auth-oauth-btn {
    width: 32px;
    height: 32px;
}

.auth-modal-form-wrap .auth-oauth-btn svg {
    width: 28px;
    height: 28px;
}

.nav-app-cube {
    position: relative;
    z-index: 2;
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 5px;
    perspective: 145px
}

.nav-icon-cube {
    position: relative;
    display: block;
    width: 17px;
    height: 17px;
    transform-style: preserve-3d;
    transform: rotateX(-25deg) rotateY(25deg);
    animation: navCubeFloat 5.5s ease-in-out infinite
}

.nav-icon-cube:after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 4px;
    box-shadow: inset 0 0 0 .5px rgba(255, 255, 255, .55), inset 0 1px 2px rgba(255, 255, 255, .25), inset 0 -1px 2px rgba(0, 0, 0, .12);
    pointer-events: none;
    z-index: 20
}

.nav-app-cube .cube-face {
    width: 17px;
    height: 17px;
    border: 0;
    outline: 0;
    box-shadow: none;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden
}

.nav-app-cube .cube-face img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    -webkit-backface-visibility: hidden
}

.nav-app-cube .cube-front {
    transform: translateZ(8.5px);
    filter: brightness(1.05);
    z-index: 6
}

.nav-app-cube .cube-back {
    transform: rotateY(180deg) translateZ(8.5px)
}

.nav-app-cube .cube-right {
    transform: rotateY(90deg) translateZ(8.5px);
    filter: brightness(.85);
    border-radius: 0
}

.nav-app-cube .cube-left {
    transform: rotateY(-90deg) translateZ(8.5px);
    filter: brightness(.8);
    border-radius: 0
}

.nav-app-cube .cube-top {
    transform: rotateX(90deg) translateZ(8.5px);
    filter: brightness(1.18);
    border-radius: 0
}

.nav-app-cube .cube-bottom {
    transform: rotateX(-90deg) translateZ(8.5px);
    filter: brightness(.65);
    border-radius: 0
}

.app-brand:hover .nav-icon-cube {
    animation-play-state: paused;
    transform: rotateX(-28deg) rotateY(48deg)
}

@keyframes navCubeFloat {

    0%,
    100% {
        transform: rotateX(-25deg) rotateY(25deg)
    }

    50% {
        transform: rotateX(-45deg) rotateY(65deg)
    }
}

.nav-app-cube {
    position: relative
}

.cube-particles {
    position: absolute;
    left: 50%;
    bottom: -12px;
    width: 0;
    height: 16px;
    pointer-events: none;
    z-index: 1
}

.cube-particles .cp {
    position: absolute;
    bottom: 0;
    border-radius: 50%;
    opacity: 0;
    transform: translate(0, 0) scale(1);
    animation: cubeParticleFloat 4s ease-out infinite
}

.cube-particles .cp-1 {
    width: 3px;
    height: 3px;
    left: -7px;
    background: #ff7ea8;
    box-shadow: 0 0 3px #ff7ea8;
    animation-delay: 0s;
    --drift: -3px
}

.cube-particles .cp-2 {
    width: 2px;
    height: 2px;
    left: -2px;
    background: #7cc8ff;
    box-shadow: 0 0 3px #7cc8ff;
    animation-delay: .7s;
    --drift: 3px
}

.cube-particles .cp-3 {
    width: 4px;
    height: 4px;
    left: 3px;
    background: #ffd96b;
    box-shadow: 0 0 4px #ffd96b;
    animation-delay: 1.4s;
    --drift: -2px
}

.cube-particles .cp-4 {
    width: 2px;
    height: 2px;
    left: 8px;
    background: #8ce0a4;
    box-shadow: 0 0 3px #8ce0a4;
    animation-delay: .3s;
    --drift: 4px
}

.cube-particles .cp-5 {
    width: 3px;
    height: 3px;
    left: 13px;
    background: #b98bff;
    box-shadow: 0 0 3px #b98bff;
    animation-delay: 2.1s;
    --drift: -3px
}

.cube-particles .cp-6 {
    width: 2px;
    height: 2px;
    left: 17px;
    background: #ffa65c;
    box-shadow: 0 0 3px #ffa65c;
    animation-delay: 1.1s;
    --drift: 3px
}

@keyframes cubeParticleFloat {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 0
    }

    15% {
        transform: translate(calc(var(--drift) * .3), -3px) scale(1);
        opacity: 1
    }

    85% {
        transform: translate(calc(var(--drift) * .7), -12px) scale(1);
        opacity: .85
    }

    100% {
        transform: translate(var(--drift), -16px) scale(1);
        opacity: 0
    }
}

.cube-face {
    position: absolute;
    display: block;
    width: 44px;
    height: 44px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .48);
    background: #dfe4ff;
    box-shadow: inset 0 0 11px rgba(255, 255, 255, .35)
}

.cube-face img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover
}

.cube-front {
    transform: translateZ(22px)
}

.cube-back {
    transform: rotateY(180deg) translateZ(22px)
}

.cube-right {
    transform: rotateY(90deg) translateZ(22px)
}

.cube-left {
    transform: rotateY(-90deg) translateZ(22px)
}

.cube-top {
    transform: rotateX(90deg) translateZ(22px)
}

.cube-bottom {
    transform: rotateX(-90deg) translateZ(22px)
}

@keyframes heroCubeFloat {

    0%,
    100% {
        transform: rotateX(-20deg) rotateY(31deg) translateY(0)
    }
}

.floating-tools {
    position: fixed;
    right: 24px;
    bottom: 30px;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.floating-tool {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--app-theme-light), var(--app-theme));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--app-theme) 30%, transparent);
    color: #fff;
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease
}

.floating-tool:hover {
    background: linear-gradient(135deg, color-mix(in srgb, var(--app-theme) 48%, white), color-mix(in srgb, var(--app-theme) 78%, white));
    color: #fff;
    transform: translateY(-4px) scale(1.04);
    box-shadow: 0 12px 25px rgba(var(--app-theme-rgb), .38), 0 0 0 5px rgba(var(--app-theme-rgb), .10)
}

.floating-tool svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.floating-visit-count {
    cursor: default
}

.floating-visit-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    background: rgba(25, 32, 45, .72);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(25, 32, 45, .2)
}

.floating-tool:after,
.floating-tool:before {
    content: '';
    position: absolute;
    bottom: -7px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none
}

.floating-tool:before {
    right: 5px;
    background: #ffd166;
    box-shadow: -12px 8px 0 -1px #fb7185, -23px 2px 0 -2px #67e8f9, -31px 11px 0 -3px #c4b5fd;
    animation: floatingToolDotsOne 2s ease-out infinite
}

.floating-tool:after {
    left: 5px;
    background: #a7f3d0;
    box-shadow: 11px 9px 0 -1px #f9a8d4, 22px 3px 0 -2px #93c5fd, 30px 13px 0 -3px #fde68a;
    animation: floatingToolDotsTwo 2.3s ease-out infinite .45s
}

@keyframes floatingToolDotsOne {
    0% {
        transform: translateY(0) scale(.4);
        opacity: 0
    }

    20% {
        opacity: 1
    }

    100% {
        transform: translateY(-35px) translateX(-6px) scale(1);
        opacity: 0
    }
}

@keyframes floatingToolDotsTwo {
    0% {
        transform: translateY(0) scale(.4);
        opacity: 0
    }

    20% {
        opacity: .95
    }

    100% {
        transform: translateY(-30px) translateX(6px) scale(1);
        opacity: 0
    }
}

.official-link {
    position: fixed !important;
    left: 24px !important;
    bottom: 30px !important;
    z-index: 1001 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    height: 40px !important;
    padding: 0 15px !important;
    border: 1px solid color-mix(in srgb, var(--app-theme) 20%, transparent) !important;
    border-radius: 20px !important;
    background: color-mix(in srgb, var(--app-theme) 16%, transparent) !important;
    box-shadow: 0 3px 9px color-mix(in srgb, var(--app-theme) 10%, transparent) !important;
    color: color-mix(in srgb, var(--app-theme) 72%, #475569) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 40px !important;
    text-decoration: none !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease !important
}

.official-link:hover {
    color: #fff !important;
    background: linear-gradient(135deg, var(--app-theme-light), var(--app-theme)) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--app-theme) 30%, transparent) !important
}

.official-link svg {
    width: 17px !important;
    height: 17px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important
}

.nav-user-menu {
    position: relative;
    margin-left: 8px
}

.nav-user-avatar {
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0 !important;
    border-radius: 50%;
    background: transparent;
    overflow: hidden;
    display: block;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(31, 42, 55, .12);
    transition: transform .2s ease, box-shadow .2s ease
}

.nav-user-avatar:hover,
.nav-user-menu.open .nav-user-avatar {
    box-shadow: 0 5px 16px color-mix(in srgb, var(--app-theme-accent) 42%, transparent);
    transform: translateY(-1px)
}

.nav-user-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover
}

.nav-user-avatar span {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #eef0ff;
    color: var(--app-theme);
    font-size: 14px;
    font-weight: 700
}

.nav-user-unbound {
    background: color-mix(in srgb, var(--app-theme) 12%, #fff) !important;
    color: var(--app-theme) !important;
}

.nav-user-avatar.nav-user-unbound span {
    background: transparent;
    color: inherit
}

.nav-user-dropdown {
    display: none;
    position: absolute;
    top: 48px;
    right: 0;
    width: 270px;
    padding: 0;
    border: 1px solid #e6e9f0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(49, 58, 70, .16);
    color: #586174;
    overflow: hidden;
    z-index: 1001
}

.nav-user-menu.open .nav-user-dropdown {
    display: block
}

.nav-user-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 16px;
    border-bottom: 0;
    background: linear-gradient(79deg, var(--app-theme), var(--app-theme-accent))
}

.nav-user-summary img,
.nav-user-summary .nav-user-initial {
    width: 42px;
    height: 42px;
    border: 2px solid rgba(255, 255, 255, .72);
    border-radius: 50%;
    object-fit: cover;
    background: rgba(255, 255, 255, .18)
}

.nav-user-initial {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 15px;
    font-weight: 700
}

.nav-user-name {
    display: block;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #fff;
    font-size: 16px;
    font-weight: 600;

}

.nav-user-account {
    display: inline-block;
    margin-top: 3px;
    color: rgba(255, 255, 255, .78);
    font-size: 14px
}

.nav-user-account-separator {
    display: inline-block;
    margin: 0 5px;
    color: rgba(255, 255, 255, .6);
    font-size: 14px
}

.nav-user-logout-form {
    display: inline-flex;
    vertical-align: baseline;
    margin: 0
}

.nav-user-summary .nav-user-logout {
    width: auto;
    height: auto;
    min-width: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fbff00;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer
}

.nav-user-summary .nav-user-logout:hover {
    background: transparent !important;
    color: #fff;
    text-decoration: underline
}

.nav-user-data {
    display: block;
    margin: 0 16px;
    padding: 8px 0;
    border-top: 1px solid #eef0f4;
    border-bottom: 1px solid #eef0f4;
    font-size: 12px
}

.nav-user-data div {
    min-width: 0;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between
}

.nav-user-data span {
    color: #98a3b1
}

.nav-user-data strong {
    max-width: 154px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: normal;
    color: #4e5a68;
    font-size: 12px;
}

.nav-user-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    border-top: 0px solid #edf1f5;
    background: #f8fafc
}

.nav-user-actions form {
    margin: 0;
    display: flex
}

.nav-user-actions form:last-child {
    margin-left: 0
}

.nav-user-center,
.nav-user-logout {
    height: 34px;
    min-width: 0;
    padding: 0 14px;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    white-space: nowrap;
    text-decoration: none;
    transition: all .2s ease
}

.nav-user-actions>.nav-user-center {
    width: 100%;
    border: 2px solid var(--app-theme) !important;
    background: transparent !important;
    color: var(--app-theme)
}

.nav-user-actions form:first-child .nav-user-center {
    min-width: 142px;
    border: 2px solid var(--app-theme) !important;
    background: transparent !important;
    color: var(--app-theme)
}

.nav-user-actions form:only-child {
    width: 100%
}

.nav-user-actions form:only-child .nav-user-center {
    width: 100%;
    min-width: 0
}

.nav-user-actions>.nav-user-center:hover,
.nav-user-actions form:first-child .nav-user-center:hover {
    border-color: var(--app-theme-strong) !important;
    background: color-mix(in srgb, var(--app-theme) 8%, #fff) !important;
    color: var(--app-theme-strong);
    box-shadow: 0 3px 9px color-mix(in srgb, var(--app-theme) 18%, transparent)
}

.nav-user-actions form .nav-user-center {
    min-width: 98px;
    cursor: pointer
}

.nav-user-actions .nav-user-logout {
    min-width: 72px;
    border: 1px solid transparent !important;
    background: transparent !important;
    color: #7d8998;
    cursor: pointer
}

.nav-user-actions .nav-user-logout:hover {
    border-color: #f1d8dc !important;
    background: #fff !important;
    color: #ce5c68
}

.nav-user-actions>.nav-user-center,
.nav-user-actions form:first-child .nav-user-center {
    border-width: 2px !important;
    background-color: transparent !important;
    background-image: none !important;
}

.nav-user-dropdown {
    right: -10px;
    width: 288px
}

.comment-content {
    margin-bottom: 15px;
    color: #586174;
    font-size: 15px;
    line-height: 1.7;
    word-break: break-word
}

.comment-member-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    height: 22px;
    margin-right: 7px;
    padding: 0 9px;
    overflow: hidden;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    line-height: 22px;
    white-space: nowrap
}

.comment-member-badge:after {
    content: '';
    position: absolute;
    top: -50%;
    left: -35%;
    width: 18%;
    height: 200%;
    background: rgba(255, 255, 255, .42);
    transform: rotate(24deg);
    animation: comment-badge-shine 4.4s ease-in-out infinite;
    pointer-events: none
}

@keyframes comment-badge-shine {

    0%,
    62% {
        left: -35%;
    }

    82%,
    100% {
        left: 118%;
    }
}

.comment-image-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px
}

/* 主评论图片区与底部分隔线至少保留 15px 间距（不影响回复气泡内部图片） */
.media-body>.comment-image-list {
    margin-bottom: 15px
}

.comment-image-list .comment-image {
    display: block;
    width: 80px;
    height: 60px;
    margin: 0;
    border: 1px solid #e2e6ef;
    border-radius: 8px;
    object-fit: cover;
    cursor: zoom-in;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

/* 缩略图悬停：主题紫边框 + 轻微上浮放大 + 阴影 */
.comment-image-list .comment-image:hover {
    border-color: var(--app-theme);
    transform: translateY(-2px) scale(1.06);
    box-shadow: 0 6px 16px rgba(49, 58, 70, .20);
}

.comment-image {
    display: block;
    width: 80px;
    height: 60px;
    margin-top: 10px;
    border: 1px solid #e2e6ef;
    border-radius: 8px;
    object-fit: cover;
    cursor: zoom-in;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.comment-image:hover {
    border-color: var(--app-theme);
    transform: translateY(-2px) scale(1.06);
    box-shadow: 0 6px 16px rgba(49, 58, 70, .20);
}

.comment-image-modal {
    position: fixed;
    z-index: 10002;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(18, 24, 33, .72);
    cursor: zoom-out
}

.comment-image-modal.show {
    display: flex
}

.comment-image-modal img {
    max-width: 100%;
    max-height: 100%;
    border-radius: 8px;
    box-shadow: 0 16px 42px rgba(0, 0, 0, .36);
    object-fit: contain;
    transition: opacity .18s ease;
    cursor: zoom-in;
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none
}

.comment-image-modal img.is-grab {
    cursor: grab
}

.comment-image-modal img.is-grabbing {
    cursor: grabbing
}

.comment-image-modal img.is-loading {
    opacity: 0
}

.comment-image-loading {
    display: none;
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.btn.is-submitting {
    cursor: wait
}

.btn-submit-spinner {
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-right: 7px;
    vertical-align: -2px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btn-submit-spin .7s linear infinite
}

@keyframes btn-submit-spin {
    to {
        transform: rotate(360deg)
    }
}

/* 评论/回复提交按钮固定宽度，提交中文字增多时按钮宽度不抖动 */
.comment-submit,
.comment-reply-submit {
    width: 180px !important;
    min-width: 180px !important;
    max-width: 180px !important;
    flex: 0 0 180px !important
}

.comment-image-loading.show {
    display: block
}

.comment-image-spinner {
    position: relative;
    display: block;
    width: 120px;
    height: 120px
}

.comment-image-spinner i {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, .14);
    border-top-color: var(--app-theme);
    border-right-color: rgba(var(--app-theme-rgb), .65);
    box-shadow: 0 0 14px rgba(var(--app-theme-rgb), .35), inset 0 0 12px rgba(var(--app-theme-rgb), .12);
    animation: comment-image-spin .8s linear infinite
}

.comment-image-spinner i+i {
    inset: 11px;
    border-width: 2px;
    border-style: dashed;
    border-top-color: transparent;
    border-left-color: transparent;
    border-right-color: rgba(var(--app-theme-rgb), .5);
    border-bottom-color: rgba(var(--app-theme-rgb), .3);
    box-shadow: 0 0 10px rgba(var(--app-theme-rgb), .25);
    animation-duration: 1.4s;
    animation-direction: reverse
}

.comment-image-spinner b {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    margin: -36px 0 0 -36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: transparent;
    animation: comment-image-pop .4s cubic-bezier(.34, 1.56, .64, 1) both
}

.comment-image-spinner b img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover
}

.comment-image-spinner b svg {
    width: 32px;
    height: 32px;
    fill: var(--app-theme)
}

@keyframes comment-image-pop {
    from {
        transform: scale(.4);
        opacity: 0
    }

    to {
        transform: scale(1);
        opacity: 1
    }
}

@keyframes comment-image-spin {
    to {
        transform: rotate(360deg)
    }
}

.comment-image-nav {
    position: absolute;
    z-index: 1;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-top: -29px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 50%;
    background: rgba(44, 52, 65, .34);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .12);
    color: rgba(232, 237, 245, .92);
    cursor: pointer;
    transition: .2s
}

.comment-image-nav svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round
}

.comment-image-nav:hover {
    border-color: rgba(255, 255, 255, .58);
    background: rgba(64, 75, 94, .56);
    color: #fff;
    transform: scale(1.05)
}

.comment-image-prev {
    left: 9%
}

.comment-image-next {
    right: 9%
}

.comment-image-trigger {
    width: 36px;
    height: 36px;
    margin-left: 8px;
    border: 1px solid #e0e4f0;
    border-radius: 50%;
    background: #fff;
    color: var(--app-theme);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    cursor: pointer
}

.comment-image-trigger:hover {
    border-color: #aeb8fa;
    background: #f5f6ff
}

.comment-image-input {
    display: none
}

.comment-image-name {
    max-width: 130px;
    margin-left: 8px;
    overflow: hidden;
    color: #98a6ad;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap
}

.comment-emoji {
    width: 32px;
    height: 32px;
    margin: 0 3px;
    vertical-align: -9px;
    object-fit: contain
}

.comment-avatar {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 50%;
    overflow: hidden;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px
}

.comment-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.comment-form {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 2px solid #edf0f4
}

.comment-input {
    min-height: 88px !important;
    padding: 14px 18px !important;
    border: 1px solid #dfe4ef !important;
    border-radius: 18px !important;
    box-shadow: none !important;
    resize: none
}

.comment-input:focus {
    border-color: #9da6f7 !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-theme) 12%, transparent) !important
}

.emoji-trigger,
.comment-image-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: #5d6980;
    cursor: pointer;
    vertical-align: bottom
}

.emoji-trigger svg,
.comment-image-trigger svg {
    width: 21px;
    height: 21px
}

.emoji-trigger:hover,
.comment-image-trigger:hover {
    color: var(--app-theme-dark)
}

.comment-emoji-preview,
.comment-image-preview {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-left: 8px
}

.comment-emoji-thumb,
.comment-image-thumb {
    width: 38px;
    height: 38px;
    border: 1px solid var(--app-theme);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 3px 9px color-mix(in srgb, var(--app-theme) 20%, transparent)
}

.comment-image-name {
    display: none !important
}

.comment-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 12px
}

.emoji-picker {
    position: relative;
    height: 38px;
    flex: 0 0 38px
}

.emoji-panel {
    display: none !important;
    position: absolute !important;
    z-index: 100 !important;
    left: 0 !important;
    bottom: 46px !important;
    width: 426px !important;
    padding: 12px !important;
    border: 1px solid #bfc8fa !important;
    border-radius: 13px !important;
    background: #fff !important;
    box-shadow: 0 10px 24px rgba(92, 104, 216, .18) !important
}

.emoji-panel>div {
    gap: 0 !important;
    border: 1px solid #dfe4fa;
    border-radius: 7px;
    overflow: hidden
}

.emoji-panel .emoji-option {
    display: flex !important;
    width: 100% !important;
    height: 50px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 7px !important;
    border: 0 !important;
    border-right: 1px solid #dfe4fa !important;
    border-bottom: 1px solid #dfe4fa !important;
    border-radius: 0 !important;
    background: #fafbff !important
}

.emoji-panel .emoji-option:nth-child(8n) {
    border-right: 0 !important
}

.emoji-panel .emoji-option:nth-last-child(-n+4) {
    border-bottom: 0 !important
}

.emoji-panel .emoji-option:hover {
    background: #e9edff !important;
    box-shadow: inset 0 0 0 1px #9eabf5
}

.emoji-panel .emoji-option img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain
}

.emoji-picker.open .emoji-panel {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important
}

.comment-toolbar>div:first-child {
    display: flex !important;
    align-items: center !important;
    height: 38px
}

.emoji-trigger,
.comment-image-trigger {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    flex: 0 0 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid #dbe1f3 !important;
    border-radius: 50% !important;
    background: #f8f9fd !important;
    box-shadow: none !important;
    color: var(--app-theme-dark) !important;
    vertical-align: middle !important;
    cursor: pointer;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: .2s
}

.emoji-trigger:focus,
.emoji-trigger:active {
    outline: 0 !important;
    box-shadow: none !important
}

.emoji-trigger:hover,
.comment-image-trigger:hover {
    border-color: #aab5f4 !important;
    background: #eef0ff !important;
    box-shadow: 0 4px 10px color-mix(in srgb, var(--app-theme) 12%, transparent) !important;
    color: var(--app-theme-strong) !important;
    transform: translateY(-1px)
}

.emoji-trigger svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor
}

.comment-image-trigger {
    margin-left: 8px !important
}

.comment-image-trigger svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor
}

.comment-emoji {
    width: 52px !important;
    height: 52px !important;
    margin: 0 5px !important;
    vertical-align: -17px !important
}

.comment-submit {
    height: 40px !important;
    min-width: 112px !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark)) !important;
    box-shadow: 0 5px 12px color-mix(in srgb, var(--app-theme) 28%, transparent) !important;
    color: #fff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-shadow: none !important
}

.comment-submit:hover {
    background: linear-gradient(135deg, #838cff, #626ed9) !important;
    box-shadow: 0 7px 16px color-mix(in srgb, var(--app-theme) 36%, transparent) !important;
    color: #fff !important
}

.app-comment-tip {
    position: fixed;
    z-index: 99999;
    left: 50%;
    top: 50%;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    width: max-content;
    max-width: calc(100vw - 32px);
    padding: 14px 19px;
    border: 0;
    border-radius: 13px;
    background: rgba(18, 24, 33, .88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 14px 36px rgba(0, 0, 0, .3);
    color: #fff;
    font-size: 14px;
    line-height: 1.35;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.92);
    transition: opacity .22s ease, transform .22s ease
}

.app-comment-tip.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1)
}

.app-comment-tip-icon {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    line-height: 1
}

.app-comment-tip.is-success {
    background: rgba(10, 172, 120, .88);
    box-shadow: 0 14px 36px rgba(10, 172, 120, .28)
}

.app-comment-tip.is-error {
    background: rgba(230, 74, 91, .88);
    box-shadow: 0 14px 36px rgba(230, 74, 91, .28)
}

.app-comment-tip.is-success .app-comment-tip-icon {
    background: rgba(0, 99, 67, .78)
}

.app-comment-tip.is-error .app-comment-tip-icon {
    background: rgba(132, 25, 39, .78)
}

.app-comment-tip-text {
    max-width: 30em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.comment-actions {
    display: flex;
    gap: 12px;
    margin-top: 7px
}

.comment-text-action {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--app-theme);
    font-size: 12px;
    line-height: 1.4;
    cursor: pointer
}

.comment-text-action:hover {
    text-decoration: underline
}

.comment-user-reply {
    margin-top: 7px;
    padding: 8px 11px;
    border-radius: 7px;
    background: #f6f7fb;
    color: #586174;
    font-size: 13px;
    line-height: 1.65
}

.comment-user-reply strong {
    color: var(--app-theme-strong)
}

.comment-user-reply .comment-text-action {
    margin-left: 9px
}

.comment-reply-modal {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(18, 24, 33, .4)
}

.comment-reply-modal.show {
    display: flex
}

.comment-reply-dialog {
    width: 100%;
    max-width: 460px;
    padding: 22px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(18, 24, 33, .24)
}

.comment-reply-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 15px;
    color: #313a46;
    font-size: 16px;
    font-weight: 700
}

.comment-reply-close {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #98a6ad;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: color .2s !important
}

.comment-reply-close:hover,
.comment-reply-close:focus,
.comment-reply-close:active {
    background: transparent !important;
    box-shadow: none !important;
    color: var(--app-theme-dark) !important;
    transform: none !important;
    outline: 0 !important
}

.comment-reply-dialog .comment-email {
    width: 200px !important
}

.comment-reply-target {
    margin-bottom: 11px;
    color: var(--app-theme);
    font-size: 13px
}

.comment-reply-input {
    min-height: 100px !important;
    border-radius: 10px !important;
    resize: none
}

.comment-reply-contact-wrap {
    position: relative
}

.comment-reply-contact-wrap .comment-reply-contact {
    padding-right: 40px
}

.comment-reply-contact-avatar {
    position: absolute;
    top: 50%;
    right: 6px;
    width: 28px;
    height: 28px;
    margin-top: -14px;
    border: 1px solid #dbe1f3;
    border-radius: 50%;
    object-fit: cover;
    pointer-events: none
}

.comment-action-group {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto
}

.comment-qq-avatar-preview {
    position: absolute;
    right: 6px;
    top: 50%;
    width: 28px;
    height: 28px;
    margin-top: -14px;
    border: 1px solid #dbe1f3;
    border-radius: 50%;
    object-fit: cover;
    pointer-events: none
}

.comment-qq-input-wrap {
    position: relative;
    display: inline-flex
}

.comment-qq-input-wrap .comment-email {
    width: 230px;
    padding-right: 42px
}

.comment-email {
    width: 230px;
    height: 38px !important;
    border-radius: 19px !important;
    padding: 0 15px !important
}

.comment-submit {
    box-sizing: border-box !important;
    height: 38px !important;
    min-width: 118px !important;
    padding: 2px 23px 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    vertical-align: middle !important;
    background: linear-gradient(79deg, var(--app-theme), var(--app-theme-light)) !important;
    border: 0 !important;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--app-theme) 30%, transparent) !important
}

.comment-submit:hover {
    background: linear-gradient(79deg, #626ed9, #b8c0fa) !important;
    box-shadow: 0 6px 20px color-mix(in srgb, var(--app-theme) 42%, transparent) !important;
    transform: translateY(-1px)
}

.comment-toolbar {
    flex-wrap: wrap
}

.comment-pagination-wrap {
    display: flex;
    justify-content: center;
    margin: 28px 0 6px
}

.comment-pagination {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: wrap
}

.comment-page-btn,
.comment-page-num {
    height: 38px;
    min-width: 40px;
    margin-left: -1px;
    padding: 0 13px;
    border: 1px solid #dfe4f3;
    border-radius: 0;
    background: #fff;
    color: #62708a;
    font-size: 14px;
    font-weight: 600;
    line-height: 36px;
    text-align: center;
    text-decoration: none;
    transition: .2s
}

.comment-page-btn:first-child {
    margin-left: 0;
    border-radius: 8px 0 0 8px
}

.comment-page-btn:hover,
.comment-page-num:hover {
    position: relative;
    z-index: 1;
    border-color: var(--app-theme);
    background: color-mix(in srgb, var(--app-theme) 12%, #fff);
    color: var(--app-theme-dark);
    box-shadow: 0 3px 9px color-mix(in srgb, var(--app-theme) 22%, transparent);
    text-decoration: none
}

.comment-page-num.active {
    position: relative;
    z-index: 2;
    border-color: var(--app-theme);
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark));
    color: #fff
}

.comment-page-select-wrap {
    display: flex;
    align-items: stretch;
    height: 38px;
    margin: 0 0 0 -1px
}

.comment-page-select {
    display: block;
    height: 38px;
    min-width: 88px;
    margin: 0;
    padding: 0 32px 0 13px;
    border: 1px solid #dfe4f3;
    border-radius: 0;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.5l5-5.25' fill='none' stroke='%23586174' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center;
    background-size: 12px 8px;
    color: #536178;
    font-size: 14px;
    font-weight: 600;
    line-height: 36px;
    outline: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none
}

.comment-page-select:focus {
    position: relative;
    z-index: 2;
    border-color: #aeb7fa
}

.comment-page-btn:last-child {
    border-radius: 0 8px 8px 0
}

.comment-page-btn,
.comment-page-num {
    height: 36px;
    min-width: 36px;
    padding: 0 10px;
    font-size: 13px;
    line-height: 34px
}

.comment-page-select-wrap,
.comment-page-select {
    height: 36px
}

.comment-page-select {
    min-width: 82px;
    font-size: 13px;
    line-height: 34px
}

.comment-replies {
    position: relative;
    margin: 22px 0 8px 24px !important;
    padding: 0 0 0 14px !important;
    border: 0 !important;
    border-left: 2px solid #d9e1fb !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important
}

.comment-replies.is-empty {
    display: none
}

.comment-replies:not(.is-empty):after,
.comment-replies:before {
    display: none
}

.comment-user-reply {
    position: relative;
    padding-left: 48px !important;
    margin: 0 0 10px !important;
    padding: 12px 14px 12px 18px !important;
    border: 1px solid #e6e9f4;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 3px 8px rgba(49, 58, 70, .04);
}

.comment-user-reply:first-child {
    margin-top: -6px !important;
}

.comment-reply-content {
    min-width: 0
}

.comment-reply-header {
    display: flex;
    align-items: flex-start;
    min-height: 24px
}

.comment-reply-header strong {
    flex: 0 0 auto;
    line-height: 24px;
    white-space: nowrap
}

.comment-reply-header .comment-reply-content {
    line-height: 24px
}

.comment-reply-avatar {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    margin-right: 9px;
    border: 1px solid #dbe1f3;
    border-radius: 50%;
    object-fit: cover
}

.comment-user-reply:before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    bottom: 11px;
    width: 3px;
    border-radius: 3px;
    background: linear-gradient(#8490ff, #bcc2ff)
}

.comment-user-reply.is-admin-reply {
    border-color: #f3b4b4;
    background: #fff8f8 !important
}

.comment-user-reply.is-admin-reply:before {
    background: linear-gradient(#ef6666, #f6abab)
}

.comment-user-reply.is-admin-reply strong {
    color: #d94848 !important
}

.comment-reply-delete-btn:hover {
    background: #fecaca !important;
    transform: scale(1.1);
    box-shadow: 0 3px 12px rgba(220, 38, 38, 0.25) !important;
}

.comment-reply-delete-btn:active {
    transform: scale(0.95);
}

.comment-user-reply-extra {
    display: none
}

.comment-replies.expanded .comment-user-reply-extra {
    display: block
}

.comment-replies-toggle {
    display: block;
    width: 100%;
    margin: 2px 0 7px;
    padding: 8px;
    border: 1px dashed #cdd5f4;
    border-radius: 8px;
    background: rgba(255, 255, 255, .62);
    color: var(--app-theme-dark);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer
}

.comment-replies-toggle:hover {
    border-color: #9eabed;
    background: #fff;
    color: var(--app-theme-strong)
}

.comment-user-reply strong {
    color: var(--app-theme-strong) !important;
    font-weight: 700
}

.comment-user-reply .comment-text-action {
    float: right;
    margin: 2px 0 0 12px !important;
    color: #a3adbf
}

.comment-user-reply .comment-text-action:hover {
    color: #e35d6a
}

.app-changelog {
    padding: 18px 20px;
    border: 1px solid #e1e5ff;
    border-left: 4px solid var(--app-theme);
    border-radius: 10px;
    background: linear-gradient(135deg, #fafbff, #f5f6ff);
    color: #3f4a59;
    font-size: 15px;
    font-weight: 500;
    line-height: 2.05;
    white-space: normal;
    word-break: break-word;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--app-theme) 7%, transparent)
}

.app-changelog br {
    display: block;
    content: "";
    margin: 0 0 10px;
}

.app-intro-sections {
    display: grid;
    gap: 14px;
}

.app-intro-section {
    padding: 18px 20px;
    border: 1px solid var(--intro-border) !important;
    border-left: 4px solid var(--intro-line) !important;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--intro-bg-start), var(--intro-bg-end)) !important;
    color: #3f4a59;
    font-size: 15px;
    font-weight: 500;
    line-height: 2;
    white-space: normal;
    word-break: break-word;
    box-shadow: 0 4px 12px var(--intro-shadow);
}

.app-intro-section-title {
    margin: 0 0 7px;
    color: var(--intro-color);
    font-size: 16px;
    font-weight: 700;
}

.app-intro-section div {
    margin-bottom: 12px;
}

.app-intro-section br {
    display: block;
    content: "";
    margin: 0 0 28px;
}

.app-intro-section:nth-child(1) {
    --intro-color: var(--app-theme);
    --intro-border: rgba(var(--app-theme-rgb), .16);
    --intro-line: rgba(var(--app-theme-rgb), .16);
    --intro-bg-start: rgba(var(--app-theme-rgb), .035);
    --intro-bg-end: rgba(var(--app-theme-rgb), .015);
    --intro-shadow: rgba(var(--app-theme-rgb), .07);
}

.app-intro-section:nth-child(2) {
    --intro-color: #13a875;
    --intro-border: rgba(19, 168, 117, .16);
    --intro-line: rgba(19, 168, 117, .16);
    --intro-bg-start: rgba(19, 168, 117, .035);
    --intro-bg-end: rgba(19, 168, 117, .015);
    --intro-shadow: rgba(19, 168, 117, .07);
}

.app-intro-section:nth-child(3) {
    --intro-color: #e88826;
    --intro-border: rgba(232, 136, 38, .16);
    --intro-line: rgba(232, 136, 38, .16);
    --intro-bg-start: rgba(232, 136, 38, .035);
    --intro-bg-end: rgba(232, 136, 38, .015);
    --intro-shadow: rgba(232, 136, 38, .07);
}

.app-intro-section:nth-child(4) {
    --intro-color: #7b61d8;
    --intro-border: rgba(123, 97, 216, .16);
    --intro-line: rgba(123, 97, 216, .16);
    --intro-bg-start: rgba(123, 97, 216, .035);
    --intro-bg-end: rgba(123, 97, 216, .015);
    --intro-shadow: rgba(123, 97, 216, .07);
}

.comment-reply-dialog {
    max-width: 680px !important;
    padding: 34px !important
}

.comment-reply-input {
    min-height: 165px !important
}

.comment-reply-toolbar {
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    margin-top: 15px !important
}

.comment-reply-action-group {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-left: auto !important;
    justify-content: flex-end !important
}

.comment-reply-contact {
    width: 200px !important;
    height: 38px !important;
    margin: 0 !important;
    border-radius: 19px !important;
    padding: 0 15px !important
}

.comment-reply-submit {
    height: 38px !important;
    min-width: 118px !important;
    border-radius: 19px !important;
    padding: 0 23px !important;
    line-height: 1 !important
}

.comment-reply-dialog {
    padding: 24px !important
}



.comment-reply-contact,
.comment-reply-submit {
    flex: 1;
    width: auto
}

.comment-login-prompt {
    margin-top: 20px;
    padding: 18px 22px;
    border-radius: 14px;
    background: linear-gradient(135deg, #f8f9ff, #f0f3ff);
    border: 1px solid #e4e9f9
}

.comment-login-prompt-inner {
    display: flex;
    align-items: center;
    gap: 15px
}

.comment-login-prompt-icon {
    font-size: 28px;
    color: var(--app-theme);
    flex: 0 0 28px
}

.comment-login-prompt-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px
}

.comment-login-prompt-text strong {
    font-size: 15px;
    color: #313a46
}

.comment-login-prompt-text span {
    font-size: 13px;
    color: #7a8599
}

.comment-login-prompt-btn {
    flex: 0 0 auto;
    padding: 8px 24px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark));
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all .25s ease;
    box-shadow: 0 5px 12px color-mix(in srgb, var(--app-theme) 28%, transparent)
}

.comment-login-prompt-btn:hover {
    box-shadow: 0 6px 18px color-mix(in srgb, var(--app-theme) 40%, transparent);
    transform: translateY(-1px)
}

.comment-login-prompt-inner {
    flex-wrap: wrap;
    justify-content: center;
    text-align: center
}

.comment-login-prompt-btn {
    width: 100%
}

#authModal .auth-close-btn {
    position: absolute;
    top: -18px;
    right: -18px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 0 !important;
    background: #fff;
    box-shadow: 0 3px 12px rgba(0, 0, 0, .12);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important
}

.auth-close-btn svg {
    width: 18px;
    height: 18px;
    color: #7a8599;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important
}

#authModal .auth-close-btn:hover {
    background: #e63946;
    box-shadow: 0 5px 18px rgba(230, 71, 70, .35);
    transform: rotate(360deg) !important
}

#authModal .auth-close-btn:hover svg {
    color: #fff
}

#videoModal .video-modal-dialog {
    position: relative !important;
    width: min(960px, calc(100vw - 40px)) !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    max-width: calc(100vw - 40px) !important;
    max-height: calc(100vh - 40px) !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
    overflow: visible !important
}

#videoModal .auth-close-btn {
    position: absolute !important;
    top: -18px !important;
    right: -18px !important;
    z-index: 10001 !important;
    box-shadow: none !important
}

#videoModal .auth-close-btn:hover {
    background: #e63946 !important;
    box-shadow: 0 5px 18px rgba(230, 71, 70, .35) !important;
    transform: rotate(360deg) !important
}

#videoModal .auth-close-btn:hover svg {
    stroke: #fff !important
}

#videoModal .auth-close-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-shadow: none !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important
}

#videoModal .auth-close-btn svg {
    width: 18px !important;
    height: 18px !important;
    fill: none !important;
    stroke: #7a8599 !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important
}

#videoModal .video-modal-body {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    background: #000 !important;
    overflow: hidden !important;
    border-radius: 0
}

#videoModal .video-modal-body video,
#videoModal .video-modal-body iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    border: 0 !important
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 10px !important;
    height: 10px !important
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
    background: #e2e8f0 !important;
    border-radius: 10px !important
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
    background: #94a3b8 !important;
    border-radius: 10px !important
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
    background: var(--app-theme) !important
}

.hero .badge.badge-primary-lighten,
.section-title .badge.badge-primary-lighten {
    border: 1px solid rgba(var(--app-theme-rgb), .18) !important;
    background: rgba(var(--app-theme-rgb), .10) !important;
    color: var(--app-theme-dark) !important;
}

#downloadButton {
    animation: none !important;
    isolation: isolate;
}

#downloadButton::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    animation: downloadButtonRing 2s ease-out infinite;
    pointer-events: none;
}

@keyframes downloadButtonRing {
    0% {
        box-shadow: 0 0 0 0 rgba(var(--app-theme-rgb), .60);
    }

    70%,
    100% {
        box-shadow: 0 0 0 14px rgba(var(--app-theme-rgb), 0);
    }
}

.app-recommend-section {
    background: linear-gradient(90deg, #fff 0%, #fff 72%, rgba(var(--app-theme-rgb), .035) 100%) !important;
}

.app-recommend-card {
    border-color: rgba(var(--app-theme-rgb), .14) !important;
}

.app-recommend-card:hover {
    border-color: rgba(var(--app-theme-rgb), .30) !important;
    box-shadow: 0 12px 25px rgba(var(--app-theme-rgb), .15) !important;
}

.app-recommend-top {
    background: linear-gradient(135deg, rgba(var(--app-theme-rgb), .075) 0%, #fff 72%) !important;
    border-bottom-color: rgba(var(--app-theme-rgb), .12) !important;
}

.app-recommend-icon {
    border-color: rgba(var(--app-theme-rgb), .18) !important;
}

.app-recommend-ver {
    border-color: rgba(var(--app-theme-rgb), .16) !important;
    background: rgba(var(--app-theme-rgb), .10) !important;
}

.app-recommend-footer {
    border-top-color: rgba(var(--app-theme-rgb), .14) !important;
}

.app-recommend-download {
    border-color: rgba(var(--app-theme-rgb), .16) !important;
    background: rgba(var(--app-theme-rgb), .07) !important;
}

.emoji-trigger,
.comment-image-trigger {
    border-color: rgba(var(--app-theme-rgb), .18) !important;
    background: rgba(var(--app-theme-rgb), .035) !important;
}

.emoji-trigger:hover,
.comment-image-trigger:hover {
    border-color: rgba(var(--app-theme-rgb), .38) !important;
    background: rgba(var(--app-theme-rgb), .09) !important;
}

.comment-reply-submit {
    border: 0 !important;
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark)) !important;
    box-shadow: 0 5px 12px rgba(var(--app-theme-rgb), .28) !important;
    color: #fff !important;
}

.comment-reply-submit:hover {
    background: linear-gradient(135deg, var(--app-theme-light), var(--app-theme)) !important;
    box-shadow: 0 7px 16px rgba(var(--app-theme-rgb), .36) !important;
    color: #fff !important;
}

.nav-actions a.user-login-btn:hover {
    border-color: rgba(var(--app-theme-rgb), .60) !important;
    background: rgba(var(--app-theme-rgb), .15) !important;
    color: var(--app-theme-dark) !important;
    box-shadow: 0 4px 16px rgba(var(--app-theme-rgb), .18) !important;
}

.app-nav {
    background: rgba(255, 255, 255, .55) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .4) !important;
    box-shadow: 0 2px 16px rgba(var(--app-theme-rgb), .09) !important;
}

.hero {
    background: linear-gradient(135deg, rgba(var(--app-theme-rgb), .20) 0%, rgba(var(--app-theme-rgb), .08) 8%, #fff 19%, #fff 70%, rgba(var(--app-theme-rgb), .06) 86%, rgba(var(--app-theme-rgb), .16) 100%) !important;
    border-bottom-color: rgba(var(--app-theme-rgb), .10) !important;
}

.hero:before,
.hero:after,
.hero-mesh {
    opacity: 0 !important;
}

.hero-grid-one,
.hero-grid-two,
.hero-grid-three {
    border-color: rgba(var(--app-theme-rgb), .09) !important;
    background: linear-gradient(135deg, rgba(var(--app-theme-rgb), .028) 0%, transparent 50%) !important;
}

.hero-dots {
    background-image: radial-gradient(2.5px 2.5px at 12% 22%, rgba(var(--app-theme-rgb), .10) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 32% 68%, rgba(var(--app-theme-rgb), .08) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 52% 12%, rgba(var(--app-theme-rgb), .07) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 72% 42%, rgba(var(--app-theme-rgb), .09) 50%, transparent 50%), radial-gradient(3px 3px at 8% 78%, rgba(var(--app-theme-rgb), .12) 50%, transparent 50%), radial-gradient(3px 3px at 62% 82%, rgba(var(--app-theme-rgb), .10) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 82% 8%, rgba(var(--app-theme-rgb), .08) 50%, transparent 50%), radial-gradient(2.5px 2.5px at 42% 48%, rgba(var(--app-theme-rgb), .06) 50%, transparent 50%), radial-gradient(2px 2px at 22% 88%, rgba(var(--app-theme-rgb), .11) 50%, transparent 50%), radial-gradient(2px 2px at 88% 58%, rgba(var(--app-theme-rgb), .08) 50%, transparent 50%) !important;
}

#downloadButton.btn-primary,
#downloadButton.btn-primary:focus,
#downloadButton.btn-primary:active {
    border-color: var(--app-theme) !important;
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark)) !important;
    border-radius: 28px !important;
    box-shadow: 0 6px 0 rgba(var(--app-theme-rgb), .26), 0 10px 18px rgba(var(--app-theme-rgb), .18) !important;
    color: #fff !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
    animation: downloadButtonPulse 2.2s ease-out infinite !important;
}

#downloadButton.btn-primary:hover {
    background: linear-gradient(135deg, var(--app-theme-light), var(--app-theme)) !important;
    box-shadow: 0 8px 0 rgba(var(--app-theme-rgb), .26), 0 14px 22px rgba(var(--app-theme-rgb), .24) !important;
    transform: translateY(-2px);
}

#downloadButton.btn-primary:active {
    box-shadow: 0 2px 0 rgba(var(--app-theme-rgb), .26), 0 5px 10px rgba(var(--app-theme-rgb), .16) !important;
    transform: translateY(3px);
}

#downloadButton {
    width: 200px;
    min-width: 200px;
}

#backupDownloadButton {
    width: 180px;
    min-width: 180px;
}

#downloadButton {
    margin-right: 20px !important;
}

#downloadButton,
#backupDownloadButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700 !important;
}

.download-button-icon {
    width: 18px;
    height: 18px;
    margin-right: 10px;
    flex: 0 0 auto;
    fill: currentColor;
}

.backup-download-count-badge {
    position: absolute;
    top: -7px;
    right: -7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 21px;
    height: 21px;
    padding: 0 6px;
    border-radius: 11px;
    background: #fff;
    border: 1px solid rgba(var(--app-theme-rgb), .34);
    color: var(--app-theme);
    font-size: 11px;
    font-weight: 600;
}

#backupDownloadButton {
    position: relative;
    padding: 14px 36px !important;
    border: 2px solid rgba(var(--app-theme-rgb), .52) !important;
    border-radius: 66px !important;
    background: rgba(var(--app-theme-rgb), .03) !important;
    box-shadow: 0 6px 0 rgba(var(--app-theme-rgb), .16), 0 10px 18px rgba(var(--app-theme-rgb), .11) !important;
    color: var(--app-theme) !important;
    font-size: 16px !important;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}

#backupDownloadButton:hover {
    border-color: var(--app-theme) !important;
    background: rgba(var(--app-theme-rgb), .08) !important;
    box-shadow: 0 8px 0 rgba(var(--app-theme-rgb), .18), 0 14px 22px rgba(var(--app-theme-rgb), .16) !important;
    color: var(--app-theme) !important;
    transform: translateY(-2px);
}

#backupDownloadButton:active {
    box-shadow: 0 2px 0 rgba(var(--app-theme-rgb), .16), 0 5px 10px rgba(var(--app-theme-rgb), .10) !important;
    transform: translateY(3px);
}

.app-recommend-card:hover .app-recommend-download {
    border-color: var(--app-theme) !important;
    background: var(--app-theme) !important;
    color: #fff !important;
}

.comment-submit:hover {
    background: linear-gradient(79deg, var(--app-theme-light), var(--app-theme)) !important;
    box-shadow: 0 6px 20px rgba(var(--app-theme-rgb), .42) !important;
    color: #fff !important;
}

.auth-submit-btn:hover {
    background: linear-gradient(135deg, var(--app-theme-light), var(--app-theme)) !important;
    box-shadow: 0 8px 24px rgba(var(--app-theme-rgb), .38) !important;
    color: #fff !important;
}

#agentModal .agent-modal-header {
    border-bottom-color: rgba(var(--app-theme-rgb), .12) !important;
}

#agentModal .agent-modal-dialog {
    position: relative;
    overflow: visible;
}

#agentModal .agent-modal-title {
    color: var(--app-theme-dark) !important;
}

#agentModal .agent-modal-close:hover {
    background: var(--app-theme) !important;
}

#authModal .auth-close-btn,
#videoModal .auth-close-btn,
#agentModal .auth-close-btn,
#serviceModal .auth-close-btn {
    position: absolute !important;
    top: -18px !important;
    right: -18px !important;
    z-index: 10001 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-shadow: none !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important;
}

#authModal .auth-close-btn svg,
#videoModal .auth-close-btn svg,
#agentModal .auth-close-btn svg,
#serviceModal .auth-close-btn svg {
    width: 18px !important;
    height: 18px !important;
    fill: none !important;
    stroke: #7a8599 !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    transition: all .35s cubic-bezier(.4, 0, .2, 1) !important;
}

#authModal .auth-close-btn:hover,
#videoModal .auth-close-btn:hover,
#agentModal .auth-close-btn:hover,
#serviceModal .auth-close-btn:hover {
    background: #e63946 !important;
    box-shadow: 0 5px 18px rgba(230, 71, 70, .35) !important;
    transform: rotate(360deg) !important;
}

#authModal .auth-close-btn:hover svg,
#videoModal .auth-close-btn:hover svg,
#agentModal .auth-close-btn:hover svg,
#serviceModal .auth-close-btn:hover svg {
    stroke: #fff !important;
}

#agentModal .agent-step-icon,
#agentModal .agent-step:nth-child(3) .agent-step-icon,
#agentModal .agent-step:nth-child(5) .agent-step-icon {
    background: rgba(var(--app-theme-rgb), .10) !important;
    color: var(--app-theme) !important;
}

#agentModal .agent-step-line {
    background: rgba(var(--app-theme-rgb), .22) !important;
}

#agentModal .agent-modal-actions .btn-outline-primary {
    border-color: rgba(var(--app-theme-rgb), .52) !important;
    background: rgba(var(--app-theme-rgb), .04) !important;
    color: var(--app-theme) !important;
}

#agentModal .agent-modal-actions .btn-outline-primary:hover {
    border-color: var(--app-theme) !important;
    background: var(--app-theme) !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(var(--app-theme-rgb), .26) !important;
}

#agentModal .agent-modal-actions .btn-primary {
    border-color: var(--app-theme) !important;
    background: linear-gradient(135deg, var(--app-theme), var(--app-theme-dark)) !important;
    color: #fff !important;
    box-shadow: 0 5px 14px rgba(var(--app-theme-rgb), .25) !important;
}

#agentModal .agent-modal-actions .btn-primary:hover {
    background: linear-gradient(135deg, var(--app-theme-light), var(--app-theme)) !important;
    box-shadow: 0 7px 18px rgba(var(--app-theme-rgb), .34) !important;
    color: #fff !important;
}

.app-recommend-section,
.buyer-section>.col-12>.card,
#comments>.card {
    border: 0 !important;
    border-radius: 16px !important;
    overflow: hidden;
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important;
}

.app-recommend-section,
.buyer-section>.col-12:nth-child(1)>.card,
.buyer-section>.col-12:nth-child(2)>.card,
.buyer-section #intro,
#comments>.card {
    background: #fff !important;
}

.app-changelog {
    border-color: rgba(var(--app-theme-rgb), .16) !important;
    background: linear-gradient(135deg, rgba(var(--app-theme-rgb), .035), rgba(var(--app-theme-rgb), .015)) !important;
}

.app-recommend-actions {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.app-recommend-meta {
    margin: 7px 0 0 2px;
    color: #9ca8ba;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
}

.app-recommend-detail,
.app-recommend-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    padding: 0 10px;
    border-radius: 7px !important;
}

.app-recommend-download {
    border: 1px solid rgba(var(--app-theme-rgb), .42) !important;
    background: rgba(var(--app-theme-rgb), .055) !important;
    color: var(--app-theme) !important;
    font-size: 12px;
    font-weight: 400 !important;
}

.app-recommend-detail {
    border: 1px solid rgba(var(--app-theme-rgb), .18);
    background: rgba(var(--app-theme-rgb), .035);
    color: rgba(var(--app-theme-rgb), .78);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: .2s;
}

.app-recommend-detail:hover {
    border-color: rgba(var(--app-theme-rgb), .34);
    background: rgba(var(--app-theme-rgb), .08);
    color: var(--app-theme);
}

.activity-control:hover,
.activity-control.active {
    border-color: rgba(var(--app-theme-rgb), .52) !important;
    background: rgba(var(--app-theme-rgb), .10) !important;
    color: var(--app-theme) !important;
    box-shadow: 0 3px 9px rgba(var(--app-theme-rgb), .14) !important;
}

.activity-control:hover svg,
.activity-control.active svg {
    fill: currentColor !important;
}

.hero-tags .copyright-trigger#openCopyrightModal {
    color: var(--app-theme) !important;
}

.hero-tags .copyright-trigger#openCopyrightModal .copyright-tag-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    margin-right: 1px !important;
    color: var(--app-theme) !important;
}

.hero-tags .copyright-trigger#openCopyrightModal .copyright-tag-icon svg {
    width: 18px !important;
    height: 18px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
}

.hero-tags .copyright-trigger#openCopyrightModal:hover {
    color: #1e1b4b !important;
    font-weight: 700;
}

.hero-tags .copyright-trigger#openCopyrightModal:hover .copyright-tag-icon {
    color: #1e1b4b !important;
}

.hero-tags .hero-tag:nth-child(1),
.hero-tags .hero-tag:nth-child(2),
.hero-tags .hero-tag:nth-child(3) {
    color: #718096 !important;
}

.hero-tags .hero-tag:nth-child(1) svg,
.hero-tags .hero-tag:nth-child(2) svg,
.hero-tags .hero-tag:nth-child(3) svg {
    color: #718096 !important;
    fill: #718096 !important;
    stroke: #718096 !important;
}

#copyrightModal .video-modal-dialog {
    position: relative !important;
    width: calc(100vw - 40px) !important;
    max-width: calc(100vw - 40px) !important;
    height: calc(100vh - 40px) !important;
    max-height: calc(100vh - 40px) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

#copyrightModal .video-modal-body {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 100% !important;
    margin: 0 auto;
    overflow: hidden !important;
    padding: 0 !important;
    background: transparent !important;
}

#copyrightModal .video-modal-body img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
    transform-origin: center center;
    cursor: zoom-in;
    transition: transform .12s ease;
}

#copyrightModal .auth-close-btn {
    position: absolute !important;
    top: -18px !important;
    right: -18px !important;
    z-index: 10001 !important;
    box-shadow: none !important;
}

#copyrightModal .auth-close-btn:hover {
    background: #e63946 !important;
    box-shadow: 0 5px 18px rgba(230, 71, 70, .35) !important;
    transform: rotate(360deg) !important;
}

#copyrightModal .auth-close-btn:hover svg {
    stroke: #fff !important;
}

#copyrightModal .copyright-loading {
    position: absolute;
    inset: 0;
    z-index: 1051;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: rgba(255, 255, 255, .78);
    font-size: 14px
}

#copyrightModal .copyright-loading .app-switch-spinner {
    width: 100px;
    height: 100px;
    margin: 0
}

#copyrightModal .copyright-loading .app-switch-icon {
    animation: appSwitchPop .4s cubic-bezier(.34, 1.56, .64, 1) both
}

/* ===== 应用首页内联样式迁移（2026-09-17 无损拆分，原模板 L1156-1458）===== */
.app-changelog br {
    display: block;
    content: "";
    margin: 0;
}

.app-changelog p {
    margin: 0 0 20px;
}

.app-changelog p:last-child {
    margin-bottom: 0;
}

.app-intro-section p {
    margin: 0 0 20px;
}

.app-intro-section p:last-child {
    margin-bottom: 0;
}

/* ===== 应用切换过渡动画 ===== */
.app-switch-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(255, 255, 255, .82);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease, visibility .35s ease;
}

.app-switch-overlay.active {
    opacity: 1;
    visibility: visible;
}

.app-switch-spinner {
    position: relative;
    width: 100px;
    height: 100px;
    margin-bottom: 18px;
}

.app-switch-spinner-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid rgba(var(--app-theme-rgb), .12);
    border-top-color: var(--app-theme);
    border-right-color: var(--app-theme);
    box-shadow: 0 0 12px rgba(var(--app-theme-rgb), .3), inset 0 0 12px rgba(var(--app-theme-rgb), .1);
    animation: appSwitchSpin .8s linear infinite;
}

.app-switch-spinner-ring:nth-child(2) {
    inset: 8px;
    border-width: 2px;
    border-style: dashed;
    border-top-color: transparent;
    border-left-color: transparent;
    border-right-color: var(--app-theme);
    border-bottom-color: var(--app-theme);
    box-shadow: 0 0 8px rgba(var(--app-theme-rgb), .25);
    animation-duration: 1.4s;
    animation-direction: reverse;
}

.app-switch-icon-wrap {
    position: absolute;
    width: 60px;
    height: 60px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.app-switch-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    animation: appSwitchPop .4s cubic-bezier(.34, 1.56, .64, 1) both;
    box-shadow: 0 4px 16px rgba(var(--app-theme-rgb), .25);
}

.app-switch-particles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: 50%;
}

.app-switch-particle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: var(--app-theme);
    border-radius: 50%;
    opacity: 0;
    animation: appSwitchRise 2s ease-in-out infinite;
}

.app-switch-particle:nth-child(1) {
    left: 20%;
    animation-delay: 0s;
}

.app-switch-particle:nth-child(2) {
    left: 40%;
    animation-delay: .4s;
    width: 3px;
    height: 3px;
}

.app-switch-particle:nth-child(3) {
    left: 60%;
    animation-delay: .8s;
}

.app-switch-particle:nth-child(4) {
    left: 80%;
    animation-delay: 1.2s;
    width: 3px;
    height: 3px;
}

.app-switch-particle:nth-child(5) {
    left: 50%;
    animation-delay: 1.6s;
    width: 5px;
    height: 5px;
}

.app-switch-name {
    font-size: 17px;
    font-weight: 600;
    color: #334155;
    letter-spacing: .5px;
    animation: appSwitchUp .4s .1s cubic-bezier(.34, 1.56, .64, 1) both;
}

.app-switch-hint {
    font-size: 13px;
    color: #94a3b8;
    margin-top: 6px;
    animation: appSwitchUp .4s .18s cubic-bezier(.34, 1.56, .64, 1) both;
}

@keyframes appSwitchSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes appSwitchPop {
    0% {
        transform: scale(.5);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes appSwitchRise {
    0% {
        bottom: -10%;
        opacity: 0;
        transform: scale(.5);
    }

    20% {
        opacity: .8;
    }

    80% {
        opacity: .6;
    }

    100% {
        bottom: 110%;
        opacity: 0;
        transform: scale(1.2);
    }
}

@keyframes appSwitchUp {
    0% {
        transform: translateY(12px);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

.btn.is-loading {
    pointer-events: none;
    cursor: wait;
}

.btn.is-loading .download-button-icon {
    width: 26px;
    height: 26px;
    margin: -3px 8px -3px 0;
    animation: appDownloadSpin .75s linear infinite;
}

@keyframes appDownloadSpin {
    to {
        transform: rotate(360deg);
    }
}

.monitor-particles {
    position: absolute;
    z-index: 2;
    inset: 6px;
    overflow: hidden;
    border-radius: 10px 10px 4px 4px;
    pointer-events: none;
}

.monitor-particle {
    position: absolute;
    width: var(--particle-size);
    height: var(--particle-size);
    border-radius: 50%;
    background: var(--particle-color);
    box-shadow: 0 0 calc(var(--particle-size) * 2) var(--particle-color);
    opacity: 0;
    animation: monitorParticleFloat var(--particle-duration) linear infinite;
    animation-delay: var(--particle-delay);
}

.monitor-particle:nth-child(4n) {
    border-radius: 2px;
    transform: rotate(45deg);
}

.monitor-particle:nth-child(1) {
    --particle-size: 4px;
    --particle-color: #67e8f9;
    --particle-duration: 7.8s;
    --particle-delay: -1.2s;
    left: 8%;
    bottom: -10px;
}

.monitor-particle:nth-child(2) {
    --particle-size: 3px;
    --particle-color: #f9a8d4;
    --particle-duration: 9.1s;
    --particle-delay: -4.4s;
    left: 16%;
    bottom: -14px;
}

.monitor-particle:nth-child(3) {
    --particle-size: 6px;
    --particle-color: #c4b5fd;
    --particle-duration: 8.6s;
    --particle-delay: -6.8s;
    left: 25%;
    bottom: -11px;
}

.monitor-particle:nth-child(4) {
    --particle-size: 4px;
    --particle-color: #fde68a;
    --particle-duration: 10.2s;
    --particle-delay: -2.9s;
    left: 34%;
    bottom: -16px;
}

.monitor-particle:nth-child(5) {
    --particle-size: 3px;
    --particle-color: #5eead4;
    --particle-duration: 7.3s;
    --particle-delay: -5.6s;
    left: 41%;
    bottom: -8px;
}

.monitor-particle:nth-child(6) {
    --particle-size: 7px;
    --particle-color: #f0abfc;
    --particle-duration: 11.4s;
    --particle-delay: -8.1s;
    left: 49%;
    bottom: -15px;
}

.monitor-particle:nth-child(7) {
    --particle-size: 4px;
    --particle-color: #93c5fd;
    --particle-duration: 8.2s;
    --particle-delay: -3.5s;
    left: 56%;
    bottom: -10px;
}

.monitor-particle:nth-child(8) {
    --particle-size: 3px;
    --particle-color: #fcd34d;
    --particle-duration: 9.8s;
    --particle-delay: -7.2s;
    left: 63%;
    bottom: -13px;
}

.monitor-particle:nth-child(9) {
    --particle-size: 5px;
    --particle-color: #a7f3d0;
    --particle-duration: 7.6s;
    --particle-delay: -1.9s;
    left: 70%;
    bottom: -9px;
}

.monitor-particle:nth-child(10) {
    --particle-size: 4px;
    --particle-color: #fda4af;
    --particle-duration: 10.7s;
    --particle-delay: -9s;
    left: 78%;
    bottom: -15px;
}

.monitor-particle:nth-child(11) {
    --particle-size: 3px;
    --particle-color: #a5b4fc;
    --particle-duration: 8.9s;
    --particle-delay: -5s;
    left: 86%;
    bottom: -11px;
}

.monitor-particle:nth-child(12) {
    --particle-size: 6px;
    --particle-color: #99f6e4;
    --particle-duration: 11.1s;
    --particle-delay: -3.1s;
    left: 93%;
    bottom: -16px;
}

.monitor-particle:nth-child(13) {
    --particle-size: 3px;
    --particle-color: #e9d5ff;
    --particle-duration: 8s;
    --particle-delay: -6.2s;
    left: 12%;
    bottom: -12px;
}

.monitor-particle:nth-child(14) {
    --particle-size: 5px;
    --particle-color: #7dd3fc;
    --particle-duration: 9.6s;
    --particle-delay: -2.1s;
    left: 30%;
    bottom: -14px;
}

.monitor-particle:nth-child(15) {
    --particle-size: 4px;
    --particle-color: #fbcfe8;
    --particle-duration: 7.5s;
    --particle-delay: -4.8s;
    left: 46%;
    bottom: -9px;
}

.monitor-particle:nth-child(16) {
    --particle-size: 3px;
    --particle-color: #fef08a;
    --particle-duration: 10.4s;
    --particle-delay: -7.7s;
    left: 67%;
    bottom: -13px;
}

.monitor-particle:nth-child(17) {
    --particle-size: 6px;
    --particle-color: #86efac;
    --particle-duration: 8.4s;
    --particle-delay: -1.5s;
    left: 82%;
    bottom: -11px;
}

.monitor-particle:nth-child(18) {
    --particle-size: 4px;
    --particle-color: #c4b5fd;
    --particle-duration: 11.7s;
    --particle-delay: -8.8s;
    left: 97%;
    bottom: -15px;
}

@keyframes monitorParticleFloat {
    0% {
        transform: translate3d(0, 0, 0) scale(.55);
        opacity: 0;
    }

    14% {
        opacity: .42;
    }

    76% {
        opacity: .2;
    }

    100% {
        transform: translate3d(28px, -420px, 0) scale(1.2);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .monitor-particle {
        animation: none;
        opacity: .3;
    }
}

.notice-banner-label,
.post-banner-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    border-radius: 999px;
    line-height: 1;
}

.post-banner-card {
    overflow: hidden;
    border: 1px solid #edf0f2 !important;
    margin-top: 25px;
}

.post-banner-link {
    display: grid;
    grid-template-columns: 52px 500px 1px minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 10px;
    min-width: 0;
    min-height: 52px;
    padding: 8px 0;
    color: inherit;
    text-decoration: none;
    transition: background-color .2s ease;
}

.post-banner-link+.post-banner-link {
    border-top: 1px solid #edf0f2;
}

.post-banner-link:hover {
    color: inherit;
    background: #fff5f6;
}

.post-banner-thumb,
.post-banner-thumb-empty {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    margin-right: 0;
   
}

.post-banner-thumb {
    object-fit: cover;
    background: rgba(232, 93, 117, .12);
    border: 0px solid rgba(232, 93, 117, .22);
}

.post-banner-thumb-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(232, 93, 117, .12);
    color: #e85d75;
}

.post-banner-thumb-empty svg {
    width: 22px;
    height: 22px;
}

.post-banner-label {
    flex: 0 0 auto;
    margin-right: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 4px 12px;
    border-radius: 4px;
    background: rgba(232, 93, 117, .1);
    color: #e85d75;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.post-banner-text {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    white-space: nowrap;
}

.post-banner-title {
    display: block;
    min-width: 0;
    width: 500px;
    max-width: 500px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
    color: #4a5568;
    font-weight: 500;
}

.post-banner-separator {
    color: #d4d9de;
    font-size: 13px;
}

.post-banner-description {
    display: block;
    flex: 0 0 650px;
   
    max-width: 650px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #b7bec5;
    font-size: 14px;
    font-weight: 400;
}

.post-banner-time {
    flex: 0 0 auto;
    margin-left: 0;
    font-size: 12px;
    color: #98a6ad;
    white-space: nowrap;
}