/* ========================================
   Purple — 紫色自适应模板
   主色调：紫色 #7c3aed / 深紫 #6d28d9
   配色：红 #ef4444 / 白 #fff / 灰 / 黑
   ======================================== */
:root {
    --bg:         #f8f6fc;
    --bg-card:    #ffffff;
    --bg-card2:   #faf8ff;
    --bg-hover:   #f5f3ff;
    --text:       #1a1a2e;
    --text-sub:   #4a4560;
    --text-light: #8a85a0;
    --purple:     #7c3aed;
    --purple-h:   #6d28d9;
    --purple-dim: rgba(124,58,237,.06);
    --teal:       #7c3aed;
    --teal-h:     #6d28d9;
    --red:        #ef4444;
    --gold:       #ef4444;
    --grad:       linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
    --grad-warm:  linear-gradient(135deg, #7c3aed 0%, #a78bfa 50%, #6d28d9 100%);
    --grad-red:   linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    --glow-sm:    0 0 12px rgba(124,58,237,.10);
    --glow-md:    0 0 24px rgba(124,58,237,.12);
    --glow-lg:    0 0 48px rgba(124,58,237,.15);
    --border:     #e4def5;
    --border-l:   #f0ecf8;
    --radius:     12px;
    --radius-sm:  8px;
    --radius-lg:  18px;
    --radius-xl:  24px;
    --gap:        16px;
    --max-w:      1340px;
    --transition: .25s ease;
}

/* ===== Reset ===== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
    font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
    font-size:14px; color:var(--text); background:var(--bg);
    line-height:1.6; -webkit-font-smoothing:antialiased; min-width:320px;
}
a { color:var(--text); text-decoration:none; transition:var(--transition); }
a:hover { color:var(--purple); }
img { max-width:100%; height:auto; display:block; }
ul, ol { list-style:none; }
input, button, select { font-family:inherit; font-size:inherit; }
::selection { background:var(--purple); color:#fff; }

/* ===== 容器 ===== */
.container { max-width:var(--max-w); margin:0 auto; padding:0 20px; }

/* ========================================
   页头 — 白色吸顶 Header
   ======================================== */
.nv-header {
    position:sticky;top:0;z-index:1000;
    background:rgba(255,255,255,.95);backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
    box-shadow:0 2px 16px rgba(0,0,0,.04);
}
.nv-topbar {
    background:linear-gradient(90deg,#7c3aed,#6d28d9);
    height:32px;line-height:32px;font-size:12px;
    color:rgba(255,255,255,.85);
}
.nv-topbar .container {
    display:flex;justify-content:space-between;align-items:center;height:100%;
}
.nv-top-acts {display:flex;gap:4px;align-items:center;}
.nv-top-acts a {
    color:rgba(255,255,255,.75);padding:0 10px;transition:var(--transition);
}
.nv-top-acts a:hover {color:#fff;}

.nv-mbar {height:62px;}
.nv-mbar .container {
    display:flex;align-items:center;height:100%;gap:0;
}

/* Logo */
.nv-logo {
    font-size:24px;font-weight:900;letter-spacing:1px;
    display:flex;align-items:center;gap:8px;flex-shrink:0;
    color:var(--purple-h);
    background:var(--grad-warm);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
}
@-moz-document url-prefix(){
    .nv-logo{-webkit-text-fill-color:var(--purple-h);background:none;}
}
.nv-logo:hover{opacity:.85;}
.nv-logo span {
    font-size:10px;font-weight:700;letter-spacing:1px;
    background:rgba(124,58,237,.1);color:var(--purple);
    -webkit-text-fill-color:var(--purple);
    padding:2px 8px;border-radius:4px;
    border:1px solid rgba(124,58,237,.25);
}

/* 桌面导航 */
.nv-nav {
    display:flex;align-items:center;margin-left:36px;height:100%;gap:4px;
}
.nv-nav a {
    color:var(--text-sub);font-size:14px;font-weight:500;
    padding:0 18px;height:100%;display:flex;align-items:center;
    position:relative;transition:var(--transition);flex-shrink:0;
}
.nv-nav a::after {
    content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);
    width:0;height:2px;background:var(--grad);border-radius:1px;
    transition:var(--transition);
}
.nv-nav a:hover,.nv-nav a.active {color:var(--purple-h);}
.nv-nav a:hover::after,.nv-nav a.active::after {width:60%;}
.nv-nav .nv-home-btn {
    background:var(--grad);color:#fff!important;padding:0 22px;
    height:36px;border-radius:8px;margin:0 2px;
    box-shadow:0 2px 12px rgba(124,58,237,.25);
}
.nv-nav .nv-home-btn::after {display:none;}
.nv-nav .nv-home-btn:hover {
    box-shadow:0 4px 20px rgba(124,58,237,.35);transform:translateY(-1px);
}

/* 桌面搜索 */
.nv-search {
    display:flex;margin-left:auto;flex-shrink:0;
}
.nv-search input {
    width:220px;height:40px;padding:0 16px;
    background:var(--bg);border:1px solid var(--border);
    border-radius:10px 0 0 10px;font-size:13px;color:var(--text);outline:none;
    transition:var(--transition);
}
.nv-search input::placeholder {color:var(--text-light);}
.nv-search input:focus {
    border-color:var(--purple);box-shadow:0 0 0 3px rgba(124,58,237,.1);
}
.nv-search button {
    height:40px;width:46px;background:var(--grad);color:#fff;
    border:none;border-radius:0 10px 10px 0;cursor:pointer;
    font-size:15px;transition:var(--transition);
    display:flex;align-items:center;justify-content:center;
}
.nv-search button:hover {box-shadow:0 0 12px rgba(124,58,237,.3);}

/* 移动端菜单按钮 */
.nv-menu-btn {
    display:none;flex-direction:column;justify-content:center;gap:5px;
    width:36px;height:36px;background:none;border:none;cursor:pointer;
    padding:6px;margin-left:auto;z-index:1010;
}
.nv-menu-btn span {
    display:block;width:100%;height:2px;
    background:var(--text-sub);border-radius:2px;
    transition:all .3s ease;
}
.nv-menu-btn.active span:nth-child(1) {
    transform:translateY(7px) rotate(45deg);background:var(--purple);
}
.nv-menu-btn.active span:nth-child(2) {opacity:0;}
.nv-menu-btn.active span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg);background:var(--purple);
}

