:root {
    color-scheme: dark;
    --bg: #090b10;
    --panel: #121722;
    --soft: #1d2533;
    --line: rgba(255, 255, 255, .08);
    --text: #f7f8fb;
    --muted: #aab3c2;
    --hot: #ff3d68;
    --blue: #4ea2ff
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, "Microsoft YaHei", sans-serif;
    letter-spacing: 0
}

a {
    color: inherit;
    text-decoration: none
}

img {
    max-width: 100%;
    display: block
}

.vp-shell {
    min-height: 100vh
}

.vp-top {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(9, 11, 16, .86);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--line)
}

.vp-top-in {
    max-width: 1280px;
    margin: 0 auto;
    padding: 12px 16px;
    display: grid;
    grid-template-columns:auto 1fr auto;
    gap: 16px;
    align-items: center
}

.vp-brand {
    font-weight: 800;
    font-size: 18px;
    white-space: nowrap
}

.vp-nav {
    display: flex;
    gap: 8px;
    justify-content: center;
    min-width: 0
}

.vp-nav a, .vp-search button, .vp-chip {
    height: 36px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    border-radius: 8px;
    padding: 0 12px;
    color: var(--muted);
    font-size: 14px
}

.vp-nav a.is-on {
    color: #fff;
    background: linear-gradient(135deg, var(--hot), #ff8a3d);
    border-color: transparent
}

.vp-search {
    display: flex;
    gap: 8px
}

.vp-search input {
    width: 220px;
    height: 36px;
    border: 1px solid var(--line);
    background: #0e1320;
    color: #fff;
    border-radius: 8px;
    padding: 0 10px;
    outline: none
}

.vp-search button {
    color: #fff;
    cursor: pointer
}

.vp-site-banner-wrap {
    max-width: 1280px;
    margin: 12px auto 0;
    padding: 0 16px
}

.vp-site-banner {
    width: 100%;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .34)
}

.vp-announcement {
    max-width: 1280px;
    margin: 12px auto 0;
    padding: 0 16px
}

.vp-announcement-in {
    min-height: 44px;
    border: 1px solid rgba(255, 216, 90, .28);
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(255, 216, 90, .13), rgba(255, 61, 104, .12));
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    color: #fff
}

.vp-announcement b {
    white-space: nowrap;
    color: #ffd95a
}

.vp-announcement span {
    min-width: 0;
    color: #f7f8fb;
    font-size: 14px;
    line-height: 1.45
}

.vp-announcement a {
    margin-left: auto;
    height: 30px;
    display: inline-flex;
    align-items: center;
    border-radius: 8px;
    background: rgba(255, 255, 255, .1);
    padding: 0 10px;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap
}

.vp-ad-wrap {
    max-width: 1280px;
    margin: 12px auto 0;
    padding: 0 16px
}

.vp-ad {
    display: grid;
    grid-template-columns:auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-height: 48px;
    border: 1px solid rgba(78, 162, 255, .28);
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(78, 162, 255, .14), rgba(255, 61, 104, .1));
    padding: 10px 12px
}

.vp-ad.is-text {
    grid-template-columns:minmax(0, 1fr) auto;
    border-color: rgba(255, 216, 90, .32);
    background: linear-gradient(135deg, rgba(255, 216, 90, .16), rgba(78, 162, 255, .1))
}

.vp-ad.is-image {
    display: block;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: #0e1320;
    border-color: rgba(255, 255, 255, .14)
}

.vp-ad.is-image img {
    width: 100%;
    height: auto;
    min-height: 44px;
    max-height: 130px;
    object-fit: contain;
    border-radius: 0;
    background: #0e1320
}

.vp-ad.is-image span {
    padding: 8px 12px;
    white-space: normal
}

.vp-ad img {
    width: 92px;
    height: 38px;
    object-fit: cover;
    border-radius: 6px;
    background: #0e1320
}

.vp-ad b {
    display: block;
    font-size: 14px
}

