/* ============ 乐境 YueJing — 古典音乐交流分享社区 ============ */
:root{
  /* 温暖治愈系主色 —— 米色纸张 + 晨光，保持柔和 */
  --cream:#faf5ec;        /* 主背景：米色 */
  --cream-2:#f4ecdc;      /* 次背景：浅米 */
  --warm-50:#fbf3e3;
  --paper:#ffffff;        /* 卡片白 */
  --line:#ece4d3;         /* 浅米色描边 */

  /* 文字：暖灰系，避免死黑 */
  --ink:#3a3530;
  --ink-2:#6b6259;
  --ink-3:#9a928a;

  /* 品牌色：取自 LOGO 的深蓝 + 金色 */
  --brand:#2c3e5f;         /* LOGO 深蓝 */
  --brand-2:#3d567a;       /* 品牌浅蓝（hover） */
  --gold:#c9a45c;          /* LOGO 金色 */
  --gold-light:#f5e6c4;    /* 浅金色背景 */

  /* 主题强调色：暖橘为底，加入多组跳跃色形成对比 */
  --accent:#d4835a;        /* 暖珊瑚（主操作色） */
  --accent-2:#b8683f;      /* 深珊瑚（hover） */
  --accent-light:#f8dcc9;  /* 浅珊瑚背景 */
  --terracotta:#c76b5e;    /* 陶土红 */
  --coral:#e8957a;         /* 浅珊瑚 */
  --sage:#8fb996;          /* 鼠尾草绿 */
  --sage-light:#d4ead6;    /* 浅鼠尾草 */
  --sky:#7aaec5;           /* 雾蓝 */
  --sky-light:#cfe5ef;     /* 浅雾蓝 */
  --lavender:#a89cc8;      /* 薰衣草紫 */
  --lavender-light:#e3ddf2;/* 浅薰衣草 */
  --mint:#6bbfb0;          /* 薄荷青 */
  --mint-light:#c9ece6;    /* 浅薄荷 */
  --sun:#e6b85c;           /* 暖阳黄 */
  --sun-light:#f8e9c4;     /* 浅暖黄 */
  --night:#2c3e5f;         /* 深蓝灰（标题） */

  /* 四大分区入口卡：各不相同，形成跳跃 */
  --c-knowledge:#f3d7a8;   /* 知识库：暖金 */
  --c-create:#f2b394;      /* 创作区：珊瑚 */
  --c-community:#b8d4b4;   /* 讨论区：鼠尾草绿 */
  --c-concert:#a8cce0;     /* 音乐会：雾蓝 */

  --radius:10px;
  --radius-lg:14px;
  --shadow:0 2px 12px rgba(112,80,40,.06);
  --shadow-hover:0 10px 28px rgba(112,80,40,.12);

  --serif:"Noto Serif SC","Source Han Serif SC","STSong","SimSun",serif;
  --sans:"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  font-size:14px;
  line-height:1.65;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
img{max-width:100%;}
.container{max-width:1240px;margin:0 auto;padding:0 20px;}

/* ---------- 顶部导航 ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1240px;margin:0 auto;padding:0 20px;
  height:60px;display:flex;align-items:center;gap:22px;
}
.logo{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
  font-family:var(--serif);font-size:22px;font-weight:700;color:var(--night);
  letter-spacing:2px;cursor:pointer;
}
.logo .mark{
  width:40px;height:40px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  background:transparent;
  box-shadow:0 2px 8px rgba(44,62,95,.18);
}
.logo .mark img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%;}
.logo small{font-size:11px;color:var(--ink-3);letter-spacing:1px;font-weight:400;display:block;line-height:1;margin-top:1px;}

.nav-links{display:flex;gap:4px;flex-shrink:0;}
.nav-links a{
  padding:6px 13px;border-radius:8px;font-size:14.5px;color:var(--ink-2);
  transition:.18s;white-space:nowrap;
}
.nav-links a:hover{background:var(--gold-light);color:var(--brand);}
.nav-links a.active{color:var(--brand);font-weight:600;background:var(--gold-light);}

.nav-search{
  flex:1;max-width:340px;display:flex;align-items:center;
  background:var(--cream-2);border:1px solid transparent;border-radius:20px;overflow:hidden;
  transition:.2s;
}
.nav-search:focus-within{border-color:var(--brand);background:#fff;}
.nav-search input{
  flex:1;border:0;outline:0;background:transparent;padding:8px 14px;font-size:13.5px;color:var(--ink);
}
.nav-search button{
  border:0;background:transparent;padding:0 14px;cursor:pointer;color:var(--ink-3);font-size:15px;
}
.nav-right{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0;}
.nav-user{display:flex;align-items:center;gap:6px;cursor:pointer;padding:5px 9px 5px 5px;border-radius:20px;transition:.15s;border:1px solid transparent;}
.nav-user:hover,.nav-user-menu.open .nav-user{background:var(--cream-2);border-color:var(--line);}
.nav-user::after{content:'▾';font-size:10px;color:var(--ink-3);margin-left:2px;}
.nav-user-menu{position:relative;padding-bottom:18px;margin-bottom:-18px;z-index:101;}
.nav-user-menu .dropdown{
  position:absolute;right:0;top:44px;min-width:120px;background:#fff;border:1px solid var(--line);
  border-radius:10px;box-shadow:var(--shadow-hover);padding:6px 0;display:none;z-index:101;
}
.nav-user-menu:hover .dropdown{display:block;}
.nav-user-menu.open .dropdown{display:block;}
.nav-user-menu .dropdown::before{
  content:'';position:absolute;top:-6px;right:14px;width:10px;height:10px;background:#fff;
  border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg);
}
.nav-user-menu .dropdown a{
  display:block;padding:9px 16px;font-size:13px;color:var(--ink-2);transition:.15s;white-space:nowrap;
}
.nav-user-menu .dropdown a:hover{background:var(--cream-2);color:var(--brand);}
.avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  color:var(--gold-light);display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:15px;flex-shrink:0;
}
.avatar.lg{width:84px;height:84px;font-size:32px;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:0;cursor:pointer;border-radius:20px;font-size:13.5px;
  padding:8px 18px;transition:.18s;font-family:var(--sans);font-weight:500;
}
.btn-primary{background:var(--brand);color:#fff;}
.btn-primary:hover{background:var(--brand-2);}
.btn-accent{background:var(--accent);color:#fff;}
.btn-accent:hover{background:var(--accent-2);}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink-2);}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);}
.btn-gold{background:var(--gold);color:#4a3418;}
.btn-gold:hover{background:#b8934e;}
.btn-sm{padding:5px 12px;font-size:12.5px;}
.btn-block{width:100%;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* ---------- 通用区块 ---------- */
.page{padding:26px 0 60px;}
.page-head{display:flex;align-items:baseline;gap:14px;margin-bottom:20px;flex-wrap:wrap;}
.page-head h1{
  font-family:var(--serif);font-size:26px;color:var(--night);
  position:relative;padding-left:14px;
}
.page-head h1::before{
  content:"";position:absolute;left:0;top:8px;bottom:8px;width:5px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand),var(--accent));
}
.page-head .sub{color:var(--ink-3);font-size:13px;}
.section-title{
  display:flex;align-items:center;gap:10px;margin:30px 0 16px;
  font-family:var(--serif);font-size:20px;color:var(--night);
}
.section-title .bar{width:5px;height:20px;border-radius:3px;background:var(--brand);}
.section-title small{font-size:12.5px;color:var(--ink-3);font-family:var(--sans);font-weight:400;}
.section-title .more{margin-left:auto;font-size:13px;color:var(--ink-3);font-family:var(--sans);cursor:pointer;}
.section-title .more:hover{color:var(--brand-2);}

