/* 50套影视模板通用基础样式：避免 body 使用 card-* / mobile-* 组件类冲突 */
:root{--bg:#f5f7fb;--card:#fff;--text:#102033;--muted:#69758a;--line:#e5eaf3;--accent:#2563eb;--accent2:#f59e0b;--radius:18px;--shadow:0 18px 45px rgba(15,23,42,.10)}
*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;min-width:320px;font-family:Arial,"Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg);overflow-x:hidden}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.site-wrap{width:100%;min-height:100vh}.site-main,.header-inner,.sub-nav,.footer-inner{width:min(1280px,94vw);margin-left:auto;margin-right:auto}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{min-height:76px;display:flex;align-items:center;gap:24px}.brand{display:flex;flex-direction:column;font-weight:900;color:var(--accent);white-space:nowrap}.brand span{font-size:25px;line-height:1}.brand small{font-size:12px;color:var(--muted);margin-top:4px}.main-nav,.sub-nav{display:flex;gap:8px;align-items:center;overflow:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar,.sub-nav::-webkit-scrollbar,.drag-scroll::-webkit-scrollbar{display:none}.main-nav a,.sub-nav a{padding:10px 14px;border-radius:999px;color:var(--text);font-weight:700;white-space:nowrap}.main-nav a.active,.main-nav a:hover,.sub-nav a:hover,.filter-strip a.active{background:var(--accent);color:#fff}.top-search{margin-left:auto;display:flex;align-items:center;background:#eef3fb;border:1px solid var(--line);border-radius:999px;overflow:hidden;min-width:280px}.top-search input{border:0;background:transparent;outline:0;padding:12px 14px;flex:1}.top-search button,.icon-btn{border:0;background:var(--accent);color:#fff;font-weight:800;cursor:pointer}.top-search button{width:46px;align-self:stretch}.icon-btn{display:none;width:42px;height:42px;border-radius:50%}.sub-nav{padding:0 0 14px}.site-main{padding:28px 0 70px}.soft-line,.breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:14px;margin:0 0 18px}.tpl-hero{position:relative;min-height:320px;border-radius:var(--radius);overflow:hidden;background:#111827;color:#fff;box-shadow:var(--shadow);margin-bottom:28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,48%);align-items:end}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.42;filter:blur(2px) saturate(1.1)}.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.15))}.hero-content{position:relative;z-index:1;padding:48px}.hero-content span,.hero-label{display:inline-flex;background:rgba(255,255,255,.14);padding:8px 13px;border-radius:999px;font-weight:800}.hero-content h1{font-size:44px;line-height:1.1;margin:18px 0 12px}.hero-content p{max-width:560px;color:rgba(255,255,255,.82);line-height:1.8}.hero-actions,.detail-actions{display:flex;gap:12px;flex-wrap:wrap}.btn-primary,.btn-soft,.watch-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:999px;font-weight:900}.btn-primary{background:var(--accent);color:#fff}.btn-soft{background:#edf2f7;color:var(--accent)}.hero-strip{position:relative;z-index:2;display:flex;gap:16px;overflow:auto;padding:0 26px 32px 0}.tpl-section,.recommend-lunli,.rank-panel,.search-landing{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:24px}.section-head,.rank-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-head h2,.rank-head h3{margin:0;font-size:26px}.section-head a,.rank-head a{color:var(--accent);font-weight:900}.vod-collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}.vod-collection.row-scroll{display:flex;overflow:auto;padding-bottom:6px}.row-scroll .vod-card{min-width:160px}.vod-card{min-width:0;color:var(--text)}.card-poster{display:block}.poster-img{position:relative;aspect-ratio:2/3;background:#edf2f7;border-radius:14px;overflow:hidden}.poster-img img{width:100%;height:100%;object-fit:cover}.poster-img em,.poster-img b{position:absolute;top:8px;z-index:2;border-radius:999px;padding:4px 8px;font-size:12px;font-style:normal;font-weight:900}.poster-img em{left:8px;background:rgba(0,0,0,.65);color:#fff}.poster-img b{right:8px;background:var(--accent2);color:#111}.card-poster strong,.card-app strong{display:block;margin-top:10px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-poster span,.card-app small{display:block;color:var(--muted);font-size:13px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-pic{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#e5e7eb;color:#9ca3af;font-size:12px}.card-media,.card-wide{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:16px;padding:12px;overflow:hidden}.card-media img,.card-wide img{width:120px;height:160px;object-fit:cover;border-radius:12px}.card-media strong,.card-wide strong{display:block;font-size:18px;margin-bottom:8px}.card-media em,.card-wide em{display:block;font-style:normal;color:var(--muted);margin-bottom:8px}.card-media p,.card-wide p{color:var(--muted);line-height:1.65;margin:0}.card-rank{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.card-rank b,.rank-item span{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:10px;background:var(--accent);color:#fff}.card-rank strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-rank span{color:var(--muted);font-size:13px}.card-rank em{font-style:normal;color:var(--accent2)}.card-app{display:block;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);border-radius:16px;padding:8px;color:inherit}.card-app img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:12px}.card-simple{display:block;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--card)}.card-simple strong,.card-simple span,.card-simple em{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-flip{position:relative;display:block;min-height:260px;perspective:800px}.flip-front,.flip-back{position:absolute;inset:0;border-radius:16px;overflow:hidden;backface-visibility:hidden;transition:.35s}.flip-front img{width:100%;height:100%;object-fit:cover}.flip-front strong{position:absolute;left:10px;bottom:10px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6)}.flip-back{background:var(--accent);color:#fff;padding:18px;transform:rotateY(180deg)}.card-flip:hover .flip-front{transform:rotateY(180deg)}.card-flip:hover .flip-back{transform:rotateY(360deg)}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.rank-panel{align-self:start;position:sticky;top:96px}.rank-list{display:grid;gap:2px}.rank-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.rank-item strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-item em{font-style:normal;color:var(--muted);font-size:13px}.filter-strip{display:flex;gap:10px;overflow:auto;background:var(--card);border:1px solid var(--line);padding:12px;border-radius:var(--radius);margin-bottom:20px}.filter-strip a{padding:9px 14px;border-radius:999px;background:#f1f5f9;white-space:nowrap;font-weight:700}.pagination{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.pagination a,.pagination span{padding:9px 13px;border-radius:10px;background:var(--card);border:1px solid var(--line)}.pagination a.active{background:var(--accent);color:#fff}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.detail-hero{display:grid;grid-template-columns:220px minmax(0,1fr) 130px;gap:24px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.detail-poster{position:relative}.detail-poster img{width:220px;aspect-ratio:2/3;object-fit:cover;border-radius:16px}.detail-poster span{position:absolute;left:10px;bottom:10px;background:var(--accent);color:#fff;border-radius:999px;padding:6px 10px}.detail-info h1{font-size:36px;margin:10px 0}.detail-tags{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.detail-tags span{background:#eef2f7;border-radius:999px;padding:7px 10px;white-space:nowrap}.detail-intro,.detail-meta p,.article-text{line-height:1.85;color:var(--muted)}.score-box{text-align:center;background:#f8fafc;border-radius:16px;padding:18px}.score-box strong{font-size:38px;color:var(--accent)}.episode-grid{display:flex;gap:10px;overflow:auto}.episode-grid a{min-width:72px;text-align:center;border:1px solid var(--line);border-radius:12px;padding:10px;background:#f8fafc}.episode-grid a.active{background:var(--accent);color:#fff}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.player-box{position:relative;background:#000;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/9}.video-player{width:100%;height:100%;background:#000}.big-play{position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:28px;align-items:center;justify-content:center}.player-empty{height:100%;display:flex;align-items:center;justify-content:center;color:#fff}.play-vod-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:18px}.play-vod-card img{width:86px;height:120px;object-fit:cover;border-radius:12px}.share-row{display:flex;gap:8px;align-items:center;margin:14px 0;flex-wrap:wrap}.share-btn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 12px}.search-landing{text-align:center;padding:44px}.search-landing h1{font-size:36px}.search-landing form{display:flex;max-width:620px;margin:20px auto;background:#eef3fb;border:1px solid var(--line);border-radius:999px;overflow:hidden}.search-landing input{flex:1;border:0;background:transparent;outline:0;padding:15px 18px}.search-landing button{border:0;background:var(--accent);color:#fff;padding:0 24px;font-weight:900}.quick-tags{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.quick-tags a{background:#eef2f7;border-radius:999px;padding:8px 13px}.site-footer{background:#0f172a;color:#dbeafe;padding:34px 0;margin-top:40px}.footer-links{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0}.mobile-bottom{display:none}.back-top{position:fixed;right:22px;bottom:28px;width:44px;height:44px;border:0;border-radius:50%;background:var(--accent);color:#fff;opacity:0;pointer-events:none}.back-top.show{opacity:1;pointer-events:auto}.mobile-drawer,.drawer-mask,.mobile-search-panel{display:none}.drawer-mask.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60}.mobile-drawer.show{display:block;position:fixed;top:0;bottom:0;right:0;width:min(320px,86vw);background:var(--card);z-index:70;padding:20px;box-shadow:var(--shadow)}.mobile-drawer a{display:block;padding:14px;border-bottom:1px solid var(--line)}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head button{border:0;background:#111827;color:#fff;border-radius:50%;width:34px;height:34px}.mobile-search-panel.show{display:block;padding:12px;background:var(--card);border-top:1px solid var(--line)}.mobile-search-panel form{display:flex;gap:8px}.mobile-search-panel input{flex:1;padding:12px;border:1px solid var(--line);border-radius:12px}.mobile-search-panel button{border:0;background:var(--accent);color:#fff;border-radius:12px;padding:0 16px}.empty-state{padding:30px;border-radius:var(--radius);background:var(--card);border:1px dashed var(--line);color:var(--muted);text-align:center}
/* Layout variations */
.layout-stream .tpl-hero,.layout-netflix .tpl-hero,.layout-cover .tpl-hero{min-height:420px}.layout-rank .recommend-lunli .vod-collection,.layout-matrix .vod-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-feed .tpl-hero,.layout-infoflow .tpl-hero{grid-template-columns:1fr}.layout-waterfall .vod-collection,.masonry-layout .vod-collection{columns:5 170px;display:block}.layout-waterfall .vod-card,.masonry-layout .vod-card{display:inline-block;width:100%;margin:0 0 18px}.layout-textlist .vod-collection,.layout-seofast .vod-collection,.layout-speed .vod-collection{grid-template-columns:1fr}.layout-threecol .site-main{display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:20px}.layout-app .site-main,.layout-miniapp .site-main{max-width:780px}.layout-largefont{font-size:20px}.layout-largefont .vod-card strong{font-size:22px}.layout-mono{filter:grayscale(.96)}.layout-blackgold,.layout-netflix,.layout-tech,.layout-cinema{--bg:#070b13;--card:#111827;--text:#f8fafc;--muted:#94a3b8;--line:#263244;--accent:#d6a617;--accent2:#facc15}.layout-netflix{--accent:#e50914}.layout-tech{--accent:#7c3aed;--accent2:#22d3ee}.layout-cinema{--accent:#dc2626}.layout-bluewhite,.layout-classic{--accent:#1677ff}.layout-clean,.layout-modern{--bg:#f8fafc;--card:#fff}.layout-blackgold .top-search,.layout-netflix .top-search,.layout-tech .top-search,.layout-cinema .top-search{background:#0b1220}.layout-blackgold .filter-strip a,.layout-netflix .filter-strip a,.layout-tech .filter-strip a{background:#1f2937}.layout-blackgold .site-header,.layout-netflix .site-header,.layout-tech .site-header,.layout-cinema .site-header{background:rgba(7,11,19,.88)}
@media(max-width:1080px){.two-col,.detail-layout,.play-layout,.detail-hero{grid-template-columns:1fr}.content-side,.detail-side,.player-side{position:static}.tpl-hero{grid-template-columns:1fr}.hero-strip{padding:0 20px 24px}.top-search{display:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center}.main-nav{display:none}.sub-nav{padding:10px 0}.site-main,.header-inner,.sub-nav,.footer-inner{width:calc(100vw - 20px)}}
@media(max-width:720px){.site-main{padding-bottom:86px}.header-inner{min-height:60px;gap:10px}.brand span{font-size:20px}.brand small{display:none}.tpl-hero{border-radius:16px;min-height:300px}.hero-content{padding:28px 18px}.hero-content h1{font-size:30px}.vod-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collection-media,.collection-feed,.collection-info{grid-template-columns:1fr}.card-media,.card-wide{grid-template-columns:94px minmax(0,1fr);gap:12px}.card-media img,.card-wide img{width:94px;height:126px}.section-head h2{font-size:22px}.tpl-section,.recommend-lunli,.rank-panel,.search-landing{padding:16px;border-radius:16px}.detail-hero{display:block}.detail-poster img{width:150px}.detail-info h1{font-size:28px}.score-box{margin-top:14px}.mobile-bottom{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(15,23,42,.10)}.mobile-bottom a{padding:8px 4px;text-align:center;font-size:12px;color:var(--muted)}.mobile-bottom span{display:block;font-size:18px;color:var(--accent)}.layout-blackgold .mobile-bottom,.layout-netflix .mobile-bottom,.layout-tech .mobile-bottom,.layout-cinema .mobile-bottom{background:#0b1220}.layout-waterfall .vod-collection,.masonry-layout .vod-collection{columns:2 140px}.search-landing form{border-radius:14px}.search-landing{padding:26px 16px}.search-landing h1{font-size:26px}}

body.tpl-02{--bg:#0c1220;--card:#141b2c;--text:#f8fafc;--muted:#9ca3af;--accent:#e50914;--accent2:#facc15;}
body.tpl-02 .tpl-hero{border-radius:18px}

/* ===== movie card layout emergency fix start ===== */

/* 修复部分模板卡片被挤成细长竖列 */
.vod-collection,
.vod-grid,
.video-grid,
.movie-grid,
.poster-grid,
.card-grid,
.cards-grid,
.cards,
.module-list,
.module-items,
.list-grid,
.recommend-list,
.lunli-cards,
.panel-lunli .vod-collection,
.section-body .vod-collection {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
    gap: 18px !important;
    align-items: start !important;
}

/* 横向信息流类模块，避免被强行挤窄 */
.feed-list,
.info-list,
.update-list,
.news-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

/* 单个影视卡片最小宽度，防止文字一字一行 */
.vod-card,
.movie-card,
.video-card,
.poster-card,
.card-poster,
.card-app,
.card-media,
.module-item,
.vod-item,
.item-poster,
.list-item {
    min-width: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    overflow: hidden !important;
    writing-mode: horizontal-tb !important;
}

/* 海报图片统一比例，避免图片撑坏布局 */
.vod-card img,
.movie-card img,
.video-card img,
.poster-card img,
.card-poster img,
.card-app img,
.card-media img,
.module-item img,
.vod-item img,
.item-poster img,
.poster-img img,
.thumb img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 2 / 3 !important;
    object-fit: cover !important;
    border-radius: 10px !important;
}

/* 横版封面模块不强制竖版 */
.hero img,
.banner img,
.swiper img,
.slide img,
.cover-wide img {
    aspect-ratio: auto !important;
}

/* 标题、描述、年份、地区禁止竖排 */
.vod-card *,
.movie-card *,
.video-card *,
.poster-card *,
.card-poster *,
.card-app *,
.card-media *,
.module-item *,
.vod-item *,
.item-poster * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

/* 标题最多两行 */
.vod-card strong,
.vod-card h3,
.vod-card h4,
.movie-card strong,
.movie-card h3,
.movie-card h4,
.video-card strong,
.video-card h3,
.video-card h4,
.poster-card strong,
.poster-card h3,
.poster-card h4,
.card-title,
.vod-title,
.movie-title,
.video-title,
.title {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.35 !important;
    min-height: auto !important;
}

/* 简介、年份、地区不要把卡片拉很高 */
.vod-card p,
.movie-card p,
.video-card p,
.poster-card p,
.card-desc,
.vod-desc,
.desc,
.summary,
.meta,
.info,
.small,
.vod-meta {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.45 !important;
}

/* 推荐影视区域优先修复 */
.recommend-lunli,
.panel-lunli,
.section-recommend,
.section-lunli,
.home-recommend {
    overflow: visible !important;
}

.recommend-lunli .vod-collection,
.panel-lunli .vod-collection,
.section-recommend .vod-collection,
.section-lunli .vod-collection,
.home-recommend .vod-collection {
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)) !important;
}

/* PC 主体不要偏左 */
.site-wrap,
.container,
.wrap,
.main-wrap,
.page-wrap,
.layout,
.content-wrap {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* PC 双栏布局 */
.main-grid,
.content-grid,
.layout-grid,
.home-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 300px !important;
    gap: 24px !important;
    align-items: start !important;
}

/* 排行榜保持正常列表，不参与海报网格 */
.rank-list,
.ranking-list,
.hot-rank,
.today-rank {
    display: block !important;
}

.rank-list li,
.ranking-list li,
.hot-rank li,
.today-rank li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    writing-mode: horizontal-tb !important;
}

/* 移动端两列，详情和播放页不挤压 */
@media (max-width: 768px) {
    .site-wrap,
    .container,
    .wrap,
    .main-wrap,
    .page-wrap,
    .layout,
    .content-wrap {
        max-width: none !important;
        width: auto !important;
        margin-left: 12px !important;
        margin-right: 12px !important;
    }

    .main-grid,
    .content-grid,
    .layout-grid,
    .home-grid {
        display: block !important;
    }

    .vod-collection,
    .vod-grid,
    .video-grid,
    .movie-grid,
    .poster-grid,
    .card-grid,
    .cards-grid,
    .cards,
    .module-list,
    .module-items,
    .list-grid,
    .recommend-list,
    .lunli-cards,
    .panel-lunli .vod-collection,
    .section-body .vod-collection {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    .vod-card img,
    .movie-card img,
    .video-card img,
    .poster-card img,
    .card-poster img,
    .card-app img,
    .module-item img,
    .vod-item img {
        aspect-ratio: 2 / 3 !important;
    }
}

@media (max-width: 420px) {
    .vod-collection,
    .vod-grid,
    .video-grid,
    .movie-grid,
    .poster-grid,
    .card-grid,
    .cards-grid,
    .cards,
    .module-list,
    .module-items,
    .list-grid,
    .recommend-list,
    .lunli-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* ===== movie card layout emergency fix end ===== */
