/* ===================================================
   拾光影库 · 详情页（宽度 1920px）
   =================================================== */

.detail-wrap {
  max-width:1920px;
  width:100%;
  margin:20px auto;
  padding:0 30px;
  box-sizing:border-box;
}

/* 顶部信息卡片 */
.detail-top {
  background:#fff;
  border-radius:8px;
  padding:24px;
  display:flex;
  gap:24px;
  margin-bottom:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.detail-poster { position:relative; flex:0 0 auto; }
.detail-poster img {
  width:200px;
  height:280px;
  object-fit:cover;
  border-radius:6px;
  display:block;
}
.poster-badges {
  position:absolute;
  top:8px;
  right:8px;
  display:flex;
  gap:4px;
}
.badge {
  background:rgba(42,164,97,.95);
  color:#fff;
  padding:2px 8px;
  border-radius:3px;
  font-size:11px;
  font-weight:700;
}
.badge.hd { background:rgba(58,123,213,.95); }
.badge.dv { background:linear-gradient(135deg,#9b59b6,#8e44ad); }

.detail-info { flex:1; min-width:0; }
.detail-info h1 {
  font-size:24px;
  color:#222;
  margin:0 0 4px;
  font-weight:700;
  line-height:1.3;
}
.detail-info h1 .year {
  font-size:16px;
  color:#888;
  font-weight:400;
}
.en-title {
  color:#999;
  font-size:13.5px;
  margin-bottom:12px;
  font-style:italic;
}
.meta-line {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
  font-size:13px;
  color:#666;
}
.meta-line span {
  background:#f5f6f8;
  padding:3px 10px;
  border-radius:12px;
  white-space:nowrap;
}
.synopsis {
  color:#555;
  font-size:14px;
  line-height:1.75;
  margin-bottom:16px;
}
.action-row { display:flex; gap:10px; }
.btn-fav {
  padding:7px 18px;
  border:1px solid #ff4757;
  background:#fff;
  color:#ff4757;
  border-radius:20px;
  font-size:13.5px;
  cursor:pointer;
  transition:.2s;
}
.btn-fav:hover { background:#ff4757; color:#fff; }

.detail-score {
  flex:0 0 auto;
  width:120px;
  text-align:right;
  border-left:1px solid #f0f0f0;
  padding-left:18px;
}
.imdb-score .num { font-size:26px; font-weight:700; color:#222; }
.imdb-score .label { font-size:12px; color:#999; }
.rating-star { font-size:30px; margin:6px 0; }
.douban { font-size:12px; color:#999; }
.douban .db-num { font-size:14px; color:#333; font-weight:600; }
.douban .db-tip { font-size:12px; color:#999; margin-top:4px; }

.detail-score .imdb-score,
.detail-score .douban {
  text-decoration:none;
  color:inherit;
  display:block;
  transition:.2s;
  border-radius:6px;
  padding:4px 0;
  cursor:pointer;
}
.detail-score .imdb-score:hover,
.detail-score .douban:hover { background:#f5f6f8; }
.detail-score .imdb-score:hover .label,
.detail-score .douban:hover .db-num { color:#2aa461; }

/* 主体两栏 */
.detail-body {
  display:grid;
  grid-template-columns:minmax(0, 1fr) 360px;
  gap:16px;
  align-items:start;
}
.detail-main { min-width:0; }
.detail-side { min-width:0; }

/* 通用区块 */
.detail-section {
  background:#fff;
  border-radius:8px;
  padding:22px;
  margin-bottom:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.detail-section:last-child { margin-bottom:0; }

.section-head { margin-bottom:16px; }
.section-head h2 {
  font-size:17px;
  color:#222;
  margin:0;
  border-left:4px solid #2aa461;
  padding-left:12px;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}
.section-head h2 .count {
  font-size:13px;
  color:#999;
  font-weight:400;
}

/* 播放 */
.play-list { display:flex; flex-wrap:wrap; gap:10px; }
.play-btn {
  display:inline-block;
  padding:8px 18px;
  background:#2aa461;
  color:#fff;
  border-radius:6px;
  font-size:13.5px;
  transition:.2s;
}
.play-btn:hover {
  background:#239154;
  transform:translateY(-1px);
}

/* 资源列表 */
.res-group {
  margin-bottom:16px;
  background:#fff;
  border:1px solid #ebedf0;
  border-radius:8px;
  overflow:hidden;
}
.res-group:last-child { margin-bottom:0; }
.res-group-title {
  background:#f7f9fc;
  color:#2c6ed5;
  font-weight:700;
  font-size:14.5px;
  padding:12px 18px;
  border-bottom:1px solid #ebedf0;
}
.res-table {
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
  background:#fff;
}
.res-table thead th {
  text-align:left;
  padding:10px 18px;
  background:#fafbfc;
  color:#666;
  font-weight:600;
  border-bottom:1px solid #eef0f3;
  font-size:13px;
}
.res-table tbody td {
  padding:14px 18px;
  border-bottom:1px solid #f2f4f7;
  color:#333;
  vertical-align:middle;
}
.res-table tbody tr:last-child td { border-bottom:0; }
.res-table tbody tr:hover { background:#f9fcff; }

.col-name { width:auto; word-break:break-all; }
.col-size { width:110px; color:#888; font-size:13px; white-space:nowrap; }
.col-act  { width:80px; text-align:center; }

.res-name-link { color:#333; cursor:pointer; transition:.2s; }
.res-name-link:hover .res-name { color:#2aa461; text-decoration:underline; }
.res-name { color:#333; word-break:break-all; line-height:1.5; }

.btn-act {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:6px;
  border:0;
  cursor:pointer;
  transition:.2s;
  text-decoration:none;
  padding:0;
}
.btn-act svg { display:block; }

.btn-magnet { background:#ffe8e8; color:#e74c3c; }
.btn-magnet:hover { background:#e74c3c; color:#fff; }
.btn-pan-baidu   { background:#e5ecff; color:#2932e1; }
.btn-pan-baidu:hover { background:#2932e1; color:#fff; }
.btn-pan-quark   { background:#e5f0ff; color:#2e7be5; }
.btn-pan-quark:hover { background:#2e7be5; color:#fff; }
.btn-pan-ali     { background:#fff0e6; color:#ff6a00; }
.btn-pan-ali:hover { background:#ff6a00; color:#fff; }
.btn-pan-tianyi  { background:#e8f4ff; color:#0a7cff; }
.btn-pan-tianyi:hover { background:#0a7cff; color:#fff; }
.btn-pan-115     { background:#e6f7e6; color:#27ae60; }
.btn-pan-115:hover { background:#27ae60; color:#fff; }
.btn-pan-thunder { background:#e6f0ff; color:#3498db; }
.btn-pan-thunder:hover { background:#3498db; color:#fff; }
.btn-normal { background:#e4f7ed; color:#2aa461; }
.btn-normal:hover { background:#2aa461; color:#fff; }

/* 演职人员 */
.cast-row {
  display:flex;
  gap:14px;
  overflow-x:auto;
  padding-bottom:8px;
  scrollbar-width:thin;
}
.cast-row::-webkit-scrollbar { height:5px; }
.cast-row::-webkit-scrollbar-thumb { background:#ddd; border-radius:3px; }

.cast-card {
  flex:0 0 auto;
  width:120px;
  text-align:center;
}
.cast-link { display:block; color:inherit; text-decoration:none; }
.cast-photo {
  width:120px;
  height:158px;
  border-radius:6px;
  overflow:hidden;
  background:#f0f0f0;
  margin-bottom:8px;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  transition:.25s;
}
.cast-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cast-link:hover .cast-photo {
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,.12);
}
.cast-name {
  font-size:13.5px;
  font-weight:600;
  color:#222;
  line-height:1.4;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.cast-role {
  font-size:12px;
  color:#888;
  margin-top:3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.cast-link:hover .cast-name { color:#2aa461; }

.cast-more-inner {
  width:120px;
  height:158px;
  background:#f7f8fa;
  border-radius:6px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#2aa461;
  cursor:pointer;
  transition:.25s;
  border:1px dashed #e0e0e0;
  margin-bottom:8px;
}
.cast-more-inner:hover {
  background:#e8f7ef;
  border-color:#2aa461;
}
.cast-more-text {
  font-size:12.5px;
  color:#666;
  margin-top:6px;
}

/* 相似电影 */
.side-block {
  background:#fff;
  border-radius:8px;
  padding:18px;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  position:sticky;
  top:80px;
}
.side-title {
  font-size:16px;
  color:#222;
  margin:0 0 14px;
  border-left:4px solid #2aa461;
  padding-left:12px;
  font-weight:700;
}
.side-list { display:flex; flex-direction:column; gap:10px; }
.side-item {
  display:flex;
  gap:10px;
  text-decoration:none;
  color:inherit;
  padding-bottom:10px;
  border-bottom:1px solid #f0f0f0;
  transition:.2s;
}
.side-item:last-child { border-bottom:0; padding-bottom:0; }
.side-item:hover .side-name { color:#2aa461; }

.side-pic {
  position:relative;
  width:60px;
  height:80px;
  border-radius:6px;
  overflow:hidden;
  flex:0 0 auto;
  background:#f0f0f0;
}
.side-pic img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.side-star {
  position:absolute;
  right:4px;
  top:4px;
  background:#2aa461;
  color:#fff;
  font-size:11px;
  padding:1px 6px;
  border-radius:8px;
  font-weight:600;
}
.side-info { flex:1; min-width:0; }
.side-name {
  font-size:13.5px;
  color:#222;
  font-weight:600;
  line-height:1.4;
  margin-bottom:4px;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.side-meta { font-size:12px; color:#999; margin-bottom:4px; }
.side-tag {
  display:inline-block;
  background:#e8f7ef;
  color:#2aa461;
  font-size:11px;
  padding:1px 6px;
  border-radius:4px;
}

.footer {
  text-align:center;
  color:#999;
  font-size:13px;
  padding:30px 20px;
}

/* 响应式 */
@media (max-width:960px){
  .detail-body { grid-template-columns:1fr; }
  .side-block { position:static; }
}
@media (max-width:768px){
  .detail-wrap { padding:0 12px; margin:12px auto; }
  .detail-top {
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:18px;
  }
  .detail-poster img { width:150px; height:210px; }
  .detail-info h1 { font-size:20px; }
  .meta-line { justify-content:center; }
  .action-row { justify-content:center; }
  .detail-score {
    border-left:0;
    border-top:1px solid #f0f0f0;
    padding:14px 0 0 0;
    width:100%;
    text-align:center;
    display:flex;
    justify-content:center;
    gap:24px;
    align-items:center;
  }
  .detail-section { padding:16px; }
  .section-head h2 { font-size:15.5px; }

  .cast-card,
  .cast-photo,
  .cast-more-inner { width:100px; }
  .cast-photo,
  .cast-more-inner { height:132px; }
  .cast-name { font-size:12.5px; }
  .cast-role { font-size:11.5px; }

  .col-size { width:70px; font-size:12px; }
  .col-act { width:50px; }
  .res-table thead th,
  .res-table tbody td { padding:10px 12px; }
  .res-name { font-size:12.5px; }
  .res-group-title { padding:10px 14px; font-size:14px; }
}