/**
 * 图片缩略图尺寸统一修复
 * 解决图片高度不一致导致的布局错乱问题
 * BossV Team - 2026-02-06
 *
 * Refactored 2026-02-08: reduced !important usage by using higher-specificity
 * selectors (double-class, element-qualified, :where()-free chains).
 * Only layout-critical overrides retain !important.
 */

/* ===== 防止双重 grid ===== */
/*
 * 核心修复：movie2/pro2 的 theme-site.css 将 .pic-list 设为
 * display:grid (最高 0,4,2)，同时 .movie-grid 也是 grid，
 * 造成双重嵌套导致缩略图宽度坍缩到几像素。
 *
 * 解决方案：让 .pic-list 在 .movie-grid 内变为 display:contents，
 * 使 <li> 直接成为 .movie-grid 的 grid 子项。
 * 重复类选择器提升优先级到 (0,6,0)，覆盖 theme-site.css 的 (0,4,2)。
 * 对 Netflix 等已使用 contents 的模板无影响（幂等操作）。
 * BossV Team - 2026-02-10
 */
.movie-grid > .pic-list.pic-list.pic-list.pic-list.pic-list,
[class~="movie-grid"] > [class~="pic-list"][class~="pic-list"][class~="pic-list"][class~="pic-list"][class~="pic-list"] {
    display: contents !important;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* .pic-list 变为 contents 后 gap 需由 .movie-grid 提供 */
/* :where() 零优先级，不覆盖模板自有 gap 设置 */
:where(.movie-grid:has(> .pic-list)),
:where([class~="movie-grid"]:has(> .pic-list)) {
    gap: 15px;
}

/*
 * clearfix 伪元素修复：.clearfix::before/::after 生成 content:"" display:table
 * 的伪元素，当 .movie-grid 同时有 clearfix 类时，伪元素变为 grid 子项，
 * 占据第一个和最后一个格子，导致"空格子"现象。
 * 同理 .container::before/::after 和 .row::before/::after。
 * BossV Team - 2026-02-10
 */
.movie-grid.clearfix::before,
.movie-grid.clearfix::after,
.movie-grid.container::before,
.movie-grid.container::after,
.movie-grid.row::before,
.movie-grid.row::after,
[class~="movie-grid"][class~="clearfix"]::before,
[class~="movie-grid"][class~="clearfix"]::after,
[class~="movie-grid"][class~="container"]::before,
[class~="movie-grid"][class~="container"]::after,
[class~="movie-grid"][class~="row"]::before,
[class~="movie-grid"][class~="row"]::after {
    display: none !important;
}

/*
 * 侧边栏 .pic-list 列数自适应：play-custom.css / theme-site.css 强制
 * .related-movies .pic-list 为 repeat(6, 1fr)，在 290px 侧边栏中
 * 每列只有 36px 导致缩略图变成窄条。
 * 用 auto-fill + minmax 让浏览器自动计算合适列数。
 * BossV Team - 2026-02-10
 */
.main-right .related-movies .pic-list.pic-list.pic-list.pic-list,
.main-right .layout-box.related-movies ul.pic-list.pic-list,
[class~="main-right"] [class~="related-movies"] [class~="pic-list"][class~="pic-list"][class~="pic-list"][class~="pic-list"],
[class~="main-right"] [class~="layout-box"][class~="related-movies"] ul[class~="pic-list"][class~="pic-list"] {
    grid-template-columns: repeat(3, 1fr) !important;
}

/* ===== 影片卡片图片 ===== */

/*
 * Specificity bump: repeat the attribute selector so we win over
 * single-class rules in individual templates without needing !important.
 */
.pic-img.pic-img,
.movie-card .poster.poster,
.poster-wrapper.poster-wrapper,
[class~="pic-img"][class~="pic-img"],
[class~="poster-wrapper"][class~="poster-wrapper"] {
    position: relative;
    width: 100%;
    aspect-ratio: 2/3;
    overflow: hidden;
    border-radius: 6px;
    background: #f0f0f0;
    display: block;
    min-height: 300px;
}

.pic-img img,
.movie-card img,
.poster-wrapper img,
[class~="pic-img"] img,
[class~="poster-wrapper"] img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 确保图片容器有固定高度 */
.movie-grid li,
.movie-card,
[class~="movie-grid"] li,
[class~="movie-card"] {
    display: flex;
    flex-direction: column;
}

.movie-grid li .pic-img,
.movie-card .pic-img,
[class~="movie-grid"] li [class~="pic-img"],
.movie-card [class~="pic-img"] {
    flex-shrink: 0;
}

/* ===== 侧边栏排行榜 - 水平紧凑布局，覆盖卡片模式 ===== */
.sidebar-card .pic-img.pic-img,
.monthly-ranking .pic-img.pic-img,
.side-panel .pic-img.pic-img {
    aspect-ratio: auto;
    min-height: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    width: auto;
    background: transparent;
}

.sidebar-card .pic-img img,
.monthly-ranking .pic-img img,
.side-panel .pic-img img {
    position: relative;
    width: 90px;
    height: 130px;
    flex-shrink: 0;
}

/* ===== 新闻卡片图片 ===== */
.news-pic.news-pic,
.news-card .thumbnail.thumbnail,
[class~="news-pic"][class~="news-pic"],
.news-card [class*="pic"],
.news-list .news-thumb.news-thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: #f0f0f0;
    display: block;
}