.vp-ad span {
    display: block;
    color: #d7dbe4;
    font-size: 13px;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.vp-ad em {
    font-style: normal;
    color: #fff;
    font-size: 12px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 8px;
    padding: 6px 9px;
    background: rgba(255, 255, 255, .08);
    white-space: nowrap
}

.vp-admin-alert {
    position: sticky;
    top: 62px;
    z-index: 70;
    margin: 0 0 14px;
    border: 1px solid rgba(255, 216, 90, .38);
    border-radius: 10px;
    background: linear-gradient(135deg, #f59e0b, #ff3d68);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
    overflow: hidden
}

.vp-admin-alert a {
    display: block;
    color: #fff;
    font-weight: 900;
    white-space: nowrap;
    overflow: hidden
}

.vp-admin-alert span {
    display: inline-block;
    padding: 11px 0;
    animation: vpMarquee 13s linear infinite
}

.vp-admin-alert b {
    display: inline-flex;
    align-items: center;
    margin: 0 16px 0 14px;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .22)
}

@keyframes vpMarquee {
    0% {
        transform: translateX(100%)
    }
    100% {
        transform: translateX(-100%)
    }
}

.vp-admin-layout {
    display: grid;
    grid-template-columns:190px minmax(0, 1fr);
    gap: 16px;
    align-items: start
}

.vp-admin-sidebar {
    position: sticky;
    top: 78px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 12px
}

.vp-admin-sidebar h1 {
    margin: 0 0 10px;
    font-size: 18px
}

.vp-admin-nav {
    display: grid;
    gap: 6px
}

.vp-admin-nav a, .vp-admin-nav button {
    width: 100%;
    height: 36px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--muted);
    display: flex;
    align-items: center;
    padding: 0 10px;
    font-size: 14px;
    text-align: left;
    cursor: pointer
}

.vp-admin-nav a.is-on {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .12);
    color: #fff;
    font-weight: 800
}

.vp-admin-nav button {
    border-color: var(--line);
    margin-top: 6px;
    color: #fff;
    background: rgba(255, 255, 255, .04)
}

.vp-main {
    max-width: 1280px;
    margin: 0 auto;
    padding: 18px 16px 50px
}

.vp-seo-footer {
    margin: 28px 0 0;
    padding: 18px 0 0;
    border-top: 1px solid var(--line);
    color: var(--muted)
}

.vp-seo-footer h2 {
    margin: 0 0 8px;
    font-size: 18px;
    color: #fff
}

.vp-seo-footer h3 {
    margin: 0 0 9px;
    font-size: 14px;
    color: #dbe2ef
}

.vp-seo-footer p {
    margin: 0;
    color: #aeb8c7;
    font-size: 13px;
    line-height: 1.7
}

.vp-seo-footer-grid {
    display: grid;
    grid-template-columns:1.2fr 1fr 1fr;
    gap: 16px
}

.vp-seo-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.vp-seo-footer-links a {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, .035);
    padding: 0 10px;
    color: #dbe2ef;
    font-size: 13px
}

.vp-seo-footer-meta {
    margin-top: 12px;
    font-size: 12px;
    color: #788397
}

.vp-hero {
    display: grid;
    grid-template-columns:1.3fr .7fr;
    gap: 18px;
    margin-bottom: 18px
}

.vp-hero-card {
    min-height: 260px;
    border-radius: 10px;
    overflow: hidden;
    background: #111827;
    position: relative;
    border: 1px solid var(--line)
}

.vp-hero-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .72
}

.vp-hero-copy {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 24px;
    background: linear-gradient(transparent, rgba(0, 0, 0, .9))
}

.vp-hero-copy h1 {
    margin: 0 0 8px;
    font-size: 30px;
    line-height: 1.12
}

.vp-hero-copy p {
    margin: 0;
    color: #d5d9e1;
    line-height: 1.6
}

.vp-panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 16px
}

.vp-panel h2, .vp-section h2 {
    margin: 0 0 14px;
    font-size: 18px
}

.vp-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.vp-chip {
    height: 34px
}

.vp-grid {
    display: grid;
    grid-template-columns:repeat(6, minmax(0, 1fr));
    gap: 14px
}

.vp-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    transition: .18s transform, .18s border-color
}

.vp-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, .2)
}

.vp-poster {
    aspect-ratio: 3/4;
    background: #0d111b;
    position: relative
}

.vp-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.vp-badge {
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: rgba(0, 0, 0, .72);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 5px;
    padding: 3px 6px;
    font-size: 12px
}

.vp-card-bd {
    padding: 9px
}

.vp-title {
    font-size: 14px;
    line-height: 1.35;
    height: 38px;
    overflow: hidden
}

