/* ============ 果核 Guohe 响应式设计系统 ============ */
:root{
  --primary:#FF6B3D;          /* 果核主色 暖珊瑚橙 */
  --primary-dark:#E8521F;
  --primary-light:#FFE9E0;
  --accent:#2BBF7A;           /* 种草绿 */
  --like:#FF2442;             /* 点赞红 */
  --bg:#F4F5F7;
  --card:#FFFFFF;
  --text:#1F2329;
  --sub:#8A9099;
  --line:#EDEFF2;
  --gold:#F6B73C;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 4px 16px rgba(31,35,41,.06);
  --shadow-up:0 -2px 16px rgba(31,35,41,.06);
  --maxw:460px;               /* 移动端内容宽度 */
  --maxw-desktop:1100px;      /* 桌面端内容宽度 */
  --tabbar-h:47px;            /* 底部导航高度 */
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,textarea,select{font-family:inherit;font-size:14px;outline:none;}

/* ============ 容器 ============ */
.device{
  max-width:var(--maxw);
  margin:0 auto;
  min-height:100vh;
  background:var(--bg);
  position:relative;
  box-shadow:0 0 40px rgba(0,0,0,.08);
}
@media(min-width:520px){
  body{background:#e9ebef;padding:18px 0;}
  .device{min-height:calc(100vh - 36px);border-radius:22px;overflow:hidden;}
}
@media(min-width:992px){
  body{padding:0;background:var(--bg);}
  .device{max-width:var(--maxw-desktop);border-radius:0;box-shadow:none;min-height:100vh;}
}

/* ============ 顶栏 ============ */
.app-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.app-header .bar{
  height:50px;display:flex;align-items:center;gap:10px;padding:0 14px;
}
.app-header .title{font-size:18px;font-weight:800;letter-spacing:.5px;}
.app-header .title .dot{color:var(--primary);}
.app-header .spacer{flex:1;}
.app-header .icon-btn{
  width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;color:var(--text);background:var(--bg);
}
.app-header .hdr-link{
  display:inline-flex;align-items:center;gap:3px;padding:6px 11px;border-radius:18px;
  font-size:13px;font-weight:600;color:var(--text);text-decoration:none;background:var(--bg);
  transition:background .15s,color .15s;
}
.app-header .hdr-link .ic{font-size:15px;line-height:1;}
.app-header .hdr-link:active,.app-header .hdr-link:visited{color:var(--text);}
.app-header .hdr-link:hover{background:var(--primary-light);color:var(--primary);}

/* 品牌 logo */
.brand{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;flex:0 0 auto;}
.brand .logo{width:32px;height:32px;border-radius:50%;object-fit:cover;}
.brand .logo-text{font-size:18px;font-weight:800;letter-spacing:.5px;}
.brand .logo-text .dot{color:var(--primary);}

/* 桌面端导航（默认隐藏） */
.desktop-nav{display:none;}

/* 搜索条 */
.search-box{
  flex:1;display:flex;align-items:center;gap:6px;background:var(--bg);
  border-radius:20px;padding:8px 14px;color:var(--sub);font-size:13px;
}
.search-box input{border:none;background:none;flex:1;color:var(--text);}

/* ============ 底部导航（移动端） ============ */
.tabbar{
  position:sticky;bottom:0;z-index:60;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(180%) blur(12px);
  border-top:1px solid var(--line);
  display:flex;align-items:stretch;padding-bottom:var(--safe-b);
}
.tabbar a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:7px 0 6px;color:var(--sub);font-size:11px;
}
.tabbar a .ic{font-size:21px;line-height:1;}
.tabbar a.active{color:var(--primary);font-weight:700;}
.tabbar .center{
  flex:0 0 auto;transform:translateY(-10px);
}
.tabbar .center .fab{
  width:52px;height:52px;border-radius:18px;
  background:linear-gradient(135deg,var(--primary),#FF8A5B);
  color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(255,107,61,.4);
}
.tabbar .center span{color:var(--text);}

/* 内容容器 */
.page{padding:12px;padding-bottom:84px;}
.page-np{padding-bottom:84px;}
@media(min-width:992px){
  .page-np{padding-bottom:24px;}
}

/* ============ 通用卡片 ============ */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;}
.card + .card{margin-top:12px;}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:18px 4px 10px;}
.section-title h3{font-size:16px;margin:0;font-weight:800;}
.section-title .more{font-size:12px;color:var(--sub);}