.news-pic img,
.news-card .thumbnail img,
[class~="news-pic"] img,
.news-list .news-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 侧边栏缩略图（较小） */
.play-sidebar .news-thumb.news-thumb,
.sidebar .news-thumb.news-thumb {
    aspect-ratio: 4/3;
}

/* 侧边栏缩略图 - 60px x 90px 标准尺寸 (BossV Team - 2026-02-07) */
/* Attribute selector for class prefix compatibility */
[class~="sidebar-card"] .news-thumb,
[class~="sidebar-card"] .thumbnail,
[class~="sidebar-block"] .news-thumb,
[class~="sidebar-box"] .news-thumb,
[class~="sidebar-box"] .thumbnail {
    width: 60px;
    height: 90px;
    flex-shrink: 0;
    border-radius: 4px;
    overflow: hidden;
    display: block;
}

[class~="sidebar-card"] .news-thumb img,
[class~="sidebar-card"] .thumbnail img,
[class~="sidebar-block"] .news-thumb img,
[class~="sidebar-box"] .news-thumb img,
[class~="sidebar-box"] .thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ===== 播放页海报 ===== */
.movie-poster,
.play-poster,
.movie-poster-large,
.detail-poster,
.nf-movie-poster,
.movie-poster-wrap,
.movie-poster-wrapper,
.poster-frame,
[class~="movie-poster"],
[class~="play-poster"],
[class~="movie-poster-large"],
[class~="detail-poster"],
[class~="nf-movie-poster"],
[class~="movie-poster-wrap"],
[class~="movie-poster-wrapper"],
[class~="poster-frame"] {
    aspect-ratio: 2/3;
    overflow: hidden;
    border-radius: 8px;
    display: block;
    min-width: 0;
    max-width: 100%;
}

.movie-poster img,
.play-poster img,
.movie-poster-large img,
.detail-poster img,
.nf-movie-poster img,
.movie-poster-wrap img,
.movie-poster-wrapper img,
.poster-frame img,
[class~="movie-poster"] img,
[class~="play-poster"] img,
[class~="movie-poster-large"] img,
[class~="detail-poster"] img,
[class~="nf-movie-poster"] img,
[class~="movie-poster-wrap"] img,
[class~="movie-poster-wrapper"] img,
[class~="poster-frame"] img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 播放页详情网格布局修复 - 确保封面有足够宽度 */
/* !important retained: must override inline grid settings from templates */
.movie-detail,
.movie-detail-grid,
[class~="movie-detail"],
[class~="movie-detail-grid"] {
    grid-template-columns: minmax(120px, 220px) 1fr !important;
}