.vp-meta {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.vp-player-layout {
    display: grid;
    grid-template-columns:minmax(0, 1fr) 330px;
    gap: 18px
}

.vp-player-layout > section,
.vp-player-layout > aside {
    min-width: 0
}

.vp-player-box {
    background: #000;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--line);
    aspect-ratio: 16/9;
    position: relative;
    width: 100%;
    max-width: 100%
}

.vp-player-box #qdcms_video,
.vp-player-box #qdcms_video iframe,
.vp-player-box iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
    background: #000
}

.vp-player-box video {
    width: 100%;
    height: 100%;
    display: block;
    background: #000
}

.vp-watch-title {
    font-size: 22px;
    margin: 14px 0 6px
}

.vp-desc {
    color: var(--muted);
    line-height: 1.75;
    white-space: pre-wrap
}

.vp-side-list {
    display: grid;
    gap: 10px
}

.vp-side-item {
    display: grid;
    grid-template-columns:86px 1fr;
    gap: 10px;
    align-items: center
}

.vp-side-item img {
    width: 86px;
    height: 58px;
    object-fit: cover;
    border-radius: 6px;
    background: #0d111b
}

.vp-side-item b {
    font-size: 13px;
    line-height: 1.35;
    display: block;
    max-height: 36px;
    overflow: hidden
}

.vp-side-item span {
    font-size: 12px;
    color: var(--muted)
}

body.is-short-mode {
    overflow: hidden;
    background: #1a2030;
    background: linear-gradient(165deg, #1e2433 0%, #181d28 42%, #141820 100%);
}

.vp-top-short {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    background: linear-gradient(rgba(0, 0, 0, .72), rgba(0, 0, 0, 0));
    border-bottom: 0;
    backdrop-filter: none
}

.vp-top-short .vp-top-in {
    max-width: 620px
}

.vp-top-short .vp-search {
    display: none
}

.vp-top-short .vp-nav a {
    background: transparent;
    border-color: transparent;
    color: rgba(255, 255, 255, .72)
}

.vp-top-short .vp-nav a.is-on {
    background: transparent;
    color: #fff;
    border-bottom: 2px solid #fff;
    border-radius: 0
}

.vp-short {
    position: fixed;
    inset: 0;
    height: 100vh;
    width: 100%;
    max-width: 620px;
    margin: 0 auto;
    left: 0;
    right: 0;
    overflow-y: auto;
    overflow-x: hidden;
    scroll-snap-type: y mandatory;
    background: #000;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch
}

.vp-short::-webkit-scrollbar {
    display: none
}

.vp-short-item {
    height: 100vh;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background: #000;
    overflow: hidden
}

.vp-short-video {
    width: 100%;
    height: calc(100% - 154px);
    object-fit: cover;
    background: #000
}

.vp-short-item.is-paused:after {
    content: '▶';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .42);
    font-size: 34px;
    padding-left: 4px
}

.vp-short-info {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 56px;
    min-height: 98px;
    padding: 10px 86px 12px 14px;
    background: #000;
    pointer-events: auto;
    transition: .18s opacity;
    z-index: 3
}

.vp-short-item.is-clean .vp-short-info {
    opacity: 0;
    pointer-events: none
}

.vp-short-info h2 {
    font-size: 15px;
    margin: 0;
    line-height: 1.28;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .82);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.vp-short-info p {
    display: none
}

.vp-short-tag {
    display: inline-flex;
    margin-bottom: 5px;
    padding: 2px 6px;
    border-radius: 5px;
    background: rgba(0, 0, 0, .34);
    font-size: 11px;
    color: #fff
}

.vp-actions {
    position: absolute;
    right: 12px;
    bottom: 94px;
    display: grid;
    gap: 14px;
    z-index: 999
}

.vp-action {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(18, 22, 30, .55);
    color: #fff;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
    cursor: pointer;
    z-index: 999
}

.vp-action.is-liked {
    color: #ff3d68
}

.vp-action-stack {
    display: grid;
    place-items: center;
    gap: 4px;
    color: #fff;
    font-size: 12px
}

.vp-avatar {
    background: linear-gradient(135deg, #ff3d68, #4ea2ff);
    font-weight: 800
}

.vp-progress {
    position: absolute;
    left: 50%;
    bottom: 58px;
    width: min(320px, 58vw);
    height: 58px;
    transform: translateX(-50%);
    z-index: 90;
    cursor: pointer;
    touch-action: none
}

.vp-progress:before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 24px;
    height: 6px;
    border-radius: 99px;
    background: rgba(255, 255, 255, .42);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .22)
}