/* ============ 胶囊分类 ============ */
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 12px;background:var(--card);scrollbar-width:none;}
.chips::-webkit-scrollbar{display:none;}
.chip{
  flex:0 0 auto;padding:7px 15px;border-radius:20px;background:var(--bg);
  color:var(--sub);font-size:13px;font-weight:600;white-space:nowrap;
}
.chip.active{background:var(--primary);color:#fff;}

/* ============ 瀑布流 ============ */
.waterfall{columns:2;column-gap:10px;padding:10px 12px;}
.pin{
  break-inside:avoid;background:var(--card);border-radius:14px;overflow:hidden;
  margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer;
}
.pin .cover{position:relative;display:flex;align-items:center;justify-content:center;color:#fff;font-size:40px;}
.pin .cover .badge{
  position:absolute;left:8px;top:8px;background:rgba(0,0,0,.45);color:#fff;
  font-size:10px;padding:2px 7px;border-radius:10px;backdrop-filter:blur(4px);
}
.pin .cover .cat-tag{
  position:absolute;right:8px;bottom:8px;background:rgba(255,255,255,.9);color:var(--primary);
  font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700;
}
.pin .body{padding:9px 10px 11px;}
.pin .body .t{font-size:13.5px;font-weight:600;line-height:1.35;margin:0 0 8px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pin .body .meta{display:flex;align-items:center;justify-content:space-between;}
.pin .body .author{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);min-width:0;}
.pin .body .author .av{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;}
.pin .body .author .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pin .body .stat{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--sub);}
.pin .body .stat .hk{color:var(--like);}
@media(min-width:768px){.waterfall{columns:3;}}
@media(min-width:992px){.waterfall{columns:4;column-gap:16px;}}

/* ============ 封面图（宽100% × 高200 横幅） ============ */
.cover{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;width:100%;height:200px;background:#f2f3f5;}
.cover img{width:100%;height:100%;display:block;flex:none;object-fit:cover;}
.cover .badge{position:absolute;left:8px;top:8px;z-index:2;background:rgba(0,0,0,.45);color:#fff;font-size:10px;padding:2px 7px;border-radius:10px;backdrop-filter:blur(4px);}
.cover .cat-tag{position:absolute;right:8px;bottom:8px;z-index:2;background:rgba(255,255,255,.9);color:var(--primary);font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700;}
.detail-hero img{width:100%;height:100%;display:block;object-fit:cover;}

/* 封面：html/网络链接直接渲染成果界面（文件仍走原图封面） */
.cover.cv-live{background:#fff;}
.cv-fallback{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px;text-align:center;color:#fff;background-color:#ff6b4a;background-image:linear-gradient(160deg,rgba(0,0,0,.10),rgba(0,0,0,.30));}
.cv-fallback .cv-emoji{font-size:44px;line-height:1;filter:drop-shadow(0 3px 8px rgba(0,0,0,.22));}
.cv-fallback .cv-title{font-size:14px;font-weight:700;line-height:1.45;max-width:100%;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 5px rgba(0,0,0,.32);}
.cv-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff;pointer-events:none;z-index:1;}
.cv-golink{position:absolute;right:8px;bottom:8px;z-index:3;background:rgba(27,28,31,.6);color:#fff;font-size:11px;
  padding:3px 9px;border-radius:8px;text-decoration:none;backdrop-filter:blur(3px);}

/* ============ 按钮 ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 18px;border-radius:22px;font-weight:700;font-size:14px;background:var(--bg);color:var(--text);
}
.btn-primary{background:linear-gradient(135deg,var(--primary),#FF8A5B);color:#fff;box-shadow:0 6px 14px rgba(255,107,61,.32);}
.btn-block{width:100%;}
.btn-ghost{background:var(--primary-light);color:var(--primary);}
.btn-line{border:1.5px solid var(--line);background:#fff;}

/* ============ 标签 / 徽章 ============ */
.tag{display:inline-block;padding:3px 9px;border-radius:8px;background:var(--bg);color:var(--sub);font-size:11px;margin:2px 4px 2px 0;}
.tag-p{background:var(--primary-light);color:var(--primary);}
.tag-g{background:#E4F8EE;color:var(--accent);}
.tag-gold{background:#FFF3DA;color:var(--gold);}
.vip-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:#7a5a00;
  background:linear-gradient(135deg,#FFE08A,#F6B73C);padding:2px 7px;border-radius:8px;}

/* ============ 数据行 ============ */
.row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line);}
.row:last-child{border-bottom:none;}
.row .l{display:flex;align-items:center;gap:10px;flex:1;min-width:0;}
.row .ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--primary-light);flex:0 0 auto;}
.row .tx{min-width:0;}
.row .tx .h{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row .tx .s{font-size:12px;color:var(--sub);}
.row .r{color:var(--sub);font-size:13px;flex:0 0 auto;}

/* ============ 列表 / 网格 ============ */
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.tile{background:var(--card);border-radius:14px;padding:14px 10px;text-align:center;box-shadow:var(--shadow);}
.tile .emo{font-size:26px;}
.tile .lb{font-size:12px;margin-top:6px;color:var(--sub);}
.tile .num{font-size:18px;font-weight:800;margin-top:2px;}
@media(min-width:768px){.grid2{grid-template-columns:repeat(3,1fr);}}
@media(min-width:992px){.grid2{grid-template-columns:repeat(4,1fr);gap:16px;}}

/* ============ 表单 ============ */
.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;font-weight:700;margin-bottom:7px;}
.field .hint{font-size:11px;color:var(--sub);font-weight:400;margin-left:6px;}
.field input[type=text],.field textarea,.field select{
  width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#fff;color:var(--text);
}
.field textarea{resize:vertical;min-height:84px;}
.seg{display:flex;background:var(--bg);border-radius:12px;padding:4px;gap:4px;}
.seg button{flex:1;padding:9px;border-radius:9px;font-weight:700;font-size:13px;color:var(--sub);background:none;}
.seg button.on{background:#fff;color:var(--primary);box-shadow:var(--shadow);}
.switch{position:relative;width:44px;height:26px;flex:0 0 auto;}
.switch input{display:none;}
.switch .sl{position:absolute;inset:0;background:var(--line);border-radius:20px;transition:.2s;}
.switch input:checked + .sl{background:var(--primary);}
.switch .sl:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.switch input:checked + .sl:before{transform:translateX(18px);}
.switch.on .sl{background:var(--primary);}
.switch.on .sl:before{transform:translateX(18px);}
.opt-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);}
.opt-row:last-child{border-bottom:none;}

/* ============ 设置页 · 浏览记录 / 个人喜好 ============ */
.hist-item{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);position:relative;}
.hist-item:last-child{border-bottom:none;}
.hist-main{flex:1;min-width:0;}
.hist-t{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hist-cat{display:inline-block;margin-top:4px;font-size:11px;color:var(--primary);background:var(--primary-light);padding:2px 8px;border-radius:6px;}
.hist-time{font-size:11.5px;color:var(--sub);white-space:nowrap;}
.hist-del{position:absolute;top:8px;right:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--sub);font-size:13px;background:var(--bg);}
.hist-del:hover{background:#ffe6e6;color:var(--like);}
.pref-cat{font-size:12.5px;padding:6px 13px;border-radius:999px;background:var(--bg);color:var(--sub);border:1px solid var(--line);cursor:pointer;transition:.15s;user-select:none;}
.pref-cat.on{background:var(--primary-light);color:var(--primary);border-color:transparent;font-weight:700;}
/* 成果发布目的 · 关键词选择器 */
.kw-box{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;}
.kw-presets{display:flex;flex-wrap:wrap;gap:7px;}
.kw-chip{flex:0 0 auto;font-size:12.5px;padding:6px 12px;border-radius:999px;background:var(--bg);color:var(--sub);
  border:1px solid transparent;cursor:pointer;transition:.15s;font-family:inherit;}
.kw-chip:hover{background:#eef0f3;}
.kw-chip.on{background:#fff;color:var(--primary);border-color:var(--primary);font-weight:700;box-shadow:0 2px 8px rgba(255,107,74,.16);}
.kw-custom{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;}
.kw-custom-chip{font-size:12.5px;padding:6px 10px 6px 12px;border-radius:999px;background:#fff;color:var(--primary);
  border:1px solid var(--primary);font-weight:700;cursor:pointer;user-select:none;}
.kw-custom-chip:hover{background:#fff4f0;}
.kw-input{width:100%;border:none;outline:none;font-size:13px;padding:9px 2px 0;color:var(--text);font-family:inherit;background:transparent;}

.auth-box{width:100%;max-width:420px;margin:0 auto;}

.detail-hero{width:100%;height:200px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:72px;position:relative;}
.detail-hero .float{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.4);color:#fff;padding:5px 12px;border-radius:20px;font-size:12px;backdrop-filter:blur(4px);}
/* 详情页 banner：代码/外链实时预览（banner 加高，内嵌网页预览） */
.detail-hero.hero-review{height:clamp(320px,56vh,520px);background:#fff;align-items:stretch;justify-content:flex-start;padding:0;overflow:hidden;}
.detail-hero .hero-prev{width:100%;height:100%;border:0;display:block;background:#fff;}
.hero-back{position:absolute;top:10px;left:10px;z-index:6;display:inline-flex;align-items:center;gap:3px;border:0;background:rgba(0,0,0,.45);color:#fff;padding:6px 13px;border-radius:20px;font-size:12.5px;font-weight:600;backdrop-filter:blur(4px);cursor:pointer;}
.hero-tag{position:absolute;top:12px;right:12px;z-index:6;background:linear-gradient(135deg,#FF6B3D,#FF8A5B);color:#fff;font-size:11px;font-weight:700;padding:4px 11px;border-radius:12px;box-shadow:0 2px 8px rgba(255,107,61,.3);}
.hero-float{position:absolute;bottom:12px;right:12px;z-index:6;background:rgba(0,0,0,.5);color:#fff;text-decoration:none;padding:6px 13px;border-radius:20px;font-size:12.5px;font-weight:600;backdrop-filter:blur(4px);}
/* 详情页顶部预览框：90% 宽、居中、高度自适应视口 */
.detail-preview{position:relative;width:90%;margin:14px auto;height:clamp(360px,62vh,620px);background:#f2f3f5;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.06);}
.detail-preview .dp-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#fff;overflow:hidden;}
.detail-preview--img{background:#000;height:auto;}
.detail-preview .dp-img{position:static;width:100%;height:auto;object-fit:contain;display:block;}
.detail-preview .dp-dl{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.55);color:#fff;text-decoration:none;padding:9px 18px;border-radius:22px;font-size:13px;font-weight:700;backdrop-filter:blur(4px);z-index:3;}
.preview-actions{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;padding:8px 14px 20px;}
.btn-preview{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#FF6B3D,#FF8A5B);color:#fff;text-decoration:none;font-weight:700;font-size:14.5px;padding:12px 28px;border-radius:26px;box-shadow:0 6px 18px rgba(255,107,61,.4);transition:transform .15s ease, box-shadow .15s ease;}
.btn-preview:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,107,61,.5);}
.btn-preview:active{transform:translateY(0) scale(.97);}
.btn-raw{display:inline-flex;align-items:center;gap:7px;background:#fff;color:#FF6B3D;border:1.5px solid #FFD3C2;text-decoration:none;font-weight:600;font-size:14px;padding:11px 22px;border-radius:26px;transition:background .15s ease, border-color .15s ease;}
.btn-raw:hover{background:#FFF1EC;border-color:#FFB499;}
.btn-raw:active{transform:scale(.97);}
.detail-body{padding:14px;}
.detail-body h1{font-size:19px;margin:0 0 10px;line-height:1.4;}
.detail-meta{display:flex;align-items:center;gap:10px;margin:14px 0;}
.detail-meta .av{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:16px;}
.detail-meta .info{flex:1;min-width:0;}
.detail-meta .info .nm{font-weight:800;font-size:15px;display:flex;align-items:center;gap:6px;}
.detail-meta .info .sub{font-size:12px;color:var(--sub);}
.stat-bar{display:flex;background:var(--bg);border-radius:14px;padding:12px;margin:14px 0;}
.stat-bar .it{flex:1;text-align:center;}
.stat-bar .it .n{font-size:17px;font-weight:800;}
.stat-bar .it .l{font-size:11px;color:var(--sub);margin-top:2px;}
.stat-bar .it + .it{border-left:1px solid var(--line);}
@media(min-width:768px){
  .detail-body{max-width:760px;margin:0 auto;}
  .detail-hero{height:200px;}
}

/* 评分卡 */
.score-card{display:flex;gap:14px;align-items:center;}
.score-big{width:74px;height:74px;border-radius:50%;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gold),#FFD06B);color:#fff;}
.score-big .v{font-size:26px;font-weight:800;line-height:1;}
.score-big .l{font-size:10px;}
.dims{flex:1;}
.dim{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:12px;}
.dim .bar{flex:1;height:6px;background:var(--line);border-radius:4px;overflow:hidden;}
.dim .bar i{display:block;height:100%;background:var(--primary);border-radius:4px;}
.dim .v{width:26px;text-align:right;color:var(--sub);}

/* 评论 */
.cmt{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);}
.cmt .av{width:34px;height:34px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;}
.cmt .c{flex:1;min-width:0;}
.cmt .c .nm{font-size:13px;font-weight:700;}
.cmt .c .tx{font-size:13.5px;margin:3px 0;}
.cmt .c .ft{font-size:11px;color:var(--sub);display:flex;gap:14px;}
.cmt .c .lk{margin-left:auto;color:var(--sub);font-size:13px;display:flex;flex-direction:column;align-items:center;}

/* 固定底部操作条（错开在底部导航之上） */
.action-bar{
  position:sticky;bottom:calc(var(--tabbar-h) + var(--safe-b));z-index:55;background:#fff;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:10px;padding:9px 12px;padding-bottom:calc(9px + var(--safe-b));
}
.action-bar .inp{flex:1;background:var(--bg);border-radius:20px;padding:9px 14px;color:var(--sub);font-size:13px;}
.action-bar .act{display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--sub);gap:1px;min-width:34px;}
.action-bar .act .e{font-size:20px;}
.action-bar .act.on{color:var(--like);}
.action-bar .act.gold.on{color:var(--gold);}
@media(min-width:992px){
  .action-bar{bottom:0;}
}

/* ============ 专辑/会员 ============ */
.price-card{background:var(--card);border-radius:18px;padding:16px;box-shadow:var(--shadow);border:2px solid transparent;position:relative;}
.price-card.hot{border-color:var(--primary);}
.price-card .ribbon{position:absolute;top:-1px;right:16px;background:var(--primary);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:0 0 10px 10px;}
.price-card .pn{font-size:16px;font-weight:800;}
.price-card .pd{font-size:12px;color:var(--sub);margin:4px 0 10px;}
.price-card .pp{font-size:28px;font-weight:800;color:var(--primary);}
.price-card .pp small{font-size:13px;font-weight:600;}
.price-card .pl{list-style:none;padding:0;margin:12px 0 0;}
.price-card .pl li{font-size:12.5px;padding:5px 0;display:flex;gap:7px;color:#444;}
.price-card .pl li .ck{color:var(--accent);}
.price-card .pl li.off{color:var(--sub);text-decoration:line-through;}
.price-card .pl li.off .ck{color:var(--sub);}

/* ============ 会员中心（member.php） ============ */
.mb-card{position:relative;background:linear-gradient(135deg,#FFE9DA,#FFD9C2);border-radius:18px;padding:18px 16px;color:#5a3a1c;overflow:hidden;margin:0 0 14px;}
.mb-card.vip{background:linear-gradient(135deg,#2BBF7A,#1E9E8C);color:#fff;}
.mb-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.mb-top .vip-badge{background:rgba(255,255,255,.28);color:inherit;backdrop-filter:blur(3px);}
.mb-status{font-size:11px;padding:2px 10px;border-radius:20px;background:rgba(0,0,0,.12);color:inherit;}
.mb-status.on{background:rgba(255,255,255,.3);}
.mb-main .mb-exp{font-size:13px;opacity:.92;}
.mb-main .mb-sub{font-size:13px;opacity:.92;margin-top:3px;}
.mb-main .mb-sub b{font-size:20px;}
.mb-renew{position:absolute;right:16px;bottom:16px;font-size:13px;font-weight:800;color:inherit;background:rgba(255,255,255,.32);padding:7px 14px;border-radius:20px;}
.mb-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 4px;}
.mb-perk{background:var(--card);border-radius:14px;padding:13px 8px;text-align:center;box-shadow:var(--shadow);}
.mb-perk .mp-ic{font-size:22px;}
.mb-perk .mp-t{font-size:13px;font-weight:800;margin-top:5px;color:var(--text);}
.mb-perk .mp-d{font-size:11px;color:var(--sub);margin-top:2px;line-height:1.4;}

/* ============ 后台 ============ */
.admin-nav{display:flex;gap:6px;overflow-x:auto;padding:8px 12px;background:#1f2329;scrollbar-width:none;}
.admin-nav::-webkit-scrollbar{display:none;}
.admin-nav button{flex:0 0 auto;padding:7px 13px;border-radius:18px;background:#2c3138;color:#cfd3d8;font-size:12px;font-weight:600;white-space:nowrap;}
.admin-nav button.on{background:var(--primary);color:#fff;}
.admin-nav a{display:inline-block;padding:7px 13px;border-radius:18px;background:#2c3138;color:#cfd3d8;font-size:12px;font-weight:600;white-space:nowrap;text-decoration:none;}
.admin-nav a.on{background:var(--primary);color:#fff;}
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 12px;margin-top:4px;}
.kpi .k{background:#fff;border-radius:12px;padding:12px 8px;text-align:center;box-shadow:var(--shadow);}
.kpi .k .n{font-size:18px;font-weight:800;color:var(--primary);}
.kpi .k .l{font-size:11px;color:var(--sub);margin-top:3px;}
.admin-table{width:100%;border-collapse:collapse;font-size:12px;background:#fff;}
.admin-table th{background:var(--bg);color:var(--sub);font-weight:600;text-align:left;padding:10px 8px;position:sticky;top:0;}
.admin-table td{padding:10px 8px;border-bottom:1px solid var(--line);}
.pill{display:inline-block;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:700;}
.pill-ok{background:#E4F8EE;color:var(--accent);}
.pill-warn{background:#FFF3DA;color:var(--gold);}
.pill-bad{background:#FFE6E6;color:var(--like);}
.pill-info{background:var(--primary-light);color:var(--primary);}
.stat-input{width:64px;border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:12px;color:var(--text);background:#fff;text-align:center;}
.stat-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);}

/* ============ 角色 / 权限分配 ============ */
.role-card{padding:14px;margin-bottom:12px;}
.role-head{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap;}
.role-name{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px;font-weight:700;min-width:140px;flex:0 0 auto;}
.role-desc{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;flex:1 1 160px;min-width:120px;}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px 12px;}
.perm-chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;user-select:none;}
.perm-chk input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;}

@media(min-width:992px){
  .admin-table{font-size:13px;}
  .admin-table th,.admin-table td{padding:12px 10px;}
}

/* ============ 杂项 ============ */
.banner{margin:10px 12px;border-radius:16px;padding:16px;color:#fff;background:linear-gradient(120deg,#FF6B3D,#FF9A6B);box-shadow:var(--shadow);}
.banner .bt{font-size:16px;font-weight:800;}
.banner .bs{font-size:12px;opacity:.92;margin-top:4px;}
.empty{text-align:center;color:var(--sub);padding:40px 0;font-size:13px;}
.hero-cover{height:140px;background:linear-gradient(120deg,#FFB27A,#FF6B3D);position:relative;display:flex;align-items:center;justify-content:center;color:#fff;}
.hero-cover .edit{position:absolute;right:14px;bottom:14px;background:rgba(255,255,255,.25);padding:6px 13px;border-radius:18px;font-size:12px;backdrop-filter:blur(4px);}
.profile-av{width:74px;height:74px;border-radius:50%;border:3px solid #fff;margin:-37px auto 0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:800;background:linear-gradient(135deg,var(--primary),#FF9A6B);position:relative;}
.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.8);color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;z-index:999;opacity:0;transition:.25s;pointer-events:none;}
.toast.show{opacity:1;}

/* ============ 果核服务页 ============ */
.svc-hero{background:linear-gradient(135deg,#FFF4EC,#FFE9DA);border:1px solid var(--line);border-radius:16px;padding:16px 14px;margin:0 0 12px;}
.svc-hero-badge{display:inline-block;font-size:11.5px;font-weight:700;color:var(--primary);background:#fff;border:1px solid var(--primary-light);padding:3px 10px;border-radius:20px;margin-bottom:10px;}
.svc-chain{display:flex;flex-wrap:wrap;align-items:center;gap:3px;font-size:12.5px;line-height:2;}
.svc-chain span{padding:2px 8px;border-radius:8px;background:rgba(255,255,255,.8);color:var(--text);font-weight:600;}
.svc-chain span.hl{background:var(--primary);color:#fff;}
.svc-chain i{color:var(--sub);font-style:normal;font-size:11px;}
.svc-core{margin-top:10px;font-size:13px;line-height:1.8;color:var(--sub);background:rgba(255,255,255,.6);border-radius:10px;padding:9px 11px;}
.svc-core b{color:var(--primary);}
.svc-nav{position:sticky;top:0;z-index:20;display:flex;gap:7px;overflow-x:auto;padding:9px 2px;margin:0 -2px 12px;background:var(--bg);-webkit-overflow-scrolling:touch;}
.svc-nav a{flex:0 0 auto;white-space:nowrap;font-size:12px;padding:5px 11px;border-radius:18px;background:#fff;border:1px solid var(--line);color:var(--sub);text-decoration:none;}
.svc-nav a:active{background:var(--primary);color:#fff;border-color:var(--primary);}
.svc-sec{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 14px;margin:0 0 12px;border-top:3px solid var(--ac);}
.svc-sec-h{display:flex;align-items:center;gap:10px;margin:-2px 0 12px;}
.svc-ico{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;background:color-mix(in srgb,var(--ac) 14%,#fff);flex:0 0 auto;}
.svc-sec-t{font-size:14.5px;font-weight:800;color:var(--text);line-height:1.35;}
.svc-sec-s{font-size:11px;color:var(--ac);font-weight:700;margin-top:2px;}
.svc-item{margin:0 0 12px;padding:0 0 12px;border-bottom:1px dashed var(--line);}
.svc-item:last-child{margin:0;padding:0;border-bottom:none;}
.svc-item-h{font-size:13px;font-weight:700;color:var(--ac);margin:0 0 6px;}
.svc-ul{padding:0;margin:0;list-style:none;}
.svc-ul li{position:relative;padding:3px 0 3px 15px;font-size:12.5px;line-height:1.6;color:var(--text);}
.svc-ul li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--ac);opacity:.7;}
.svc-ul-pad{padding:2px 0 2px 2px;}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:none;align-items:flex-end;}
.modal-mask.show{display:flex;}
.modal{background:#fff;border-radius:18px 18px 0 0;width:100%;max-width:var(--maxw);margin:0 auto;padding:18px;max-height:80vh;overflow:auto;}
.modal h4{margin:0 0 14px;font-size:16px;}
.close-x{position:absolute;right:16px;top:16px;font-size:22px;color:var(--sub);}
.qr-box{width:170px;height:170px;margin:0 auto 12px;background:
  repeating-conic-gradient(#1f2329 0 25%, #fff 0 50%) 0/22px 22px;
  border-radius:12px;border:8px solid #fff;box-shadow:var(--shadow);}
.poster{width:230px;margin:0 auto;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#fff;}
.poster .ph{height:150px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:46px;}
.poster .pb{padding:14px;}
.poster .pb .pt{font-size:15px;font-weight:800;line-height:1.4;}
.poster .pb .pa{font-size:12px;color:var(--sub);margin-top:8px;display:flex;align-items:center;gap:6px;}
.poster .pb .pc{margin-top:12px;display:flex;justify-content:space-between;align-items:center;}
.poster .pb .qr{width:46px;height:46px;background:repeating-conic-gradient(#1f2329 0 25%,#fff 0 50%) 0/10px 10px;border-radius:6px;}
@media(min-width:992px){
  .modal-mask.show{align-items:center;}
  .modal{border-radius:18px;max-width:520px;}
}

/* ============ 私信 / 消息 ============ */
.modal textarea{min-height:90px;width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px;resize:none;box-sizing:border-box;font-family:inherit;}
.modal .count{font-size:11px;color:var(--sub);text-align:right;margin-top:4px;}
.msg-tabs{display:flex;gap:8px;margin-bottom:12px;}
.msg-tabs .t{flex:1;text-align:center;padding:8px 0;border-radius:10px;background:var(--bg);color:var(--sub);font-size:13px;font-weight:700;}
.msg-tabs .t.on{background:var(--primary);color:#fff;}
.msg-item{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);}
.msg-item .av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;}
.msg-item .mc{flex:1;min-width:0;}
.msg-item .mn{font-size:13px;font-weight:700;}
.msg-item .mt{font-size:13px;color:#444;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.msg-item .mf{font-size:11px;color:var(--sub);}
.msg-item.unread{background:linear-gradient(90deg,var(--primary-light),transparent 60%);}
/* 删除/移除按钮（管理功能） */
.msg-item{position:relative;}
.msg-item .del{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.05);color:var(--sub);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;}
.msg-item .del:hover{background:rgba(220,60,60,.12);color:#d33;}
.pin .cover .del{position:absolute;top:8px;right:8px;z-index:3;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;}
.pin .cover .del:hover{background:rgba(220,60,60,.9);}
.pin .cover .edit-post{position:absolute;top:8px;right:42px;z-index:3;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;}
.pin .cover .edit-post:hover{background:rgba(58,141,255,.9);}
.pin .cover{padding-right:0;}
.dot-red{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--like);margin-left:4px;vertical-align:middle;}
/* 消息中心：分区未读徽标 + 互动类型图标 */
.msg-tabs .bdg{display:inline-block;min-width:16px;height:16px;line-height:16px;padding:0 4px;margin-left:4px;border-radius:9px;background:var(--like);color:#fff;font-size:10px;font-weight:800;vertical-align:middle;}
.cover-del{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:13px;color:var(--like);cursor:pointer;user-select:none;}
.cover-del input{accent-color:var(--like);width:15px;height:15px;}

/* ---------- 缴费页：收款账户选择卡 ---------- */
.pay-acc{display:block;position:relative;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 10px;cursor:pointer;background:#fff;transition:.15s;}
.pay-acc:hover{border-color:var(--primary);}
.pay-acc:has(input:checked){border-color:var(--primary);background:var(--primary-light);}
.pay-acc input[type=radio]{position:absolute;top:14px;right:14px;width:16px;height:16px;accent-color:var(--primary);}
.pay-acc .pa-body{display:block;}
.pay-acc .pa-top{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;}
.pay-acc .pa-ic{font-size:18px;line-height:1;}
.pay-acc .pa-tp{font-size:11px;color:var(--sub);font-weight:500;background:#f2f3f5;border-radius:6px;padding:1px 6px;margin-left:2px;}
.pay-acc .pa-qr{margin-top:10px;text-align:center;}
.pay-acc .pa-qr img{max-width:160px;max-height:160px;border-radius:10px;background:#fff;padding:6px;border:1px solid var(--line);}
.pay-acc .pa-no{margin-top:8px;font-size:13px;color:var(--sub);word-break:break-all;}
.pay-acc .pa-rm{margin-top:4px;font-size:12px;color:var(--sub);}
.msg-item .act-ic{font-style:normal;margin-right:2px;}
.msg-item .mc .ttl{color:var(--primary);font-weight:700;}
.msg-item.deleted{opacity:.35;pointer-events:none;}

/* ============ 响应式工具类 ============ */
.desktop-only{display:none;}

@media(min-width:992px){
  .mobile-only{display:none;}
  .desktop-only{display:flex;}
  .desktop-nav{display:flex;align-items:center;gap:8px;margin-left:auto;}
  .desktop-nav .dn-item{
    display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:18px;
    font-size:14px;font-weight:600;color:var(--sub);text-decoration:none;
  }
  .desktop-nav .dn-item:hover{color:var(--primary);background:var(--primary-light);}
  .desktop-nav .dn-item.active{color:var(--primary);background:var(--primary-light);}
  .desktop-nav .dn-item .ic{font-size:16px;}

  .tabbar{display:none;}
  .spacer{display:none;}

  .app-header .bar{max-width:var(--maxw-desktop);margin:0 auto;padding:0 24px;}
  .brand .logo{width:36px;height:36px;}
  .brand .logo-text{font-size:20px;}

  .page-np{padding:24px;}
  .page{padding:24px;}
  .grid2{padding:0;}
  .waterfall{padding:0;}
  .chips{padding:10px 0;}

  /* 详情页桌面两栏：左侧内容，右侧推荐/作者卡片（由页面决定是否启用） */
  .detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,360px);gap:24px;align-items:start;}
}

/* 超小屏适配 */
@media(max-width:360px){
  .brand .logo-text{font-size:16px;}
  .desktop-nav .dn-item{padding:6px 10px;font-size:13px;}
}

/* ============ Emoji 选择器（发布页 / 后台分类） ============ */
.emoji-overlay{position:fixed;inset:0;z-index:999;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(15,18,22,.45);backdrop-filter:blur(2px);}
.emoji-overlay.on{display:flex;}
.emoji-panel{width:100%;max-width:380px;max-height:78vh;background:#fff;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.emoji-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:700;color:var(--text);}
.emoji-close{border:0;background:transparent;font-size:16px;color:var(--sub);cursor:pointer;line-height:1;}
.emoji-tabs{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch;}
.emoji-tab{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--sub);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s;}
.emoji-tab.on{background:var(--primary);color:#fff;border-color:var(--primary);}
.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:10px;overflow-y:auto;}
.emoji-cell{border:0;background:#f6f7f9;border-radius:8px;font-size:22px;line-height:1;padding:8px 0;cursor:pointer;transition:transform .08s,background .12s;}
.emoji-cell:hover{background:#eceef1;transform:scale(1.12);}

/* ============ 广告位（后台 admin/ads.php 统一管理） ============ */
.ad-slot{position:relative;margin:12px 0;border-radius:12px;overflow:hidden;background:var(--card);box-shadow:var(--shadow);}
.ad-badge{position:absolute;top:6px;left:6px;z-index:2;background:rgba(0,0,0,.45);color:#fff;font-size:10px;line-height:1;padding:3px 7px;border-radius:8px;backdrop-filter:blur(3px);}
.ad-link{display:block;text-decoration:none;}
.ad-img{display:block;width:100%;height:auto;}
.ad-cap{display:block;padding:8px 12px;font-size:13px;font-weight:600;color:var(--text);text-align:center;}
.ad-text{display:block;padding:14px 16px;font-size:14px;font-weight:600;color:var(--primary);text-align:center;text-decoration:none;background:#f6f7f9;}
.ad-text:hover{background:#eceef1;}
.ad-code{display:block;}