.movie-detail > *,
.movie-detail-grid > *,
[class~="movie-detail"] > *,
[class~="movie-detail-grid"] > * {
    min-width: 0;
}

/* ===== 搜索结果图片 ===== */
.search-result .pic-img,
.search-result .poster,
.search-card img {
    aspect-ratio: 2/3;
    object-fit: cover;
}

/* ===== Lazyload 占位符修复 ===== */
img.lazyload,
img[data-src],
img[loading="lazy"] {
    aspect-ratio: 2/3;
    object-fit: cover;
}

.news-pic img.lazyload,
.news-pic img[data-src],
.news-pic img[loading="lazy"] {
    aspect-ratio: 16/10;
}

/* ===== 防止图片溢出容器 ===== */
.pic-list li,
.movie-grid li,
.news-grid > div,
.news-list li {
    overflow: hidden;
}

.pic-list li img,
.movie-grid li img {
    max-width: none;
    width: 100%;
}

/* ===== 响应式调整 ===== */
@media (max-width: 768px) {
    /* !important retained: override desktop grid that uses !important above */
    .movie-detail,
    .movie-detail-grid,
    [class~="movie-detail"],
    [class~="movie-detail-grid"] {
        grid-template-columns: 1fr !important;
    }

    .movie-poster,
    .play-poster,
    .movie-poster-large,
    .detail-poster,
    .nf-movie-poster,
    .movie-poster-wrap,
    .movie-poster-wrapper,
    .poster-frame {
        max-width: 200px;
        min-width: 0;
        margin-left: auto;
        margin-right: auto;
    }

    .pic-img.pic-img,
    .movie-card .poster.poster,
    .poster-wrapper.poster-wrapper,
    [class~="pic-img"][class~="pic-img"],
    [class~="poster-wrapper"][class~="poster-wrapper"] {
        min-height: 240px;
    }
}

@media (max-width: 480px) {
    .movie-poster,
    .play-poster,
    .movie-poster-large,
    .detail-poster,
    .nf-movie-poster,
    .movie-poster-wrap,
    .movie-poster-wrapper,
    .poster-frame {
        max-width: 160px;
        min-width: 0;
        margin-left: auto;
        margin-right: auto;
    }

    .pic-img.pic-img,
    .movie-card .poster.poster,
    .poster-wrapper.poster-wrapper,
    [class~="pic-img"][class~="pic-img"],
    [class~="poster-wrapper"][class~="poster-wrapper"] {
        min-height: 200px;
    }
}

/* BP1模板特殊处理：确保列表页缩略图有足够高度 */
.movie-grid li .pic-img.pic-img,
.related-grid li .pic-img.pic-img,
.hot-rank-content li .pic-img.pic-img {
    min-height: 300px;
}

@media (max-width: 768px) {
    .movie-grid li .pic-img.pic-img,
    .related-grid li .pic-img.pic-img,
    .hot-rank-content li .pic-img.pic-img {
        min-height: 240px;
    }
}

/* K1和Netflix模板特殊处理 */
.movie-card .poster.poster,
.movie-grid .pic-img.pic-img {
    min-height: 300px;
}

/* ===== 播放页标题和别名自动换行 ===== */
/*
 * 确保影片标题和别名在容器宽度不足时自动换行，
 * 而不是溢出或被截断。覆盖所有模板的类名。
 */
.movie-title,
.movie-title-large,
.movie-title-main,
.nf-movie-title,
.detail-title,
.player-title,
.movie-alias,
.movie-alias-text,
.nf-movie-alias,
.movie-alias-info,
.alias-value,
.subtitle,
.detail-meta-item,
.info-list li,
.detail-meta li,
.plot-info-list li {
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: normal;
}