.vp-progress i {
    position: absolute;
    left: 0;
    top: 24px;
    display: block;
    height: 6px;
    width: 0;
    border-radius: 99px;
    background: linear-gradient(90deg, #ff3d68, #ff8a3d)
}

.vp-progress i:after {
    content: '';
    position: absolute;
    right: -7px;
    top: 50%;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%) scale(.82);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .48);
    opacity: 1
}

.vp-progress.is-dragging i:after {
    transform: translateY(-50%) scale(1);
    opacity: 1
}

.vp-progress span {
    position: absolute;
    left: 0;
    bottom: 22px;
    transform: translateX(-50%);
    display: none;
    padding: 4px 7px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .72);
    color: #fff;
    font-size: 12px;
    white-space: nowrap
}

.vp-progress.is-dragging span {
    display: block
}

.vp-short-more {
    height: 100vh;
    scroll-snap-align: start;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #000
}

.vp-toast {
    position: fixed;
    left: 50%;
    bottom: 120px;
    transform: translateX(-50%);
    z-index: 120;
    padding: 8px 12px;
    border-radius: 8px;
    background: rgba(0, 0, 0, .72);
    color: #fff;
    font-size: 13px;
    opacity: 0;
    transition: .18s
}

.vp-toast.is-on {
    opacity: 1
}

.vp-comment-drawer {
    position: fixed;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 105%);
    width: min(620px, 100vw);
    height: 52vh;
    z-index: 110;
    background: #121722;
    border-radius: 16px 16px 0 0;
    border: 1px solid rgba(255, 255, 255, .12);
    transition: .22s;
    box-shadow: 0 -12px 36px rgba(0, 0, 0, .48);
    padding: 14px
}

.vp-comment-drawer.is-open {
    transform: translate(-50%, 0)
}

.vp-comment-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px
}

.vp-comment-list {
    display: grid;
    gap: 10px;
    max-height: calc(52vh - 118px);
    overflow: auto
}

.vp-comment-item {
    background: #0e1320;
    border-radius: 8px;
    padding: 10px;
    color: #dbe2ef
}

.vp-comment-box {
    display: flex;
    gap: 8px;
    margin-top: 12px
}

.vp-comment-box input {
    flex: 1;
    border: 1px solid var(--line);
    background: #0e1320;
    color: #fff;
    border-radius: 8px;
    padding: 10px
}

.vp-comment-box button {
    border: 0;
    border-radius: 8px;
    background: #fff;
    color: #111;
    padding: 0 14px;
    font-weight: 800
}

.vp-empty {
    padding: 40px;
    text-align: center;
    color: var(--muted);
    background: var(--panel);
    border-radius: 10px;
    border: 1px solid var(--line)
}

.is-short-mode .vp-main {
    padding: 0
}

.vp-short-discover {
    position: fixed;
    left: 50%;
    top: 62px;
    transform: translateX(-50%);
    width: min(620px, 100vw);
    z-index: 60;
    padding: 0 12px;
    display: grid;
    gap: 10px;
    pointer-events: none
}

.vp-short-search {
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(9, 11, 16, .48);
    backdrop-filter: blur(12px);
    border-radius: 999px;
    display: grid;
    grid-template-columns:1fr auto;
    align-items: center;
    overflow: hidden;
    pointer-events: auto
}

.vp-short-search input {
    min-width: 0;
    border: 0;
    background: transparent;
    color: #fff;
    padding: 0 14px;
    outline: none
}

.vp-short-search button {
    height: 100%;
    border: 0;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    padding: 0 14px;
    font-weight: 700
}

.vp-short-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
    pointer-events: auto
}

.vp-short-tabs::-webkit-scrollbar {
    display: none
}

.vp-short-tabs a {
    white-space: nowrap;
    height: 30px;
    display: inline-flex;
    align-items: center;
    padding: 0 11px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .38);
    border: 1px solid rgba(255, 255, 255, .13);
    color: #f7f8fb;
    font-size: 13px
}

.vp-short-cue {
    position: absolute;
    left: 50%;
    bottom: 94px;
    transform: translateX(-50%);
    z-index: 5;
    color: #fff;
    font-size: 12px;
    opacity: .86;
    animation: vpCue 1.2s infinite
}

.vp-short-item:not(:first-child) .vp-short-cue {
    display: none
}