/* 移动端下拉导航 */
.nv-mnav {
    display:none;background:#fff;
    border-top:1px solid var(--border);
    padding:0 20px 18px;box-shadow:0 4px 16px rgba(0,0,0,.06);
    animation:nvSlideDown .3s ease;
}
.nv-mnav.open {display:block;}
@keyframes nvSlideDown {
    from {opacity:0;transform:translateY(-12px);}
    to {opacity:1;transform:translateY(0);}
}
.nv-mnav .nv-ms {
    display:flex;padding:14px 0;
}
.nv-mnav .nv-ms input {
    flex:1;height:42px;padding:0 14px;
    background:var(--bg);border:1px solid var(--border);
    border-radius:10px 0 0 10px;font-size:14px;color:var(--text);outline:none;
}
.nv-mnav .nv-ms input::placeholder {color:var(--text-light);}
.nv-mnav .nv-ms button {
    height:42px;padding:0 18px;background:var(--grad);color:#fff;
    border:none;border-radius:0 10px 10px 0;font-size:14px;cursor:pointer;
}
.nv-mnav > a {
    display:block;padding:13px 6px;color:var(--text-sub);
    font-size:15px;border-bottom:1px solid var(--border-l);
    transition:var(--transition);
}
.nv-mnav > a:hover,.nv-mnav > a.active {color:var(--purple-h);}
.nv-mnav > a:last-child {border-bottom:none;}

