/* ===== TQMusic 深色主题：列表/网格页面样式 ===== */
:root{
    --bg: #0f0f13;
    --card: #1c1c24;
    --card-hover: #23232e;
    --line: #2a2a36;
    --text: #e8e9ee;
    --text-2: #a3a5b0;
    --text-3: #6d6f7d;
    --accent: #6d5df6;
    --accent-2: #38bdf8;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: "Microsoft YaHei", system-ui, sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; }
a { text-decoration: none; color: inherit; transition: 0.22s; }

/* 顶部导航（兼容旧模板） */
.top-nav { background: #101016; color: #fff; padding: 0 20px; height: 60px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.top-nav .logo { font-size: 20px; font-weight: bold; background: linear-gradient(120deg,#8b7bff,#38bdf8); -webkit-background-clip: text; background-clip: text; color: transparent; }
.top-nav .nav-menu { display: flex; gap: 24px; }
.top-nav .nav-menu a { color: var(--text-2); opacity: 1; }
.top-nav .nav-menu a:hover { color: #fff; }
.top-nav .nav-right a { color: var(--text-2); margin-left: 16px; }
.top-nav .nav-right a:hover { color: #fff; }

/* 容器 */
.container { width: 1200px; max-width: 96%; margin: 30px auto; padding: 0 20px; }

/* Banner */
.banner { width: 100%; height: 320px; border-radius: 16px; background: linear-gradient(135deg, #6d5df6 0%, #38bdf8 100%); color: #fff; display: flex; align-items: center; padding: 0 60px; margin-bottom: 30px; box-shadow: 0 8px 30px rgba(109,93,246,0.3); }
.banner h1 { font-size: 36px; margin-bottom: 10px; }
.banner p { font-size: 16px; opacity: 0.92; }

/* 区块标题 */
.section-title { font-size: 22px; font-weight: bold; margin-bottom: 20px; display: flex; align-items: center; gap: 8px; }
.section-title::before { content: ""; width: 4px; height: 22px; background: var(--accent); border-radius: 2px; }
.block-title { font-size: 22px; font-weight: 600; margin-bottom: 22px; color: var(--text); }

/* 歌曲网格 */
.music-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; margin-bottom: 40px; }
.music-card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,0.3); transition: 0.3s; }
.music-card:hover { transform: translateY(-5px); border-color: rgba(109,93,246,0.45); box-shadow: 0 12px 28px rgba(0,0,0,0.45); }
.music-card img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; background: var(--bg-2); }
.music-info { padding: 14px; }
.m-name { font-size: 15px; font-weight: 600; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m-singer { font-size: 13px; color: var(--text-2); margin-bottom: 10px; }
.play-btn { display: inline-block; padding: 6px 18px; background: linear-gradient(120deg, var(--accent), #5a8df6); color: #fff; border-radius: 8px; font-size: 13px; }
.play-btn:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(109,93,246,0.3); }
.play-link { color: var(--accent-2); }
.play-link:hover { color: #fff; }

/* 歌手字母导航 */
.letter-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.letter-nav a { display: inline-block; padding: 6px 14px; background: var(--card); border: 1px solid var(--line); border-radius: 8px; color: var(--text-2); font-size: 14px; }
.letter-nav a:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

/* 歌手网格 */
.singer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-bottom: 30px; }
.singer-card { text-align: center; padding: 18px 10px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; transition: 0.25s; }
.singer-card:hover { transform: translateY(-4px); border-color: rgba(109,93,246,0.45); }
.singer-card img { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; margin: 0 auto; }
.singer-name { font-size: 16px; font-weight: 600; margin-top: 12px; }
.singer-letter { color: var(--text-3); margin-top: 6px; font-size: 14px; }

/* 歌手详情顶部 */
.singer-top { display: flex; align-items: center; gap: 28px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 26px; margin-bottom: 28px; }
.singer-top img { width: 130px; height: 130px; border-radius: 50%; object-fit: cover; }
.singer-top .singer-name { font-size: 26px; margin-top: 0; }
.singer-top .singer-letter { font-size: 14px; }

/* 排行榜前三名 */
.rank-top1, .rank-top2, .rank-top3 { display: inline-block; width: 26px; height: 26px; line-height: 26px; text-align: center; border-radius: 50%; color: #fff; font-weight: 700; }
.rank-top1 { background: linear-gradient(135deg,#ffd75e,#ffb020); }
.rank-top2 { background: linear-gradient(135deg,#cfd6e0,#9aa6b5); }
.rank-top3 { background: linear-gradient(135deg,#e0a06b,#c47a45); }

/* 搜索框 */
.search-box { display: flex; gap: 12px; max-width: 520px; margin-bottom: 26px; }
.search-box input { flex: 1; background: #121219; border: 1px solid var(--line); color: var(--text); padding: 12px 16px; border-radius: 10px; font-size: 15px; }
.search-box input:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px rgba(109,93,246,0.18); }
.search-box button { padding: 12px 28px; background: linear-gradient(120deg,var(--accent),#5a8df6); color: #fff; border: none; border-radius: 10px; cursor: pointer; font-size: 15px; }
.search-box button:hover { box-shadow: 0 4px 14px rgba(109,93,246,0.3); }
.tip { color: var(--text-2); margin-bottom: 20px; font-size: 15px; }

/* 按钮 */
.btn { display: inline-block; padding: 10px 24px; background: linear-gradient(120deg,var(--accent),#5a8df6); color: #fff; border-radius: 9px; transition: 0.3s; }
.btn:hover { color: #fff; box-shadow: 0 4px 14px rgba(109,93,246,0.3); }

/* 页脚 */
.footer { background: #101016; color: var(--text-3); text-align: center; padding: 30px 20px; margin-top: 60px; border-top: 1px solid var(--line); }

/* 响应式 */
@media (max-width: 1024px){
    .music-grid { grid-template-columns: repeat(3, 1fr); }
    .singer-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px){
    .music-grid { grid-template-columns: repeat(2, 1fr); }
    .singer-grid { grid-template-columns: repeat(2, 1fr); }
    .banner { padding: 0 30px; }
    .banner h1 { font-size: 26px; }
}

/* ===== 2026-11-12 新增组件：歌手页歌曲列表 / 分类总览 / 用户中心头部按钮 / 收藏列表媒体单元格 ===== */
/* 歌手详情页：歌曲列表 */
.play-all-btn{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; padding:7px 16px; border-radius:999px; border:0; cursor:pointer; background:linear-gradient(120deg,#6d5df6,#5a8df6); color:#fff; font-size:13px; }
.play-all-btn:hover{ filter:brightness(1.08); }
.song-list{ background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-bottom:10px; }
.song-row{ display:flex; align-items:center; gap:14px; padding:11px 16px; border-bottom:1px solid var(--line); transition:background .18s; }
.song-row:last-child{ border-bottom:0; }
.song-row:hover{ background:rgba(109,93,246,.08); }
.song-row .s-idx{ width:26px; flex-shrink:0; color:var(--text-3); font-size:13px; text-align:center; }
.s-cover{ position:relative; width:52px; height:52px; flex-shrink:0; border-radius:9px; overflow:hidden; display:block; background:#121219; }
.s-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.s-cover .s-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.45); color:#fff; opacity:0; transition:opacity .18s; font-style:normal; }
.s-cover:hover .s-play{ opacity:1; }
.s-main{ flex:1; min-width:0; }
.s-name{ display:block; color:var(--text); font-size:14.5px; font-weight:600; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.s-name:hover{ color:#8b7bff; }
.s-sub{ margin-top:3px; font-size:12.5px; color:var(--text-3); display:flex; align-items:center; gap:5px; }
.s-singer{ color:var(--accent-2); font-size:12.5px; }
.s-singer:hover{ color:#fff; text-decoration:underline; }
.s-stat{ width:86px; flex-shrink:0; display:flex; align-items:center; gap:5px; color:var(--text-3); font-size:12.5px; }
.s-stat.like{ color:#ff7aa2; }
.song-row .play-link{ flex-shrink:0; padding:6px 16px; border-radius:999px; font-size:12.5px; border:1px solid rgba(109,93,246,.5); color:#9f8bff; }
.song-row .play-link:hover{ background:#6d5df6; color:#fff; border-color:#6d5df6; }

/* 分类总览卡片 */
.cate-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:18px; }
.cate-card{ display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:transform .22s, box-shadow .22s, border-color .22s; }
.cate-card:hover{ transform:translateY(-4px); border-color:rgba(109,93,246,.55); box-shadow:0 14px 28px rgba(0,0,0,.38); }
.cate-covers{ display:flex; height:96px; background:#121219; }
.cate-covers a{ flex:1; display:flex; overflow:hidden; }
.cate-covers img{ width:100%; height:96px; object-fit:cover; display:block; transition:transform .3s; }
.cate-card:hover .cate-covers img{ transform:scale(1.06); }
.cate-covers .ph{ flex:1; background:linear-gradient(135deg,#1c1c24,#2a2a38); }
.cate-body{ padding:13px 15px 15px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cate-name{ color:var(--text); font-size:15px; font-weight:600; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cate-name:hover{ color:#8b7bff; }
.cate-count{ font-size:12px; flex-shrink:0; background:rgba(109,93,246,.12); border:1px solid rgba(109,93,246,.3); color:#9f8bff; padding:3px 10px; border-radius:999px; }
.cate-switch{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.cate-switch a{ padding:7px 14px; border-radius:999px; border:1px solid var(--line); color:var(--text-2); font-size:13px; }
.cate-switch a:hover{ border-color:var(--accent); color:#fff; }

/* 收藏/历史列表的媒体单元格 */
.cell-media{ display:flex; align-items:center; gap:10px; }
.cell-media .thumb{ width:46px; height:46px; border-radius:8px; object-fit:cover; background:#23232e; flex-shrink:0; display:inline-block; }
.cell-media .thumb-video{ width:72px; height:41px; border-radius:6px; }
.cell-media .thumb-ph{ display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#23232e,#2f2f3d); }
.cell-media .mname{ color:var(--text); font-size:14.5px; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cell-media .mname:hover{ color:#8b7bff; }
.singer-link{ display:inline-flex; align-items:center; gap:4px; color:var(--accent-2); font-size:13.5px; }
.singer-link:hover{ color:#fff; text-decoration:underline; }
.muted{ color:var(--text-3); font-size:13px; }

/* 用户中心顶部操作按钮 */
.hright{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.hlink{ display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px; border:1px solid var(--line); background:var(--bg-2,#16161d); color:var(--text-2); font-size:13px; }
.hlink:hover{ color:#fff; border-color:var(--accent); background:var(--card-hover,#1f1f2b); }
.hlink svg{ width:15px; height:15px; }
.logout-btn{ display:inline-flex; align-items:center; gap:6px; padding:8px 18px; border-radius:999px; border:1px solid rgba(240,85,85,.45); background:rgba(240,85,85,.12); color:#ff7b7b; font-size:13.5px; font-weight:600; }
.logout-btn:hover{ background:#f05555; border-color:#f05555; color:#fff; box-shadow:0 6px 16px rgba(240,85,85,.35); }
.logout-btn svg{ width:15px; height:15px; }

@media (max-width: 768px){
    .song-row{ gap:10px; padding:10px 12px; }
    .s-cover{ width:44px; height:44px; }
    .song-row .s-stat{ display:none; }
    .cate-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
    .cate-covers{ height:78px; }
    .cate-covers img{ height:78px; }
}