.vp-short-bottom {
    position: fixed;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: min(620px, 100vw);
    height: 56px;
    z-index: 65;
    display: grid;
    grid-template-columns:repeat(3, 1fr);
    align-items: center;
    background: #000;
    padding-bottom: env(safe-area-inset-bottom)
}

.vp-short-bottom a {
    display: grid;
    place-items: center;
    gap: 2px;
    color: rgba(255, 255, 255, .72);
    font-size: 11px
}

.vp-short-bottom b {
    font-size: 18px;
    line-height: 1
}

.vp-short-bottom a.is-on {
    color: #fff
}

.is-short-mode .vp-short-info {
    bottom: 56px;
    padding-bottom: 12px
}

.is-short-mode .vp-actions {
    bottom: 116px;
    gap: 10px
}

@keyframes vpCue {
    0%, 100% {
        transform: translate(-50%, 0);
        opacity: .5
    }
    50% {
        transform: translate(-50%, -8px);
        opacity: 1
    }
}

.vp-form {
    display: grid;
    gap: 12px;
    max-width: 820px
}

.vp-field {
    display: grid;
    gap: 6px
}

.vp-field label {
    font-size: 13px;
    color: var(--muted)
}

.vp-field input, .vp-field textarea {
    width: 100%;
    border: 1px solid var(--line);
    background: #0e1320;
    color: #fff;
    border-radius: 8px;
    padding: 10px;
    outline: none
}

.vp-field textarea {
    min-height: 110px;
    resize: vertical
}

.vp-avatar-choices {
    display: grid;
    grid-template-columns:repeat(4, 1fr);
    gap: 10px
}

.vp-avatar-choice {
    position: relative
}

.vp-avatar-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none
}

.vp-avatar-choice img {
    width: 58px;
    height: 58px;
    border-radius: 14px;
    border: 2px solid transparent;
    background: #0e1320;
    object-fit: cover
}

.vp-avatar-choice input:checked + img {
    border-color: #ffd95a;
    box-shadow: 0 0 0 2px rgba(255, 217, 90, .16)
}

.vp-avatar-preview {
    display: flex;
    align-items: center;
    gap: 12px
}

.vp-avatar-preview img {
    width: 58px;
    height: 58px;
    border-radius: 14px;
    object-fit: cover;
    background: #0e1320
}

.vp-submit {
    height: 40px;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--hot), #ff8a3d);
    color: #fff;
    font-weight: 800;
    cursor: pointer
}

.vp-msg {
    padding: 12px 14px;
    border-radius: 8px;
    margin-bottom: 14px;
    background: rgba(78, 162, 255, .12);
    border: 1px solid rgba(78, 162, 255, .28);
    color: #dbeafe
}

.vp-auth {
    max-width: 460px;
    margin: 36px auto
}

.vp-stats {
    display: grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 18px
}

.vp-stat {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 16px
}

.vp-stat b {
    display: block;
    font-size: 24px
}

.vp-stat span {
    color: var(--muted);
    font-size: 13px
}

.vp-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden
}

.vp-table th, .vp-table td {
    padding: 11px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    font-size: 14px
}

.vp-table th {
    color: var(--muted);
    font-weight: 600
}

.vp-thread {
    display: block;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 10px
}

.vp-thread h3 {
    margin: 0 0 8px;
    font-size: 17px
}

.vp-thread p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55
}

.vp-reply {
    background: #0e1320;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px;
    margin: 10px 0
}

.vp-member-hero {
    display: grid;
    grid-template-columns:1fr auto;
    gap: 14px;
    align-items: center;
    background: linear-gradient(135deg, #151c2a, #111722 54%, rgba(255, 61, 104, .16));
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 12px
}

.vp-member-profile {
    display: grid;
    grid-template-columns:52px 1fr;
    gap: 12px;
    align-items: center;
    min-width: 0
}

.vp-member-avatar {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--hot), var(--blue));
    font-size: 22px;
    font-weight: 900;
    overflow: hidden
}

.vp-member-profile h1 {
    margin: 0 0 5px;
    font-size: 20px
}

.vp-member-profile p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.vp-member-balance {
    text-align: right
}

.vp-member-balance b {
    display: block;
    font-size: 26px
}

.vp-member-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-top: 8px
}

.vp-member-quick {
    display: grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px
}