/* ===== Hero 轮播区 ===== */
.nv-hero {
    background:var(--bg-card);border-bottom:1px solid var(--border);
    padding-bottom:24px;
}
.nv-hero .container {position:relative;overflow:hidden;}
.nv-slide {
    position:relative;border-radius:var(--radius-lg);overflow:hidden;
    height:300px;background:#e0e0e0;margin-top:22px;
    border:1px solid var(--border);
}
.nv-slide-track {
    display:flex;height:100%;transition:transform .6s cubic-bezier(.25,.8,.25,1);
}
.nv-slide-item {min-width:100%;position:relative;}
.nv-slide-item a {display:block;width:100%;height:100%;}
.nv-slide-item img {width:100%;height:100%;object-fit:cover;}
.nv-slide-cap {
    position:absolute;bottom:0;left:0;right:0;
    padding:80px 40px 30px;color:#fff;
    background:linear-gradient(transparent 0%,rgba(0,0,0,.3) 40%,rgba(0,0,0,.85) 100%);
}
.nv-slide-cap h3 {
    font-size:26px;font-weight:800;margin-bottom:8px;
    text-shadow:0 2px 12px rgba(0,0,0,.5);
}
.nv-slide-cap p {font-size:13px;opacity:.8;display:flex;gap:12px;align-items:center;}
.nv-slide-badge {
    display:inline-block;padding:3px 14px;
    background:var(--grad);color:#fff;
    border-radius:20px;font-size:11px;font-weight:700;
    box-shadow:0 2px 8px rgba(124,58,237,.3);
}
.nv-slide-dots {
    position:absolute;bottom:16px;right:24px;display:flex;gap:8px;z-index:10;
}
.nv-slide-dots span {
    width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);
    cursor:pointer;transition:all .3s;
}
.nv-slide-dots span.active {
    background:var(--purple);width:24px;border-radius:4px;
}
.nv-slide-arrow {
    position:absolute;top:50%;transform:translateY(-50%);z-index:10;
    width:44px;height:44px;background:rgba(0,0,0,.45);color:#fff;
    border:none;border-radius:50%;font-size:16px;cursor:pointer;
    transition:var(--transition);opacity:0;
    display:flex;align-items:center;justify-content:center;
}
.nv-slide:hover .nv-slide-arrow {opacity:1;}
.nv-slide-arrow:hover {background:var(--purple);color:#fff;}
.nv-slide-prev {left:16px;}
.nv-slide-next {right:16px;}

/* ===== 热播标签行 ===== */
.nv-hot-row {
    display:flex;gap:10px;flex-wrap:wrap;padding:18px 0 0;
}
.nv-hot-tag {
    padding:7px 20px;border:1px solid rgba(124,58,237,.25);color:var(--purple-h);
    border-radius:20px;font-size:12px;font-weight:500;transition:var(--transition);
    background:rgba(124,58,237,.04);
}
.nv-hot-tag:hover {
    background:var(--purple);color:#fff;border-color:var(--purple);
    box-shadow:0 2px 12px rgba(124,58,237,.25);
}

/* ===== 主体区 ===== */
.nv-main {padding:8px 0 64px;}

/* ===== 区块标题 ===== */
.nv-section {margin-bottom:40px;}
.nv-sec-head {
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:18px;padding-bottom:14px;
    border-bottom:1px solid var(--border);
}
.nv-sec-head h2 {
    font-size:20px;font-weight:800;color:var(--text);
    display:flex;align-items:center;gap:10px;
}
.nv-sec-head h2 .nv-sec-icon {
    font-size:20px;display:inline-flex;width:38px;height:38px;
    align-items:center;justify-content:center;
    background:var(--grad);color:#fff;border-radius:10px;
    box-shadow:0 2px 12px rgba(124,58,237,.2);
}
.nv-sec-links {display:flex;gap:8px;}
.nv-sec-links a {
    font-size:12px;color:var(--text-light);padding:5px 14px;
    border:1px solid var(--border);border-radius:6px;
    transition:var(--transition);
}
.nv-sec-links a:hover,.nv-sec-links a.active {
    color:var(--purple-h);border-color:var(--purple);
    background:var(--purple-dim);
}
.nv-sec-more {font-size:13px;color:var(--text-light);}
.nv-sec-more:hover {color:var(--purple);}

/* ===== 视频卡片网格 ===== */
.nv-grid {display:grid;grid-template-columns:repeat(6,1fr);gap:var(--gap);}
.nv-grid.col4 {grid-template-columns:repeat(4,1fr);}
.nv-grid.col3 {grid-template-columns:repeat(3,1fr);}
.nv-card {
    background:var(--bg-card);border-radius:var(--radius);
    overflow:hidden;border:1px solid var(--border);
    transition:var(--transition);box-shadow:0 1px 4px rgba(0,0,0,.03);
}
.nv-card:hover {
    transform:translateY(-6px);
    border-color:var(--purple);
    box-shadow:0 8px 32px rgba(0,0,0,.08),0 2px 8px rgba(124,58,237,.08);
}
.nv-card:hover .nv-card-name {color:var(--purple-h);}
.nv-cover {
    position:relative;aspect-ratio:3/4;overflow:hidden;background:#f0ecf8;
}
.nv-cover img {
    width:100%;height:100%;object-fit:cover;transition:transform .5s;
}
.nv-card:hover .nv-cover img {transform:scale(1.08);}
.nv-cover::after {
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.4) 100%);
    pointer-events:none;
}
.nv-tag {
    position:absolute;top:10px;right:10px;padding:3px 10px;
    background:var(--grad);color:#fff;font-size:10px;font-weight:700;
    border-radius:4px;z-index:2;box-shadow:0 2px 8px rgba(124,58,237,.2);
}
.nv-score {
    position:absolute;bottom:10px;left:10px;padding:3px 10px;
    background:rgba(0,0,0,.6);color:#fbbf24;font-size:11px;
    font-weight:700;border-radius:4px;z-index:2;
    backdrop-filter:blur(4px);
}
.nv-card-name {
    padding:12px 12px 4px;font-size:13px;font-weight:600;color:var(--text);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.nv-card-sub {
    padding:0 12px 12px;font-size:11px;color:var(--text-light);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.nv-card-sub .nv-star {color:var(--purple);}

/* ===== 边栏布局 ===== */
.nv-layout-side {display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start;}

/* ===== 侧边卡片 ===== */
.nv-side-card {
    background:var(--bg-card);border-radius:var(--radius);
    overflow:hidden;border:1px solid var(--border);margin-bottom:22px;
    box-shadow:0 1px 3px rgba(0,0,0,.02);
}
.nv-side-hd {
    padding:16px 20px;font-size:15px;font-weight:700;color:var(--text);
    border-bottom:1px solid var(--border-l);
    background:linear-gradient(90deg,rgba(124,58,237,.04),transparent);
}
.nv-side-bd {padding:4px 0;}
.nv-side-video {
    display:flex;gap:12px;padding:12px 16px;align-items:center;
    border-bottom:1px solid var(--border-l);transition:var(--transition);
}
.nv-side-video:last-child {border-bottom:none;}
.nv-side-video:hover {background:var(--bg-hover);}
.nv-side-video img {
    width:110px;height:70px;border-radius:6px;object-fit:cover;flex-shrink:0;
    border:1px solid var(--border);
}
.nv-side-video .nv-sv-info {flex:1;min-width:0;}
.nv-side-video .nv-sv-name {
    font-size:13px;font-weight:500;color:var(--text);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;
}
.nv-side-video .nv-sv-meta {font-size:11px;color:var(--text-light);}

.nv-side-rank {padding:0;}
.nv-side-rank li {
    display:flex;align-items:center;gap:12px;padding:11px 16px;
    border-bottom:1px solid var(--border-l);font-size:13px;transition:var(--transition);
}
.nv-side-rank li:last-child {border-bottom:none;}
.nv-side-rank li:hover {background:var(--bg-hover);}
.nv-side-rank .nv-rk-num {
    width:26px;height:26px;border-radius:6px;
    background:var(--bg);color:var(--text-light);
    font-size:12px;font-weight:700;display:flex;
    align-items:center;justify-content:center;flex-shrink:0;
}
.nv-side-rank li:nth-child(1) .nv-rk-num {
    background:var(--grad);color:#fff;box-shadow:0 2px 8px rgba(124,58,237,.25);
}
.nv-side-rank li:nth-child(2) .nv-rk-num {
    background:linear-gradient(135deg,#a78bfa,#7c3aed);color:#fff;
}
.nv-side-rank li:nth-child(3) .nv-rk-num {
    background:linear-gradient(135deg,#c4b5fd,#a78bfa);color:#fff;
}
.nv-side-rank .nv-rk-name {
    flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);
}
.nv-side-rank .nv-rk-meta {font-size:11px;color:var(--text-light);flex-shrink:0;}

/* ===== 面包屑 ===== */
.nv-bread {
    display:flex;align-items:center;gap:8px;padding:6px 0 8px;
    font-size:13px;color:var(--text-light);
}
.nv-bread a {color:var(--purple-h);}
.nv-bread span {color:var(--text-sub);}

/* ===== 筛选框 ===== */
.nv-filter {
    background:var(--bg-card);border-radius:var(--radius);
    border:1px solid var(--border);padding:18px 22px;margin-bottom:22px;
}
.nv-filter-row {
    display:flex;gap:12px;margin-bottom:10px;align-items:flex-start;
}
.nv-filter-row:last-child {margin-bottom:0;}
.nv-filter-label {
    font-size:13px;color:var(--text-sub);width:65px;flex-shrink:0;
    line-height:32px;font-weight:500;
}
.nv-filter-tags {flex:1;display:flex;flex-wrap:wrap;gap:8px;}
.nv-filter-tags a {
    padding:6px 16px;border-radius:6px;font-size:12px;color:var(--text-sub);
    background:var(--bg);border:1px solid var(--border);
    transition:var(--transition);
}
.nv-filter-tags a:hover {
    color:var(--purple-h);border-color:var(--purple);background:var(--purple-dim);
}
.nv-filter-tags a.active {
    background:var(--grad);color:#fff;border-color:transparent;
    box-shadow:0 2px 8px rgba(124,58,237,.2);
}

/* ===== 详情页 ===== */
.nv-det-layout {display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start;}
.nv-det-hero {
    background:var(--bg-card);border-radius:var(--radius-lg);
    border:1px solid var(--border);padding:30px;display:flex;gap:30px;
    box-shadow:0 1px 4px rgba(0,0,0,.03);
}
.nv-det-poster {
    width:250px;flex-shrink:0;border-radius:var(--radius);overflow:hidden;
    border:1px solid var(--border);
}
.nv-det-poster img {width:100%;}
.nv-det-info {flex:1;min-width:0;}
.nv-det-info h1 {
    font-size:28px;font-weight:800;color:var(--text);margin-bottom:16px;
}
.nv-det-meta {
    display:flex;flex-wrap:wrap;gap:6px 22px;color:var(--text-sub);
    font-size:13px;margin-bottom:16px;
}
.nv-det-meta .nv-label {color:var(--text-light);}
.nv-det-tags {
    display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;
}
.nv-det-tags span {
    padding:5px 16px;background:var(--purple-dim);color:var(--purple-h);
    border:1px solid rgba(124,58,237,.15);border-radius:20px;font-size:12px;font-weight:500;
}
.nv-det-blurb {
    color:var(--text-sub);line-height:1.9;font-size:13px;
    margin-bottom:20px;background:var(--bg);padding:16px;
    border-radius:var(--radius-sm);border-left:3px solid var(--purple);
}
.nv-det-btns {display:flex;gap:12px;}
.nv-btn {
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 28px;border-radius:var(--radius-sm);
    font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;
    border:none;text-decoration:none;
}
.nv-btn-primary {
    background:var(--grad);color:#fff;box-shadow:0 4px 14px rgba(124,58,237,.25);
}
.nv-btn-primary:hover {
    box-shadow:0 6px 24px rgba(124,58,237,.35);transform:translateY(-2px);color:#fff;
}
.nv-btn-outline {
    background:transparent;color:var(--purple-h);
    border:1px solid var(--purple);
}
.nv-btn-outline:hover {background:var(--purple-dim);}

/* ===== 内容区块 ===== */
.nv-content {
    background:var(--bg-card);border-radius:var(--radius);
    border:1px solid var(--border);padding:24px;margin-bottom:22px;
}
.nv-content h3 {
    font-size:16px;font-weight:700;color:var(--text);
    margin-bottom:16px;display:flex;align-items:center;gap:8px;
}
.nv-content h3::before {
    content:'';display:block;width:3px;height:18px;
    background:var(--grad);border-radius:2px;
}
.nv-content-text {line-height:2;color:var(--text-sub);font-size:13px;}

/* ===== 播放来源 ===== */
.nv-source-label {
    font-size:14px;color:var(--purple-h);font-weight:600;
    margin-bottom:10px;display:flex;align-items:center;gap:6px;
}
.nv-ep-list {
    display:grid;
    grid-template-columns:repeat(8,1fr);
    gap:8px;
}
.nv-ep-list a {
    padding:7px 0;
    text-align:center;
    background:var(--bg);
    border:1px solid var(--border);border-radius:6px;
    font-size:12px;color:var(--text-sub);transition:var(--transition);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.nv-ep-list a:hover {
    background:var(--purple-dim);border-color:var(--purple);color:var(--purple-h);
}
.nv-ep-list a.active {
    background:var(--grad);color:#fff;border-color:transparent;
    box-shadow:0 2px 8px rgba(124,58,237,.2);
}

/* ===== 线路切换标签 ===== */
.nv-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.nv-tab{
    display:inline-block;
    padding:8px 20px;background:var(--bg);
    border:1px solid var(--border);border-radius:6px;
    color:var(--text-sub);font-size:13px;cursor:pointer;
    transition:var(--transition);user-select:none;
}
.nv-tab:hover{color:var(--purple-h);border-color:var(--purple);}
.nv-tab.active{
    background:var(--grad);color:#fff;border-color:transparent;
    box-shadow:0 2px 8px rgba(124,58,237,.2);font-weight:600;
}
.nv-ep-panel{display:none;}
.nv-ep-panel.active{display:block;}

/* ===== 播放页 ===== */
.nv-play-layout {display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start;}
/* 播放器+工具栏 一体包裹 */
.nv-player-wrap {
    border-radius:var(--radius-lg);overflow:hidden;
    border:1px solid #222;
}
.nv-play-box {
    background:#000;overflow:hidden;
    aspect-ratio:16/9;
}
.nv-play-box iframe,.nv-play-box video {width:100%;height:100%;border:none;}
#MacPlayer {width:100%;height:100%;}
.nv-play-nav {
    background:var(--bg-card);border-radius:var(--radius);
    border:1px solid var(--border);padding:22px;margin-top:14px;
}
.nv-play-nav h3 {font-size:16px;font-weight:700;color:var(--text);margin-bottom:16px;}

/* ===== 播放器工具栏（黑底、拼接播放器） ===== */
.nv-play-tools {
    display:flex;flex-wrap:wrap;gap:8px;align-items:center;
    justify-content:space-around;
    background:#000;padding:10px 14px;
}
.nv-pt-btn {
    display:inline-flex;align-items:center;gap:4px;
    padding:7px 14px;border-radius:5px;font-size:12px;
    background:#1a1a1a;color:#aaa;
    border:1px solid #2a2a2a;
    cursor:pointer;transition:var(--transition);
    text-decoration:none;white-space:nowrap;
}
.nv-pt-btn:hover {background:#222;border-color:#444;color:#fff;}
.nv-pt-btn.nv-pt-report {color:#f87171;border-color:#3a1a1a;background:#1f1111;}
.nv-pt-btn.nv-pt-report:hover {background:#2a1515;border-color:#f87171;color:#ef4444;}
.nv-pt-btn.nv-pt-digg {min-width:52px;justify-content:center;}
.nv-pt-btn.nv-pt-prev,
.nv-pt-btn.nv-pt-next {background:var(--grad);color:#fff;border-color:transparent;}
.nv-pt-btn.nv-pt-prev:hover,
.nv-pt-btn.nv-pt-next:hover {box-shadow:0 4px 12px rgba(0,0,0,.3);color:#fff;}
.nv-pt-btn.nv-pt-disabled {
    background:#1a1a1a;color:#555;border:1px solid #2a2a2a;
    cursor:not-allowed;opacity:0.5;
}

/* ===== 搜索页 ===== */
.nv-search-hd {
    background:var(--bg-card);border-radius:var(--radius);
    border:1px solid var(--border);padding:26px;margin-bottom:22px;
}
.nv-search-hd h1 {font-size:20px;font-weight:800;margin-bottom:6px;color:var(--text);}
.nv-search-hd p {font-size:13px;color:var(--text-light);}
.nv-search-hd p b {color:var(--purple-h);}

/* ===== 分页 ===== */
.nv-pager {
    display:flex;align-items:center;justify-content:center;gap:6px;
    flex-wrap:wrap;padding:32px 0 8px;
}
.nv-pager a,.nv-pager .nv-pg-cur {
    display:inline-flex;align-items:center;justify-content:center;
    min-width:40px;height:40px;padding:0 12px;border-radius:8px;
    font-size:13px;background:var(--bg-card);color:var(--text-sub);
    border:1px solid var(--border);transition:var(--transition);
}
.nv-pager a:hover {
    border-color:var(--purple);color:var(--purple-h);
    background:var(--purple-dim);
}
.nv-pager .nv-pg-cur {
    background:var(--grad);color:#fff;border-color:transparent;
    font-weight:700;box-shadow:0 2px 8px rgba(124,58,237,.2);
}
.nv-pager .nv-pg-info {
    color:var(--text-light);font-size:12px;margin-left:8px;border:none;
    background:none;height:auto;min-width:auto;padding:0;
}

/* ===== 页脚 ===== */
.nv-footer {
    background:#1a1a2e;color:rgba(255,255,255,.4);
    padding:32px 0 24px;
}
.nv-footer .nv-f-links {
    display:flex;gap:22px;flex-wrap:wrap;justify-content:center;
    margin-bottom:18px;font-size:13px;
}
.nv-footer .nv-f-links a {color:rgba(255,255,255,.5);}
.nv-footer .nv-f-links a:hover {color:var(--purple);}
.nv-footer .nv-f-links .nv-f-sep {color:rgba(255,255,255,.15);}
.nv-footer .nv-f-info {
    text-align:center;font-size:12px;color:rgba(255,255,255,.3);line-height:2.2;
}
.nv-footer .nv-f-info p {margin:0;}
.nv-footer .nv-f-info a {color:rgba(255,255,255,.4);}
.nv-footer .nv-f-info a:hover {color:var(--purple);}

/* 返回顶部 */
.nv-btt {
    position:fixed;bottom:32px;right:28px;z-index:999;
    width:44px;height:44px;
    background:var(--grad);color:#fff;
    border:none;border-radius:50%;cursor:pointer;font-size:16px;
    box-shadow:0 4px 16px rgba(124,58,237,.25);
    transition:all .3s;
    opacity:0;visibility:hidden;transform:translateY(16px);
    display:flex;align-items:center;justify-content:center;
}
.nv-btt.show {opacity:1;visibility:visible;transform:translateY(0);}
.nv-btt:hover {box-shadow:0 6px 24px rgba(124,58,237,.35);transform:translateY(-3px);}

/* ===== 空状态 ===== */
.nv-empty {text-align:center;padding:64px 20px;color:var(--text-light);}
.nv-empty .nv-empty-icon {font-size:48px;margin-bottom:14px;}

/* ===== 类型标签云 ===== */
.nv-type-wrap {
    background:var(--bg-card);border-radius:var(--radius);
    border:1px solid var(--border);padding:20px 22px;margin-top:26px;
}
.nv-type-wrap h3 {
    font-size:16px;font-weight:700;color:var(--text);
    margin-bottom:16px;display:flex;align-items:center;gap:8px;
}
.nv-type-tags {display:flex;flex-wrap:wrap;gap:10px;}
.nv-type-tag {
    padding:8px 20px;background:var(--bg);
    border:1px solid var(--border);border-radius:20px;
    font-size:12px;color:var(--text-sub);transition:var(--transition);
}
.nv-type-tag:hover {
    background:var(--purple-dim);border-color:var(--purple);color:var(--purple-h);
}

/* ===== 频道分类4列布局 ===== */
.nv-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.nv-cat-block{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius);padding:24px;
}
.nv-cat-block h4{
    font-size:18px;font-weight:800;margin-bottom:16px;
    padding-bottom:12px;border-bottom:2px solid var(--purple);
    display:flex;align-items:center;gap:8px;
}
.nv-cat-block h4 a{color:var(--text);transition:var(--transition);}
.nv-cat-block h4 a:hover{color:var(--purple);}
.nv-cat-tags{display:flex;flex-wrap:wrap;gap:8px;}
.nv-cat-tag{
    padding:6px 14px;background:var(--bg);border:1px solid var(--border);
    border-radius:6px;font-size:13px;color:var(--text-sub);transition:var(--transition);
}
.nv-cat-tag:hover{color:var(--purple);border-color:var(--purple);background:var(--purple-dim);}

/* ========================================
   响应式
   ======================================== */

/* ---- 1200px ---- */
@media(max-width:1200px) {
    .nv-grid {grid-template-columns:repeat(5,1fr);}
    .nv-grid.col4 {grid-template-columns:repeat(3,1fr);}
    .nv-grid.col3 {grid-template-columns:repeat(2,1fr);}
    .nv-det-layout {grid-template-columns:1fr;}
    .nv-play-layout {grid-template-columns:1fr;}
    .nv-layout-side {grid-template-columns:1fr;}
    .nv-slide {height:240px;}
    .nv-ep-list {grid-template-columns:repeat(7,1fr);}
}

/* ---- 991px：平板 ---- */
@media(max-width:991px) {
    .container {padding:0 14px;}
    .nv-mbar {height:56px;}
    .nv-nav a {padding:0 12px;font-size:13px;}
    .nv-logo {font-size:20px;letter-spacing:0;}
    .nv-search input {width:150px;}
    .nv-cat-grid {grid-template-columns:repeat(2,1fr);}
    .nv-grid {grid-template-columns:repeat(4,1fr);gap:12px;}
    .nv-grid.col4 {grid-template-columns:repeat(3,1fr);}
    .nv-grid.col3 {grid-template-columns:repeat(2,1fr);}
    .nv-det-hero {flex-direction:column;align-items:center;text-align:center;}
    .nv-det-poster {width:180px;}
    .nv-det-btns {justify-content:center;}
    .nv-det-tags {justify-content:center;}
    .nv-det-meta {justify-content:center;}
    .nv-sec-head h2 {font-size:17px;}
    .nv-slide-cap {padding:44px 24px 20px;}
    .nv-slide-cap h3 {font-size:18px;}
    .nv-slide-arrow {opacity:1;width:36px;height:36px;font-size:14px;}
    .nv-btt {bottom:24px;right:18px;width:38px;height:38px;}
    .nv-ep-list {grid-template-columns:repeat(6,1fr);}
}

/* ---- 640px：手机 ---- */
@media(max-width:640px) {
    .container {padding:0 10px;}
    .nv-topbar {display:none;}
    .nv-mbar {height:52px;}
    .nv-logo {font-size:17px;letter-spacing:0;}
    .nv-logo span {padding:2px 5px;font-size:9px;}
    .nv-nav {display:none;}
    .nv-search {display:none;}
    .nv-menu-btn {display:flex;}
    .nv-mbar .container {gap:8px;}

    .nv-cat-grid {grid-template-columns:1fr;}
    .nv-hero .container {padding:0 8px;}
    .nv-slide {height:180px;border-radius:var(--radius);margin-top:14px;}
    .nv-slide-cap {padding:28px 14px 14px;}
    .nv-slide-cap h3 {font-size:15px;}
    .nv-slide-cap p {font-size:11px;}
    .nv-hot-row {padding:12px 0 0;gap:6px;}
    .nv-hot-tag {padding:5px 12px;font-size:11px;}

    .nv-main {padding:20px 0 44px;}
    .nv-section {margin-bottom:24px;}
    .nv-sec-head {margin-bottom:10px;padding-bottom:8px;}
    .nv-sec-head h2 {font-size:15px;}
    .nv-sec-head h2 .nv-sec-icon {width:30px;height:30px;font-size:16px;}
    .nv-sec-links a {font-size:11px;padding:4px 8px;}

    .nv-grid {grid-template-columns:repeat(3,1fr);gap:8px;}
    .nv-grid.col4,.nv-grid.col3 {grid-template-columns:repeat(2,1fr);}
    .nv-card-name {font-size:11px;padding:8px 8px 2px;}
    .nv-card-sub {font-size:10px;padding:0 8px 8px;}
    .nv-score {font-size:10px;}
    .nv-tag {font-size:9px;padding:2px 6px;}

    .nv-det-hero {padding:16px;gap:16px;}
    .nv-det-poster {width:130px;}
    .nv-det-info h1 {font-size:17px;margin-bottom:10px;}
    .nv-det-meta {font-size:11px;gap:4px 12px;}
    .nv-btn {padding:9px 20px;font-size:13px;}
    .nv-content {padding:16px;}
    .nv-play-nav {padding:14px;}

    .nv-filter {padding:12px;}
    .nv-filter-row {gap:6px;}
    .nv-filter-label {width:50px;font-size:11px;line-height:28px;}
    .nv-filter-tags a {padding:4px 10px;font-size:11px;}

    .nv-pager {padding:22px 0 4px;gap:4px;}
    .nv-pager a,.nv-pager .nv-pg-cur {min-width:34px;height:34px;padding:0 8px;font-size:12px;}

    .nv-footer {padding:20px 0 16px;}
    .nv-footer .nv-f-links {font-size:12px;gap:10px;}
    .nv-footer .nv-f-info {font-size:11px;}
    .nv-btt {bottom:18px;right:14px;width:36px;height:36px;font-size:14px;}
    .nv-ep-list {grid-template-columns:repeat(4,1fr);}
}

/* ---- 375px ---- */
@media(max-width:375px) {
    .nv-grid {grid-template-columns:repeat(2,1fr);gap:6px;}
    .nv-logo {font-size:15px;}
    .nv-det-poster {width:110px;}
    .nv-ep-list {grid-template-columns:repeat(3,1fr);}
}