/* ---------- 卡片网格 ---------- */
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.card-grid.cols-5{grid-template-columns:repeat(5,1fr);}

.wcard{
  position:relative;
  background:var(--paper);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);cursor:pointer;transition:.22s;
  display:flex;flex-direction:column;border:1px solid var(--line);
}
.wcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.wcard .cover{
  position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.wcard .cover .sym{font-size:44px;opacity:.85;filter:drop-shadow(0 3px 6px rgba(0,0,0,.18));transition:.3s;}
.wcard:hover .cover .sym{transform:scale(1.12) rotate(-4deg);}
.wcard .cover .dur{
  position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.45);color:#fff;
  font-size:11px;padding:1px 7px;border-radius:4px;
}
.wcard .cover[data-bvid]{background-color:#2a2419;}
.wcard .cover[data-bvid] .sym{display:none;}
/* 已有真实封面图（硬编码 biliCover 或 fileInfo.coverImg）时，隐藏占位 emoji */
.wcard .cover[data-cover] .sym{display:none;}
/* 主图 img 标签占满容器，加载失败时容器 fallback 背景色 */
.wcard .cover .cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.wcard .cover .sym{position:relative;z-index:1;}
.wcard .cover .cover-hint,
.wcard .cover .views,
.wcard .cover .dur{position:absolute;z-index:2;}
.wcard .cover.cover-failed{background:linear-gradient(135deg,#3a2f24,#2a2218) !important;color:#b8a888;}
.wcard .cover.cover-failed .sym{opacity:.5;}
/* bvid 存在但封面未拉到时的提示 */
.wcard .cover .cover-hint{position:absolute;left:8px;right:8px;bottom:30px;color:rgba(255,255,255,.85);font-size:11px;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.5);}
.wcard .cover .views{
  position:absolute;left:8px;bottom:8px;color:#fff;font-size:11px;
  text-shadow:0 1px 3px rgba(0,0,0,.5);display:flex;gap:4px;align-items:center;
}
.wcard .info{padding:11px 13px 13px;display:flex;flex-direction:column;gap:6px;flex:1;}
.wcard .title{
  font-size:14px;color:var(--ink);font-weight:600;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px;
}
.wcard .meta{display:flex;align-items:center;justify-content:space-between;color:var(--ink-3);font-size:12px;margin-top:auto;}
.wcard .meta .author{display:flex;align-items:center;gap:5px;min-width:0;}
.wcard .meta .author span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px;}
.wcard .meta .score{color:var(--brand);font-weight:600;}

/* 封面配色：在暖色基调上加入多组跳跃色 */
.cv1{background:linear-gradient(135deg,#f3d7a8,#e0b468);}   /* 暖金 */
.cv2{background:linear-gradient(135deg,#f2b394,#d9815a);}   /* 珊瑚 */
.cv3{background:linear-gradient(135deg,#b8d4b4,#8fb996);}   /* 鼠尾草绿 */
.cv4{background:linear-gradient(135deg,#a8cce0,#7aaec5);}   /* 雾蓝 */
.cv5{background:linear-gradient(135deg,#e3ddf2,#a89cc8);}   /* 薰衣草紫 */
.cv6{background:linear-gradient(135deg,#c9ece6,#6bbfb0);}   /* 薄荷青 */
.cv7{background:linear-gradient(135deg,#f8dcc9,#d4835a);}   /* 浅珊瑚 */
.cv8{background:linear-gradient(135deg,#e8c8a8,#b8896a);}   /* 沙色 */
/* 上传作品默认封面：音频 / 文档 / 自定义图片 / B站 */
.file-audio{background:linear-gradient(135deg,#4a3f6b,#7a6ba8);} /* 深紫-古典音乐氛围 */
.file-doc{background:linear-gradient(135deg,#6b5a4a,#a89a8a);}  /* 暖褐-书与笔 */
.file-img{background:#2a2419;}
.file-bili{background:#2a2419;}
.file-audio .sym,.file-doc .sym,.file-img .sym,.file-bili .sym{color:#fff;opacity:.9;}
.file-img .sym,.file-bili .sym{display:none;}
.file-img[data-cover],.file-bili[data-cover]{background-size:cover;background-position:center;}
.wcard .file-img,.wcard .file-bili{background-size:cover;background-position:center;}
.wcard .file-img .sym,.wcard .file-bili .sym{display:none;}

/* ---------- 标签 / 徽章 ---------- */
.tag{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;padding:1px 8px;border-radius:20px;
  background:var(--cream-2);color:var(--ink-2);border:1px solid var(--line);
}
.tag.gold{background:var(--gold-light);color:#7a5c2a;border-color:#e6d0a0;}
.tag.accent{background:var(--accent-light);color:var(--accent-2);border-color:#e9c39a;}
.tag.ai{
  background:linear-gradient(90deg,#7d6b9c,#9a86b8);color:#fff;border:0;font-weight:600;letter-spacing:.5px;
}
.tag.crimson{background:#f6e2dc;color:var(--terracotta);border-color:#e6c2b5;}
.tag.night{background:#e3e8ef;color:var(--brand);border-color:#ccd5e0;}
.tag.brand{background:var(--brand);color:#fff;border-color:var(--brand);}
.tag.sage{background:var(--sage-light);color:#3d6b42;border-color:#b0d6b3;}
.tag.sky{background:var(--sky-light);color:#2f5f75;border-color:#a8d0e3;}
.tag.lavender{background:var(--lavender-light);color:#5e4f85;border-color:#c9bfe8;}
.tag.mint{background:var(--mint-light);color:#2b7569;border-color:#9bd9cf;}
/* 可点的 ❤/⭐ 标记：仅「我的点赞/我的收藏」上下文渲染（data-tg），hover 给取消的暗示 */
.tag.lk-tg{cursor:pointer;transition:.15s;}
.tag.lk-tg:hover{background:#f6e2dc;color:var(--terracotta);border-color:#e6c2b5;}
.tag.lk-tg.gold:hover{background:#efe6d2;color:#7a5c2a;border-color:#e6d0a0;}

/* ---------- 评分星星 ---------- */
.stars{display:inline-flex;gap:2px;align-items:center;cursor:default;}
.stars .st{color:#e1d4ba;font-size:16px;line-height:1;transition:.15s;}
.stars .st.on{color:var(--gold);}
.stars.clickable{cursor:pointer;}
.stars.clickable .st:hover{transform:scale(1.2);}
.stars .num{color:var(--brand);font-weight:700;font-size:14px;margin-left:6px;font-family:Georgia,serif;}
.stars .cnt{color:var(--ink-3);font-size:11.5px;margin-left:4px;}

/* ---------- 布局：主列+侧栏 ---------- */
.layout{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:start;}
.sidebar .panel{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:16px 18px;margin-bottom:18px;border:1px solid var(--line);
}
.sidebar .panel h3{
  font-family:var(--serif);font-size:16px;color:var(--night);margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.sidebar .panel h3 .ico{color:var(--accent);}
.sidebar .panel h3 .more{margin-left:auto;font-size:12px;color:var(--ink-3);font-family:var(--sans);font-weight:400;cursor:pointer;}
.sidebar .panel h3 .more:hover{color:var(--brand-2);}

/* 排行榜列表 */
.rank-list li{
  display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:start;
  padding:10px 4px;border-bottom:1px dashed var(--line);transition:.15s;
  cursor:pointer;
}
.rank-list li:last-child{border-bottom:0;}
.rank-list li:hover{background:var(--cream-2);}
.rank-list .no{
  width:22px;height:22px;border-radius:6px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:var(--ink-3);background:var(--cream-2);font-family:Georgia,serif;
  margin-top:1px;
}
.rank-list li:nth-child(1) .no{background:var(--gold);color:#4a3418;}
.rank-list li:nth-child(2) .no{background:var(--brand);color:#fff;}
.rank-list li:nth-child(3) .no{background:var(--accent);color:#fff;}
.rank-list .rt{min-width:0;}
.rank-list .rt .t{
  font-size:13px;color:var(--ink);font-weight:600;line-height:1.45;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.rank-list .rt .a{font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.4;}
.rank-list .rs{
  color:var(--brand);font-weight:700;font-family:Georgia,serif;font-size:15px;
  align-self:start;margin-top:1px;flex-shrink:0;min-width:30px;text-align:right;
}
/* 首页「乐境排行榜」行仅作展示，不可点击跳转 */
#rankList li{cursor:default;}
#rankList li:hover{background:transparent;}

/* ---------- 首页 Hero = 首屏 Banner 轮播容器 ----------
   默认第一张是写死的风景图+文案（.is-hero），后台「Banner 管理」配置的图排其后；
   只有一张时不显示圆点/箭头（JS 控制），看起来就是原来的静态大图。 */
.hero{
  border-radius:var(--radius-lg);overflow:hidden;position:relative;margin-top:24px;
  box-shadow:var(--shadow);
}
.hero .banner-track{display:flex;transition:transform .5s ease;}
.hero .banner-slide{
  min-width:100%;position:relative;overflow:hidden;padding-bottom:0;
  min-height:340px;display:flex;flex-direction:column;justify-content:center;
  padding:42px 50px;color:#fff;background:var(--cream-2);
}
.hero .banner-slide.is-hero{
  background:url('../assets/hero.jpg') center/cover no-repeat;
}
/* 文案可读性遮罩只压在默认首图上，后台配置的 banner 自带 caption 渐变 */
.hero .banner-slide.is-hero::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(44,62,95,.28) 0%,rgba(44,62,95,.08) 35%,rgba(58,42,24,.45) 70%,rgba(58,42,24,.7) 100%);
  z-index:0;
}
.hero .hero-bg-notes{
  position:absolute;font-family:var(--serif);font-size:28px;
  color:rgba(255,250,235,.4);z-index:0;user-select:none;pointer-events:none;
}
.hero .notes{position:absolute;font-size:30px;color:rgba(255,250,235,.45);animation:float 5s ease-in-out infinite;z-index:0;}
.hero .notes.n2{animation-delay:1.2s;}
.hero .notes.n3{animation-delay:2.4s;}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}
.hero .hero-content{position:relative;z-index:1;max-width:680px;}
.hero h1{
  font-family:var(--serif);font-size:36px;letter-spacing:3px;
  margin-bottom:10px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.25);
}
/* 品牌名「乐境此刻」：比正文略宽松的字距（原来靠手写空格撑开，最窄窗口下会把末字挤到第二行） */
.hero h1 .brand{letter-spacing:9px;}
.hero h1 em{color:var(--gold);font-style:normal;font-weight:700;}
.hero p{color:rgba(255,255,255,.9);font-size:15px;max-width:560px;line-height:1.85;text-shadow:0 1px 4px rgba(0,0,0,.25);}
.hero .hero-btns{margin-top:22px;display:flex;gap:12px;}

/* 四大分区入口 —— 改为淡雅疗愈系，去掉厚重色块 */
.zone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px;}
/* 四大分区入口卡：风景图 + 音乐元素，统一暖调并保留各自氛围 */
.zone-card{
  border-radius:var(--radius);padding:28px 24px;color:#fff;position:relative;overflow:hidden;
  cursor:pointer;transition:.25s;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.35);
  background-size:cover;background-position:center;
  text-shadow:0 1px 4px rgba(0,0,0,.35);
  box-shadow:inset 0 -80px 80px rgba(0,0,0,.35), var(--shadow);
}
.zone-card:hover{transform:translateY(-5px);box-shadow:inset 0 -80px 80px rgba(0,0,0,.35), var(--shadow-hover);}
.zone-card .z-deco{
  position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;
  background:rgba(255,255,255,.18);
}
.zone-card .z-icon{font-size:26px;margin-bottom:8px;display:inline-block;position:relative;z-index:1;text-shadow:0 2px 6px rgba(0,0,0,.35);}
.zone-card h3{font-family:var(--serif);font-size:18px;letter-spacing:1px;margin-bottom:6px;position:relative;z-index:1;font-weight:700;text-shadow:0 2px 6px rgba(0,0,0,.4);}
.zone-card p{font-size:12.5px;opacity:.92;position:relative;z-index:1;line-height:1.7;text-shadow:0 1px 4px rgba(0,0,0,.35);}
.zc-knowledge{background-image:linear-gradient(135deg,rgba(90,66,24,.58) 0%,rgba(90,66,24,.2) 50%,rgba(90,66,24,.05) 100%),url('../assets/zone-knowledge.png');}
.zc-create  {background-image:linear-gradient(135deg,rgba(90,46,28,.58) 0%,rgba(90,46,28,.2) 50%,rgba(90,46,28,.05) 100%),url('../assets/zone-create.png');}
.zc-community{background-image:linear-gradient(135deg,rgba(47,82,51,.58) 0%,rgba(47,82,51,.2) 50%,rgba(47,82,51,.05) 100%),url('../assets/zone-community.png');}
.zc-concert {background-image:linear-gradient(135deg,rgba(31,69,88,.58) 0%,rgba(31,69,88,.2) 50%,rgba(31,69,88,.05) 100%),url('../assets/zone-concert.png');}

/* ---------- Tabs（横向滑动一行展示：箭头 + 滚轮 + 拖拽） ---------- */
.tabs-wrap{position:relative;}
.tabs{display:flex;gap:8px;flex-wrap:nowrap;margin-bottom:18px;
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-ms-overflow-style:none;
  padding-bottom:4px;scroll-behavior:smooth;
}
.tabs::-webkit-scrollbar{display:none;}
.tabs .tab{
  padding:7px 16px;border-radius:20px;cursor:pointer;font-size:13.5px;color:var(--ink-2);
  background:var(--paper);border:1px solid var(--line);transition:.18s;
  flex-shrink:0;white-space:nowrap;user-select:none;
}
.tabs .tab:hover{border-color:var(--brand);color:var(--brand);}
.tabs .tab.on{background:var(--brand);color:#fff;border-color:var(--brand);}
.tabs.dragging{cursor:grabbing;}
.tabs.dragging .tab{cursor:grabbing;}

/* 左右滑动箭头 */
.ts-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(60,42,30,.14);
  display:flex;align-items:center;justify-content:center;
  font-size:19px;line-height:1;color:var(--ink-2);
  cursor:pointer;z-index:3;transition:.18s;
  margin-top:-2px;
}
.ts-arrow:hover{background:var(--brand);color:#fff;border-color:var(--brand);}
.ts-prev{left:-13px;}
.ts-next{right:-13px;}
/* 默认显示：即使脚本未执行也能看到箭头；确认无需滑动时才隐藏 */
.tabs-wrap.no-scroll .ts-arrow{display:none;}
.tabs-wrap.at-start .ts-prev{opacity:0;pointer-events:none;}
.tabs-wrap.at-end .ts-next{opacity:0;pointer-events:none;}
/* 两端渐隐提示可滑动 */
.tabs-wrap::before,.tabs-wrap::after{
  content:'';position:absolute;top:0;bottom:8px;width:34px;pointer-events:none;z-index:2;
  opacity:0;transition:.2s;
}
.tabs-wrap::before{left:0;background:linear-gradient(90deg,var(--cream) 0%,rgba(250,246,239,0) 100%);}
.tabs-wrap::after{right:0;background:linear-gradient(270deg,var(--cream) 0%,rgba(250,246,239,0) 100%);}
.tabs-wrap.scrollable:not(.at-start)::before{opacity:1;}
.tabs-wrap.scrollable:not(.at-end)::after{opacity:1;}

/* ---------- 表单 ---------- */
.form-card{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:28px 30px;max-width:660px;margin:0 auto;border:1px solid var(--line);
}
.form-card h2{font-family:var(--serif);font-size:22px;color:var(--night);margin-bottom:20px;text-align:center;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px;font-weight:600;}
.field label .req{color:var(--terracotta);}
.field input[type=text],.field input[type=tel],.field input[type=password],.field select,.field textarea{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:13.5px;
  font-family:var(--sans);outline:0;background:#fdfaf3;color:var(--ink);transition:.18s;
}
.field textarea{resize:vertical;min-height:90px;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);background:#fff;}
.field .hint{font-size:11.5px;color:var(--ink-3);margin-top:4px;}
.field-check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2);cursor:pointer;}
.field-check input{width:16px;height:16px;accent-color:var(--accent);}
.form-actions{display:flex;gap:12px;justify-content:center;margin-top:22px;}

/* ---------- 登录页 ---------- */
.login-wrap{
  min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(circle at 15% 20%,rgba(212,131,90,.14),transparent 42%),
    radial-gradient(circle at 85% 80%,rgba(122,174,197,.16),transparent 48%),
    radial-gradient(circle at 50% 50%,rgba(201,164,92,.08),transparent 60%),
    repeating-linear-gradient(0deg,transparent 0 34px,rgba(112,80,40,.04) 34px 35px),
    var(--cream);
  padding:40px 16px;position:relative;overflow:hidden;
}
.login-deco{position:absolute;color:rgba(112,80,40,.08);font-size:90px;user-select:none;}
.login-card{
  background:var(--paper);border-radius:16px;box-shadow:0 14px 44px rgba(112,80,40,.14);
  width:400px;max-width:100%;padding:36px 38px;position:relative;z-index:1;
  border-top:4px solid var(--brand);
}
.login-card .lc-title{text-align:center;margin-bottom:6px;}
.login-card .lc-title .mark{
  width:72px;height:72px;margin:0 auto 12px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;box-shadow:0 3px 12px rgba(44,62,95,.2);
}
.login-card .lc-title .mark img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.login-card h2{font-family:var(--serif);font-size:24px;color:var(--night);letter-spacing:6px;}
.login-card .lc-sub{text-align:center;color:var(--ink-2);font-size:15px;letter-spacing:3px;margin-bottom:24px;}
.captcha-row{display:flex;gap:10px;align-items:stretch;}
.captcha-row input{flex:1;}
.captcha-box{
  width:118px;height:41px;border-radius:8px;border:1px solid var(--line);
  cursor:pointer;flex-shrink:0;background:#fbf3e3;overflow:hidden;position:relative;
}
.captcha-box canvas{display:block;}
.captcha-box .refresh{
  position:absolute;right:2px;bottom:2px;background:rgba(255,255,255,.85);border-radius:50%;
  width:16px;height:16px;font-size:10px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);
}
.form-err{color:var(--terracotta);font-size:12.5px;margin-top:10px;text-align:center;min-height:18px;}
.login-links{display:flex;justify-content:space-between;margin-top:16px;font-size:12.5px;}
.login-links a{color:var(--ink-3);cursor:pointer;}
.login-links a:hover{color:var(--brand);}

/* ---------- 详情页（豆瓣式） ---------- */
.detail-head{display:grid;grid-template-columns:300px 1fr;gap:34px;margin-bottom:30px;}
.detail-cover{
  border-radius:12px;overflow:hidden;box-shadow:0 10px 30px rgba(112,80,40,.18);
  display:flex;align-items:center;justify-content:center;position:relative;
  background:var(--paper);
  align-self:start; /* 关键：不被 grid 拉伸，高度跟随图片，避免上下白边 */
}
.detail-cover img{width:100%;height:auto;display:block;}
.detail-cover .sym{font-size:88px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.25));}
.detail-info h1{font-family:var(--serif);font-size:28px;color:var(--night);margin-bottom:10px;line-height:1.35;}
.detail-info .d-meta{color:var(--ink-2);font-size:13.5px;margin-bottom:14px;line-height:1.95;}
.detail-info .d-meta b{color:var(--night);}
.detail-info .d-desc{color:var(--ink-2);font-size:14px;line-height:1.9;margin:16px 0;}

/* 评分卡（豆瓣式：左大分数 + 右星级条） */
.rating-box{
  background:var(--paper);border-radius:var(--radius);padding:22px 26px;
  box-shadow:var(--shadow);display:flex;gap:28px;margin:18px 0;
  border:1px solid var(--line);
}
.rating-box .big-score{font-family:Georgia,serif;font-size:50px;color:var(--brand);font-weight:700;line-height:1;flex-shrink:0;}
.rating-box .big-score small{font-size:14px;color:var(--ink-3);font-weight:400;}
.rating-box .rb-mid{flex:1;}
.rating-box .rb-mid .stars .num{font-size:16px;margin-left:8px;}
.rating-box .rb-mid .cnt{font-size:12px;display:block;margin-top:2px;margin-left:0;}
.rating-box .rb-side{color:var(--ink-3);font-size:12px;flex-shrink:0;text-align:right;min-width:80px;}
.rating-box .rb-side b{color:var(--night);font-family:Georgia,serif;font-size:15px;display:block;}

/* 星级分布（豆瓣式横向条） */
.score-bars{margin-top:14px;}
.score-bar{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-3);margin-bottom:5px;}
.score-bar .lbl{width:42px;flex-shrink:0;text-align:right;}
.score-bar .bar{flex:1;height:6px;background:var(--cream-2);border-radius:3px;overflow:hidden;}
.score-bar .bar .fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--accent));border-radius:3px;transition:width .3s;}
.score-bar .pct{width:48px;flex-shrink:0;color:var(--ink-2);}

/* "听过 / 想听 / 评价" 操作条 */
.work-actions{
  display:flex;gap:12px;align-items:center;padding:14px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);margin:16px 0;
}
.work-actions .wa-btn{
  display:inline-flex;align-items:center;gap:6px;padding:7px 18px;border-radius:20px;
  font-size:13.5px;color:var(--ink-2);background:var(--cream-2);cursor:pointer;border:1px solid var(--line);transition:.18s;
}
.work-actions .wa-btn:hover{border-color:var(--brand);color:var(--brand);}
.work-actions .wa-btn.on{background:var(--gold-light);color:var(--brand);border-color:var(--gold);}
.work-actions .wa-link{margin-left:auto;font-size:13px;color:var(--ink-3);cursor:pointer;}
.work-actions .wa-link:hover{color:var(--brand);}

/* 视频播放区 */
.player-box{
  background:#2a2419;border-radius:12px;overflow:hidden;margin-bottom:26px;box-shadow:var(--shadow);
}
.player-box iframe{display:block;width:100%;height:480px;border:0;}
.player-box .pb-note{
  color:#d8c4a0;font-size:11.5px;padding:8px 14px;background:#1f1a12;display:flex;justify-content:space-between;
}
.player-box .pb-note a{color:#f3d9b6;cursor:pointer;}

/* 短评 */
.comment-item{
  display:flex;gap:12px;padding:16px 0;border-bottom:1px dashed var(--line);
}
.comment-item .c-body{flex:1;min-width:0;}
.comment-item .c-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap;}
.comment-item .c-user{font-size:13px;font-weight:600;color:var(--night);}
.comment-item .c-time{font-size:11.5px;color:var(--ink-3);}
.comment-item .c-text{font-size:13.5px;color:var(--ink-2);line-height:1.75;}
.short-form{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:18px 20px;margin-bottom:22px;border:1px solid var(--line);
}
.short-form .sf-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap;}
.short-form .sf-row .lbl{font-size:13px;color:var(--ink-2);font-weight:600;}
.short-form textarea{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;
  font-family:var(--sans);outline:0;min-height:70px;resize:vertical;background:#fdfaf3;
}
.short-form textarea:focus{border-color:var(--accent);}

/* ---------- 社区帖子 ---------- */
.post-card{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:20px 22px;margin-bottom:16px;border:1px solid var(--line);transition:.2s;
}
.post-card:hover{box-shadow:var(--shadow-hover);}
.post-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.post-head .p-user{font-size:13.5px;font-weight:600;color:var(--night);}
.post-head .p-time{font-size:11.5px;color:var(--ink-3);}
.post-card h3{font-family:var(--serif);font-size:17.5px;color:var(--night);margin-bottom:8px;cursor:pointer;}
.post-card h3:hover{color:var(--brand);}
.post-card .p-content{color:var(--ink-2);font-size:13.5px;line-height:1.85;white-space:pre-wrap;}
.post-card .p-imgs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.post-card .p-imgs .pimg{
  width:120px;height:90px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:30px;color:rgba(255,255,255,.85);
}
/* 帖子真实配图（用户上传）：点击可放大 */
.post-card .p-imgs img.pimg-img{
  width:160px;height:120px;object-fit:cover;border-radius:8px;cursor:zoom-in;
  border:1px solid var(--line);background:var(--cream-2);transition:.18s;display:block;
}
.post-card .p-imgs img.pimg-img:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(112,80,40,.2);}

/* 发帖框：已选图片预览条（每张右上角 ✕ 可删除） */
.ib-imgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.ib-imgs .ib-item{
  position:relative;width:82px;height:82px;border-radius:8px;overflow:hidden;
  border:1px solid var(--line);background:var(--cream-2);
}
.ib-imgs .ib-item img{width:100%;height:100%;object-fit:cover;display:block;}
.ib-imgs .ib-item .ib-load{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:15px;color:var(--ink-3);
}
.ib-imgs .ib-item .ib-del{
  position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;
  background:rgba(30,22,12,.72);color:#fff;font-size:11px;line-height:20px;text-align:center;
  cursor:pointer;opacity:.9;transition:.15s;
}
.ib-imgs .ib-item .ib-del:hover{background:var(--terracotta);opacity:1;}
.ib-imgs .ib-tip{font-size:11.5px;color:var(--ink-3);align-self:center;margin-left:2px;}

/* 图片查看器（放大预览） */
/* 图片查看器（viewImage）：滚轮缩放 / 拖动平移 / 双击放大 / 工具条 */
#yjViewer{overflow:hidden;}
#yjViewer .v-wrap{width:auto;max-width:none;padding:0;display:flex;align-items:center;justify-content:center;}
#yjViewer img{max-width:88vw;max-height:78vh;border-radius:8px;display:block;cursor:grab;touch-action:none;-webkit-user-drag:none;user-select:none;will-change:transform;transition:transform .08s ease-out;box-shadow:0 18px 60px rgba(30,20,8,.45);}
#yjViewer img.dragging{cursor:grabbing;transition:none;}
#yjViewer .v-bar{position:absolute;top:16px;right:16px;display:flex;gap:2px;align-items:center;background:rgba(58,44,28,.88);padding:5px 7px;border-radius:10px;z-index:2;box-shadow:0 6px 20px rgba(30,20,8,.35);}
#yjViewer .v-bar button{border:none;background:transparent;color:#f5efe4;font-size:13px;padding:5px 9px;border-radius:6px;cursor:pointer;line-height:1;font-family:inherit;}
#yjViewer .v-bar button:hover{background:rgba(255,255,255,.16);}
#yjViewer .v-pct{color:#f5efe4;font-size:12px;min-width:44px;text-align:center;}
#yjViewer .v-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-size:11.5px;color:rgba(245,239,228,.8);background:rgba(58,44,28,.6);padding:5px 14px;border-radius:999px;pointer-events:none;white-space:nowrap;}
.post-foot{display:flex;gap:20px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);}
.post-foot .pf-btn{
  display:flex;align-items:center;gap:5px;color:var(--ink-3);font-size:12.5px;cursor:pointer;transition:.15s;
}
.post-foot .pf-btn:hover{color:var(--brand);}
.post-foot .pf-btn.liked{color:var(--terracotta);}
.post-comments{margin-top:14px;background:var(--cream-2);border-radius:8px;padding:12px 16px;}
.post-comments .pc-item{padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px;}
.post-comments .pc-item:last-child{border-bottom:0;}
/* 评论操作区：点赞 / 回复 / 本人删除，跟在评论文字后 */
.pc-acts{display:inline-flex;gap:12px;margin-left:10px;white-space:nowrap;vertical-align:baseline;}
.c-like{font-size:11.5px;color:var(--ink-3);cursor:pointer;user-select:none;transition:.15s;}
.c-like:hover{color:var(--terracotta);}
.c-like.liked{color:var(--terracotta);font-weight:600;}
.c-replybtn{font-size:11.5px;color:var(--brand);opacity:.75;cursor:pointer;user-select:none;transition:.15s;}
.c-replybtn:hover{opacity:1;text-decoration:underline;}
/* 「回复 @某人」前缀：小徽标高亮，读得出来谁在跟谁说话 */
.c-reply-at{display:inline-block;margin-right:5px;padding:1px 7px;border-radius:999px;background:#efe3cf;color:#8a6a2f;font-size:11px;font-weight:600;vertical-align:baseline;}
/* 输入框上方的「回复中」提示条 */
.pc-replying{display:flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;border-radius:7px;background:#f6ecd9;color:#7a5c2a;font-size:12px;}
.pc-replying .pcr-cancel{margin-left:auto;color:var(--terracotta);cursor:pointer;font-size:11.5px;user-select:none;}
.pc-replying .pcr-cancel:hover{text-decoration:underline;}

/* ---------- 删除按钮（仅本人内容显示） ---------- */
/* 带文字的胶囊按钮，常显 —— 用户要能一眼看到删除入口，不能只放一个不起眼的小圆点 */
.card-del{
  position:absolute;right:8px;top:8px;z-index:5;
  display:inline-flex;align-items:center;gap:3px;height:25px;padding:0 11px;
  background:rgba(40,30,20,.78);color:#fff;border-radius:999px;
  font-size:11.5px;font-weight:600;line-height:1;letter-spacing:.3px;
  cursor:pointer;transition:.15s;user-select:none;white-space:nowrap;
  box-shadow:0 1px 5px rgba(0,0,0,.22);
}
.wcard:hover .card-del,.kn-card:hover .card-del{background:rgba(40,30,20,.92);}
.card-del:hover{background:var(--terracotta);box-shadow:0 2px 8px rgba(176,86,64,.38);}
/* 帖子右侧"🗑 删除"按钮：常显但弱化，不抢眼 */
.pf-del{
  margin-left:auto;font-size:12px;color:var(--terracotta);cursor:pointer;opacity:.75;
  padding:3px 10px;border-radius:10px;transition:.15s;user-select:none;border:1px solid transparent;
}
.pf-del:hover{opacity:1;background:#f6e2dc;border-color:#f0c8bc;}
.c-del{margin-left:8px;color:var(--terracotta);cursor:pointer;font-size:11px;opacity:.7;user-select:none;}
.c-del:hover{opacity:1;text-decoration:underline;}
.review-item .r-del{font-size:11.5px;color:var(--terracotta);margin-left:10px;cursor:pointer;opacity:.75;user-select:none;}
.review-item .r-del:hover{opacity:1;text-decoration:underline;}
.btn-danger{background:transparent;border:1px solid #e0a49b;color:var(--terracotta);}
.btn-danger:hover{background:var(--terracotta);color:#fff;border-color:var(--terracotta);}
.post-comments .pc-item b{color:var(--night);}
.post-comments .pc-input{display:flex;gap:8px;margin-top:10px;}
.post-comments .pc-input input{
  flex:1;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:12.5px;outline:0;background:#fff;
}
.publish-box{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:18px 22px;margin-bottom:20px;border:1px solid var(--line);
}
.publish-box textarea{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px;
  outline:0;min-height:80px;resize:vertical;background:#fdfaf3;font-family:var(--sans);
}
.publish-box .pb-bar{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap;}
.publish-box .pb-bar input[type=text]{
  border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:13px;outline:0;background:#fdfaf3;flex:1;min-width:180px;
}

/* ---------- 知识库 ---------- */
.kn-card{
  position:relative;
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;
  cursor:pointer;transition:.22s;border:1px solid var(--line);display:flex;flex-direction:column;
}
.kn-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.kn-card .cover{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;position:relative;}
.kn-card .cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.kn-card .cover .sym{position:relative;z-index:1;font-size:40px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.18));}
/* 已有真实封面图（biliCover）时，隐藏占位 emoji —— 与作品卡 .wcard 同规则 */
.kn-card .cover[data-cover] .sym{display:none;}
.kn-card .cover[data-cover] img{z-index:1;}
.kn-card .info{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1;}
.kn-card .k-title{font-family:var(--serif);font-size:15.5px;color:var(--night);font-weight:700;}
.kn-card .k-desc{font-size:12.5px;color:var(--ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px;}
.kn-card .k-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;}
.admin-note{
  display:flex;align-items:center;gap:10px;background:var(--gold-light);border:1px solid #e6d0a0;
  border-radius:8px;padding:10px 16px;font-size:12.5px;color:#7a5c2a;margin-bottom:18px;
}
.admin-note .an-btn{margin-left:auto;}

/* ---------- 创作区分区卡（淡雅疗愈 + 各自主题色，7 列一行） ---------- */
.create-cat-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:20px;}
.create-cat{
  position:relative;border-radius:var(--radius);padding:12px 6px;cursor:pointer;transition:.22s;
  background:var(--paper);border:1px solid var(--line);text-align:center;overflow:hidden;
  min-height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;
  border-top:3px solid var(--cc-color,var(--line));
}
.create-cat:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);}
.create-cat .cc-icon{font-size:24px;line-height:1;}
.create-cat .cc-title{font-family:var(--serif);font-size:13px;color:var(--night);font-weight:700;white-space:nowrap;}
.create-cat .cc-desc{font-size:10.5px;color:var(--ink-3);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.create-cat .cc-deco{position:absolute;right:-20px;bottom:-20px;width:50px;height:50px;border-radius:50%;background:var(--cc-color,var(--accent-light));opacity:.15;}
.create-cat.on{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.85) 100%),var(--gold-light);border-color:var(--gold);}

/* ---------- 音乐会 ---------- */
.concert-item{
  display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:16px 20px;margin-bottom:14px;border:1px solid var(--line);transition:.2s;
}
.concert-item:hover{box-shadow:var(--shadow-hover);}
.concert-info h3{font-family:var(--serif);font-size:16.5px;color:var(--night);margin-bottom:4px;}
.concert-info .ci-line{font-size:12.5px;color:var(--ink-3);display:flex;gap:14px;flex-wrap:wrap;margin-bottom:4px;}
.concert-info .ci-prog{font-size:12.5px;color:var(--ink-2);}
.concert-info .ci-prog b{color:var(--night);}

/* ---------- 音乐会详情页（公众号式介绍） ---------- */
.article{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:0;overflow:hidden;border:1px solid var(--line);max-width:780px;margin:0 auto;
}
.article-cover{
  width:100%;aspect-ratio:16/8;display:flex;align-items:center;justify-content:center;
  font-size:80px;color:rgba(255,255,255,.85);position:relative;
}
.article-cover .ac-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(58,42,24,.6) 100%);}
.article-cover .ac-title{
  position:absolute;left:30px;right:30px;bottom:24px;color:#fff;font-family:var(--serif);font-size:24px;letter-spacing:1px;
  text-shadow:0 2px 6px rgba(0,0,0,.4);
}
.article-body{padding:30px 36px 36px;}
.article-body h2{font-family:var(--serif);font-size:20px;color:var(--night);margin:22px 0 12px;padding-left:12px;border-left:4px solid var(--brand);}
.article-body p{color:var(--ink-2);font-size:14.5px;line-height:2;margin-bottom:14px;}
.article-body blockquote{
  background:var(--cream-2);border-left:3px solid var(--accent);padding:12px 18px;
  margin:16px 0;color:var(--ink-2);font-size:13.5px;border-radius:0 8px 8px 0;
}
.article-body .info-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px;}
.article-body .info-table td{padding:9px 12px;border-bottom:1px dashed var(--line);}
.article-body .info-table td:first-child{color:var(--ink-3);width:80px;}
.article-body .info-table td:last-child{color:var(--ink);}
.article-source{
  margin-top:24px;padding:16px 20px;background:var(--cream-2);border-radius:8px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.article-source .as-text{font-size:13px;color:var(--ink-2);flex:1;min-width:0;}
.article-source .as-text b{color:var(--night);}

/* ---------- 个人中心 ---------- */
.profile-head{
  background:linear-gradient(120deg,var(--brand),var(--brand-2));border-radius:var(--radius-lg);color:#fff;
  padding:30px 34px;display:flex;gap:22px;align-items:center;margin-bottom:24px;
}
.profile-head .p-stats{display:flex;gap:28px;margin-left:auto;}
.profile-head .p-stat{text-align:center;}
.profile-head .p-stat b{display:block;font-size:22px;font-family:Georgia,serif;color:var(--gold);}
.profile-head .p-stat span{font-size:11.5px;color:rgba(255,255,255,.75);}

/* ---------- 弹窗 ---------- */
.modal-mask{
  position:fixed;inset:0;background:rgba(58,42,24,.5);z-index:200;
  display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px);
}
.modal-mask.show{display:flex;}
.modal{
  background:var(--paper);border-radius:14px;width:520px;max-width:100%;max-height:86vh;overflow:auto;
  padding:26px 28px;box-shadow:0 20px 60px rgba(58,42,24,.3);
}
.modal h3{font-family:var(--serif);font-size:19px;color:var(--night);margin-bottom:16px;}
.modal .m-close{float:right;cursor:pointer;color:var(--ink-3);font-size:18px;line-height:1;}
.modal .m-close:hover{color:var(--brand);}

/* ---------- toast ---------- */
#toast{
  position:fixed;top:76px;left:50%;transform:translateX(-50%) translateY(-16px);z-index:300;
  background:var(--night);color:#fff;padding:10px 22px;border-radius:8px;font-size:13.5px;
  opacity:0;pointer-events:none;transition:.25s;box-shadow:0 8px 24px rgba(58,42,24,.3);
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- 页脚 ---------- */
.footer{
  border-top:1px solid var(--line);background:var(--paper);padding:26px 0;
  text-align:center;color:var(--ink-3);font-size:12px;margin-top:40px;
}
.footer .f-logo{font-family:var(--serif);font-size:16px;color:var(--night);letter-spacing:3px;margin-bottom:6px;}
/* 页脚备案号：法定须公示，做成低调可点击 */
.footer .f-beian{margin:9px 0 0;font-size:11.5px;letter-spacing:.3px;}
.footer .f-beian a{color:var(--ink-3);text-decoration:none;border-bottom:1px dotted transparent;transition:color .2s,border-color .2s;}
.footer .f-beian a:hover{color:var(--brand);border-bottom-color:var(--brand);}
.footer .f-beian .f-police{display:inline-block;vertical-align:middle;}
.footer .f-beian .f-police img{width:13px;height:14px;object-fit:contain;vertical-align:-2px;margin-right:3px;opacity:.85;}

/* ---------- 首页 Banner 轮播（现并入首屏 Hero，容器为 .hero） ---------- */
.banner-track{
  display:flex;transition:transform .5s ease;border-radius:var(--radius-lg);
}
.banner-slide{
  min-width:100%;position:relative;height:0;padding-bottom:34%;overflow:hidden;background:var(--cream-2);
}
.banner-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.banner-cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 20px 14px;
  background:linear-gradient(transparent, rgba(0,0,0,.55));color:#fff;
  font-family:var(--serif);font-size:16px;letter-spacing:1px;
}
.banner-dots{position:absolute;right:20px;bottom:14px;display:flex;gap:6px;z-index:3;}
.bdot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:.2s;}
.bdot.on{background:#fff;width:20px;border-radius:4px;}
.banner-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.28);color:#fff;
  font-size:22px;line-height:1;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center;
}
.banner-arrow:hover{background:rgba(0,0,0,.5);}
.banner-prev{left:26px;}
.banner-next{right:26px;}
@media (max-width:720px){
  .banner-slide{padding-bottom:56%;}
  .banner-arrow{width:30px;height:30px;font-size:17px;}
  .banner-cap{font-size:13px;padding:20px 14px 10px;}
}

/* ---------- 作者本人的审核状态提示条（仅作者可见） ---------- */
.audit-me{font-size:12px;line-height:1.6;border-radius:8px;padding:6px 12px;margin:0 0 8px;}
.audit-me.pending{background:#faf3e0;color:#8a6d2f;border:1px solid #ecd9a8;}
.audit-me.rejected{background:#fdecec;color:#a33a3a;border:1px solid #f0c8c8;}

/* ---------- 空状态 ---------- */
.empty{
  text-align:center;padding:56px 20px;color:var(--ink-3);
}
.empty .e-sym{font-size:44px;margin-bottom:10px;opacity:.5;}
.empty p{font-size:13.5px;}

/* ---------- 推荐作品表单 ---------- */
.recommend-form{
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:20px 22px;margin-bottom:22px;border:1px solid var(--line);
}
.recommend-form .rf-tip{
  font-size:12px;color:var(--ink-3);background:var(--cream-2);padding:8px 12px;border-radius:6px;margin-bottom:14px;
  border-left:3px solid var(--brand);
}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .card-grid{grid-template-columns:repeat(3,1fr);}
  .card-grid.cols-5{grid-template-columns:repeat(3,1fr);}
  .zone-grid{grid-template-columns:repeat(2,1fr);}
  .layout{grid-template-columns:1fr;}
  .sidebar{order:2;}
  .detail-head{grid-template-columns:1fr;}
  .detail-cover{max-width:300px;}
  .create-cat-grid{grid-template-columns:repeat(4,1fr);}
}
@media (max-width:720px){
  .card-grid,.card-grid.cols-3,.card-grid.cols-5{grid-template-columns:repeat(2,1fr);}
  .nav-links{display:none;}
  .nav-search{max-width:200px;}
  .hero .banner-slide{padding:28px 22px;min-height:260px;}
  .hero h1{font-size:24px;}
  .concert-item{grid-template-columns:1fr;}
  .concert-item .c-act{grid-column:1/-1;align-items:flex-start;}
  .create-cat-grid{grid-template-columns:repeat(2,1fr);}
  .rating-box{flex-direction:column;align-items:flex-start;gap:16px;}
  .article-body{padding:22px 22px 28px;}
}

/* ============ 备案净化模式：隐藏社区互动类入口 ============
   开关在 js/main.js 顶部的 YJ_BEIAN_MODE，true 时 <html> 会带 .beian-mode。
   备案通过后把开关改回 false 即一键恢复全部入口，无需删改页面。 */
.beian-mode .beian-hide{ display:none !important; }

/* 备案期间侧栏整体空出时，主体占满整行 */
.beian-mode .layout{ grid-template-columns:1fr; }
.beian-mode .sidebar{ display:none !important; }

/* 备案期间四个分区卡片只剩「知识库」一个入口时，单列居中收窄 */
.beian-mode .zone-grid{ grid-template-columns:minmax(240px,360px); justify-content:center; }