.vp-quick {
    min-height: 68px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px;
    display: grid;
    align-content: center;
    gap: 4px
}

.vp-quick b {
    font-size: 18px;
    line-height: 1
}

.vp-quick span {
    font-size: 12px;
    color: var(--muted)
}

.vp-task-grid {
    display: grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px
}

.vp-task {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 12px;
    min-height: 88px;
    display: grid;
    align-content: space-between
}

.vp-task strong {
    display: block;
    font-size: 15px;
    margin-bottom: 4px
}

.vp-task span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35
}

.vp-task a, .vp-task button {
    justify-self: start;
    margin-top: 8px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    padding: 0 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-weight: 700;
    cursor: pointer
}

.vp-task.is-hot {
    background: linear-gradient(135deg, rgba(255, 61, 104, .24), rgba(78, 162, 255, .12));
    border-color: rgba(255, 255, 255, .14)
}

.vp-check-days {
    display: grid;
    grid-template-columns:repeat(7, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 14px
}

.vp-check-day {
    height: 54px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #0e1320;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: 12px
}

.vp-check-day b {
    display: block;
    color: #fff;
    font-size: 13px
}

.vp-check-day.is-on {
    background: linear-gradient(135deg, rgba(255, 61, 104, .35), rgba(255, 138, 61, .18));
    border-color: rgba(255, 255, 255, .2)
}

.vp-check-day.is-today {
    box-shadow: 0 0 0 1px rgba(78, 162, 255, .45) inset
}

.vp-wallet-layout {
    display: grid;
    grid-template-columns:minmax(0, 1fr) minmax(360px, .7fr);
    gap: 12px;
    align-items: start
}

.vp-inline-form {
    display: inline
}

.vp-table a {
    color: #dbeafe
}

.vp-member-details {
    display: grid;
    gap: 10px
}

.vp-fold {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden
}

.vp-fold summary {
    list-style: none;
    cursor: pointer;
    min-height: 46px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-weight: 800
}

.vp-fold summary::-webkit-details-marker {
    display: none
}

.vp-fold summary span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500
}

.vp-fold summary:after {
    content: '+';
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .08);
    color: #fff
}

.vp-fold[open] summary:after {
    content: '-'
}

.vp-fold-body {
    padding: 0 14px 14px
}

.vp-mini-grid {
    display: grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap: 10px
}

.vp-mini-grid .vp-card:nth-child(n+5) {
    display: none
}

@media (max-width: 980px) {
    .vp-top-in {
        grid-template-columns:1fr;
        gap: 10px
    }

    .vp-nav {
        justify-content: flex-start;
        overflow-x: auto
    }

    .vp-search input {
        width: 100%
    }

    .vp-hero, .vp-player-layout, .vp-admin-layout, .vp-seo-footer-grid {
        grid-template-columns:1fr
    }

    .vp-admin-sidebar {
        position: static
    }

    .vp-admin-nav {
        grid-template-columns:repeat(2, minmax(0, 1fr))
    }

    .vp-grid {
        grid-template-columns:repeat(3, minmax(0, 1fr))
    }

    .vp-main {
        padding: 14px 12px 42px
    }

    .vp-hero-copy h1 {
        font-size: 24px
    }
}

@media (max-width: 760px) {
    .vp-member-hero, .vp-wallet-layout {
        grid-template-columns:1fr
    }

    .vp-member-balance {
        text-align: left
    }

    .vp-member-actions {
        justify-content: flex-start
    }

    .vp-task-grid, .vp-member-quick {
        grid-template-columns:repeat(2, minmax(0, 1fr))
    }

    .vp-stats {
        grid-template-columns:repeat(2, minmax(0, 1fr))
    }

    .vp-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap
    }

    .vp-mini-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr))
    }
}

@media (max-width: 560px) {
    .vp-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap: 10px
    }

    .vp-card-bd {
        padding: 8px
    }

    .vp-search {
        display: grid;
        grid-template-columns:1fr auto
    }

    .vp-player-box {
        border-radius: 0;
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0
    }

    .vp-short {
        margin-left: -12px;
        margin-right: -12px
    }

    .vp-task-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr))
    }

    .vp-check-days {
        gap: 6px
    }

    .vp-check-day {
        height: 48px
    }

    .vp-member-profile {
        grid-template-columns:48px 1fr
    }

    .vp-member-avatar {
        width: 48px;
        height: 48px;
        border-radius: 12px;
        font-size: 20px
    }
}

.vp-short-player {
    width: 100%;
    height: calc(100% - 154px);
    background: #000
}

.vp-short-player iframe {
    width: 100%;
    height: 100%;
    border: 0;
    background: #000
}

.vp-member-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.is-short-mode .vp-short-discover {
    position: fixed;
    right: 12px;
    top: 94px;
    left: auto;
    transform: none;
    width: auto;
    z-index: 60;
    display: grid;
    justify-items: end;
    pointer-events: none
}

.is-short-mode .vp-short-search {
    width: 50px;
    height: 50px;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(9, 11, 16, .56);
    backdrop-filter: blur(12px);
    border-radius: 999px;
    display: grid;
    grid-template-columns:0 50px;
    align-items: center;
    overflow: hidden;
    pointer-events: auto;
    transition: .18s width, .18s background
}

.is-short-mode .vp-short-search.is-open {
    width: min(296px, calc(100vw - 24px));
    grid-template-columns:1fr 50px;
    background: rgba(9, 11, 16, .76)
}

.is-short-mode .vp-short-search input {
    min-width: 0;
    width: 100%;
    border: 0;
    background: transparent;
    color: #fff;
    padding: 0 0 0 14px;
    outline: none;
    opacity: 0;
    transition: .14s opacity
}

.is-short-mode .vp-short-search.is-open input {
    opacity: 1
}

.is-short-mode .vp-short-search button {
    width: 50px;
    height: 50px;
    border: 0;
    background: transparent;
    color: #fff;
    padding: 0;
    font-size: 26px;
    font-weight: 800;
    display: grid;
    place-items: center
}

.vp-short-tabs {
    display: none
}

.vp-short-player {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden
}

.vp-short-player[data-player] {
    background: #000
}

.vp-short-player[data-player] img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .72;
    filter: blur(1px)
}

.vp-short-loading {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .62);
    color: #fff;
    font-size: 13px
}

.vp-home-layout {
    display: grid;
    grid-template-columns:96px minmax(0, 1fr);
    gap: 12px;
    align-items: start
}

.vp-home-rail {
    position: sticky;
    top: 74px;
    display: grid;
    gap: 8px;
    max-height: calc(100vh - 92px);
    overflow: auto;
    padding-right: 2px;
    scrollbar-width: none
}

.vp-home-rail::-webkit-scrollbar {
    display: none
}

.vp-home-rail a {
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .045);
    border-radius: 7px;
    color: #dce3ee;
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 6px
}

.vp-home-rail a.is-on {
    background: linear-gradient(135deg, var(--hot), #ff8a3d);
    border-color: transparent;
    color: #fff;
    font-weight: 800
}

.vp-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 12px
}

.vp-section-head h2 {
    margin: 0;
    font-size: 22px
}

.vp-section-head span {
    color: var(--muted);
    font-size: 13px;
    white-space: nowrap
}

.vp-short-logo-ad {
    overflow: hidden;
    padding: 0;
    background: #0e1320
}

.vp-short-logo-ad img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%
}

.vp-short-logo-ad b {
    font-size: 13px;
    letter-spacing: 0;
    color: #ffd95a
}

.is-short-mode .vp-site-banner-wrap, .is-member-mode .vp-site-banner-wrap, .is-short-mode .vp-announcement, .is-short-mode .vp-ad-wrap {
    display: none
}

@media (max-width: 560px) {
    .vp-site-banner-wrap, .vp-ad-wrap {
        margin-top: 8px;
        padding: 0 8px
    }

    .vp-site-banner {
        border-radius: 8px
    }

    .vp-ad.is-image img {
        min-height: 30px;
        max-height: 86px
    }

    .vp-main {
        padding-left: 0;
        padding-right: 8px
    }

    .vp-home-layout {
        grid-template-columns:72px minmax(0, 1fr);
        gap: 8px
    }

    .vp-home-rail {
        top: 116px;
        padding-left: 6px
    }

    .vp-home-rail a {
        height: 32px;
        font-size: 12px;
        border-radius: 6px
    }

    .vp-section-head h2 {
        font-size: 19px
    }

    .vp-home-layout .vp-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap: 8px
    }

    .vp-home-layout .vp-title {
        font-size: 13px;
        height: 36px
    }

    .vp-home-layout .vp-meta {
        font-size: 11px
    }
}
