/* ---------- tokens: neutral base ---------- */
:root{
  --bg:#F0F2F4;
  --paper:#FFFFFF;
  --paper-2:#F6F8FA;
  --ink:#151A20;
  --accent:#1F3A5F;
  --on-accent:#FFFFFF;
  --mark:#B4633B;
  --muted:#66707B;
  --line:#E1E6EB;
  --radius:8px;
  --shadow:0 0 50px rgba(20,35,55,.08);
  --hero:linear-gradient(160deg,#28405C 0%,#1B2E45 60%,#132234 100%);
  --on-hero:#F8F3E7;
  --serif:"Songti SC","STSong","SimSun",serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --display:var(--sans);
  color-scheme:light dark;
}

/* paper：养生 / 中医 / 文化 */
body[data-theme="paper"]{
  --bg:#EDE5D6; --paper:#F7F2E7; --paper-2:#FBF7EE; --ink:#26221C;
  --accent:#1F3D33; --on-accent:#F7F2E7; --mark:#A63D2F;
  --muted:#7A6E5D; --line:#D9CDB8; --radius:2px;
  --shadow:0 0 60px rgba(60,45,20,.12);
  --hero:linear-gradient(160deg,#24463B 0%,#16302A 60%,#122822 100%);
  --display:"Songti SC","STSong","SimSun",serif;
}

/* clinic：口腔 / 体检 / 器械 */
body[data-theme="clinic"]{
  --bg:#EDF2F6; --paper:#FFFFFF; --paper-2:#F4F8FB; --ink:#0F1E2B;
  --accent:#0E6B7A; --on-accent:#FFFFFF; --mark:#123E63;
  --muted:#5A6E80; --line:#D9E4EC; --radius:6px;
  --shadow:0 0 50px rgba(15,45,75,.09);
  --hero:linear-gradient(160deg,#0F4E5A 0%,#0A3640 60%,#062229 100%);
}

/* soft：医美 / 心理 / 母婴 */
body[data-theme="soft"]{
  --bg:#F6F0EE; --paper:#FFFCFB; --paper-2:#FAF3F1; --ink:#2B2125;
  --accent:#7A3F4E; --on-accent:#FFF8F6; --mark:#B9805A;
  --muted:#8A7379; --line:#EADBD7; --radius:14px;
  --shadow:0 0 60px rgba(95,55,65,.10);
  --hero:linear-gradient(160deg,#5C3542 0%,#452734 60%,#311B25 100%);
}

/* ---------- dark ---------- */
@media (prefers-color-scheme: dark){
  body[data-theme="neutral"]{
    --bg:#0D0F12; --paper:#15181C; --paper-2:#1C2025; --ink:#E7EAEE;
    --muted:#98A1AB; --line:#2B3138; --accent:#9DBBDD; --on-accent:#0D1520;
    --mark:#D08A6A; --shadow:none;
    --hero:linear-gradient(160deg,#1B2530 0%,#121A23 60%,#0C1218 100%);
  }
  body[data-theme="paper"]{
    --bg:#0E0D0B; --paper:#171512; --paper-2:#1E1B17; --ink:#E7DFD0;
    --muted:#9C9180; --line:#332E27; --accent:#93B7A8; --on-accent:#12211C;
    --mark:#D08472; --shadow:none;
  }
  body[data-theme="clinic"]{
    --bg:#081014; --paper:#0E181E; --paper-2:#132028; --ink:#E1EAF2;
    --muted:#8FA3B1; --line:#20313B; --accent:#7FC4CE; --on-accent:#071A1F;
    --mark:#93B9DC; --shadow:none;
  }
  body[data-theme="soft"]{
    --bg:#110C0E; --paper:#191216; --paper-2:#21181C; --ink:#F0E3E6;
    --muted:#A78E95; --line:#34272E; --accent:#D9A3B2; --on-accent:#231016;
    --mark:#D8A87A; --shadow:none;
  }
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans); background:var(--bg); color:var(--ink);
  font-size:16px; line-height:1.8; -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.app{max-width:720px;margin:0 auto;min-height:100vh;background:var(--paper);
  padding-bottom:calc(70px + env(safe-area-inset-bottom));box-shadow:var(--shadow)}

/* 顶部 */
.masthead{padding:26px 22px 0}
.brand{display:flex;align-items:center;gap:14px}
.seal{width:56px;height:56px;background:var(--accent);color:var(--on-accent);
  font-family:var(--display);font-weight:900;font-size:34px;display:flex;align-items:center;justify-content:center;
  flex:none;border-radius:calc(var(--radius) / 2)}
.brandtext h1{font-family:var(--display);font-weight:900;font-size:25px;margin:0;letter-spacing:1px}
.brandtext .desc{margin:3px 0 0;font-size:12.5px;color:var(--muted)}
.rule{height:5px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:18px}

/* 封面 */
.hero{display:block;margin:18px 22px 0;min-height:360px;position:relative;overflow:hidden;
  background-image:var(--cover,var(--hero));background-size:cover;background-position:center;
  display:flex;align-items:flex-end;border-radius:var(--radius)}
.hero.no-cover{min-height:300px;
  background-image:
    radial-gradient(circle at 16% 18%,rgba(255,255,255,.07),transparent 42%),
    radial-gradient(circle at 84% 6%,rgba(255,255,255,.05),transparent 46%),
    var(--hero)}
 .hero::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(8,12,18,.12) 0%,rgba(8,12,18,.68) 62%,rgba(8,12,18,.88) 100%)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-in{position:relative;z-index:2;padding:26px 24px;color:var(--on-hero)}
.hero-kicker{font-size:12px;letter-spacing:2px;color:var(--on-hero);opacity:.7;margin-bottom:12px}
.hero h2{font-family:var(--display);font-weight:900;font-size:31px;line-height:1.38;margin:0 0 10px;letter-spacing:.5px}
.hero p{margin:0;font-size:13px;color:var(--on-hero);opacity:.8;line-height:1.7}

/* 列表 */
.list{padding:26px 22px 0}
.sec-label{font-size:12px;letter-spacing:4px;color:var(--muted);display:flex;align-items:center;gap:12px}
.sec-label::after{content:"";flex:1;height:1px;background:var(--line)}
.item{display:flex;gap:14px;padding:20px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.item:active{opacity:.7}
.num{font-family:var(--display);font-size:13px;color:var(--mark);padding-top:5px;letter-spacing:1px}
.item-main{flex:1;min-width:0}
.item h3{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.5;margin:0 0 5px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item time{font-size:11.5px;color:var(--muted);padding-top:6px;flex:none}
.morelink{display:block;padding:22px 0 10px;text-align:center;font-size:12.5px;color:var(--muted);letter-spacing:1px}
.morelink:active{opacity:.6}

/* 文章 */
.post{padding:30px 24px 46px}
.post-cover{display:block;width:100%;height:190px;object-fit:cover;border-radius:14px;margin:0 0 22px}
.post-kicker{font-size:11.5px;letter-spacing:2px;color:var(--muted);margin-bottom:14px}
.post h1{font-family:var(--display);font-weight:900;font-size:26px;line-height:1.45;margin:0 0 14px;letter-spacing:.5px}
.post-meta{font-size:11.5px;color:var(--muted)}
.cover{width:100%;margin:20px 0 0;display:block;border-radius:var(--radius)}
.ornament{display:flex;align-items:center;gap:12px;color:var(--mark);font-size:9px;margin:22px 0 26px}
.ornament span{flex:1;height:1px;background:var(--line)}
.content{font-size:16.5px;line-height:1.95;color:var(--ink)}
.content p{margin:0 0 20px}
.content h2{font-family:var(--display);font-size:20px;margin:34px 0 14px;padding-left:11px;
  border-left:3px solid var(--mark);line-height:1.5}
.content h3{font-family:var(--display);font-size:18px;margin:26px 0 10px}
.content blockquote{margin:24px 0;padding:16px 18px;background:var(--paper-2);
  border-left:3px solid var(--accent);border-radius:calc(var(--radius) / 2);
  font-family:var(--display);font-size:16px;color:var(--ink)}
.content img{max-width:100%;display:block;margin:22px auto;border-radius:var(--radius)}
.content ul,.content ol{padding-left:22px;margin:0 0 20px}
.content li{margin-bottom:8px}
.content strong{color:var(--accent)}
.content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.content a:active{opacity:.7}

/* 作者栏 */
.byline{display:flex;align-items:center;gap:10px;margin:0 0 4px}
.bavatar{width:34px;height:34px;flex:none;border-radius:50%;background:var(--accent);color:var(--on-accent);
  font-family:var(--display);font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}
.bavatar.big{width:46px;height:46px;font-size:21px}
.bmeta{flex:1;min-width:0;line-height:1.35}
.bmeta b{display:block;font-size:13.5px;font-weight:600}
.bmeta span{display:block;font-size:11.5px;color:var(--muted)}
.views{font-size:11.5px;color:var(--muted);flex:none}

/* 免责声明 */
.disclaimer{margin:30px 0 0;padding:12px 14px;background:var(--paper-2);border-left:2px solid var(--line);
  border-radius:calc(var(--radius) / 2);font-size:12px;line-height:1.75;color:var(--muted)}

/* 草稿预览 */
.draftbar{margin:18px 24px 0;padding:11px 14px;background:var(--paper-2);border:1px dashed var(--mark);
  border-radius:var(--radius);font-size:12.5px;letter-spacing:1px;color:var(--mark)}

/* 互动条 */
.reactbar{display:flex;gap:6px;margin:24px 0 0;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.react{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;background:none;border:0;
  padding:8px 0;color:var(--muted);font-size:12px;font-family:var(--sans);cursor:pointer;min-height:44px;
  -webkit-tap-highlight-color:transparent}
.react svg{width:19px;height:19px;flex:none}
.react .n{font-size:11.5px;color:var(--muted)}
.react.on{color:var(--mark)}
.react.on svg{fill:currentColor;fill-opacity:.14}
.react:active{opacity:.6}

/* 订阅 */
.cta{margin:28px 0 0;padding:22px 20px;background:var(--accent);color:var(--on-accent);border-radius:var(--radius)}
.cta b{font-family:var(--display);font-size:19px;letter-spacing:1px}
.cta p{margin:8px 0 16px;font-size:13px;line-height:1.7;color:var(--on-accent);opacity:.75}
.cta a{display:block;text-align:center;padding:12px;background:var(--on-accent);color:var(--accent);
  font-size:14px;letter-spacing:2px;border-radius:calc(var(--radius) / 2)}
.cta a:active{opacity:.8}

/* 作者卡 */
.authorbox{display:flex;gap:12px;margin:24px 0 0;padding:18px;background:var(--paper-2);
  border:1px solid var(--line);border-radius:var(--radius)}
.authorbox b{font-size:14px}
.authorbox p{margin:5px 0 0;font-size:12.5px;line-height:1.7;color:var(--muted)}

/* 上下篇 */
.pager{display:flex;flex-direction:column;gap:10px;margin:26px 0 0}
.pager a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);
  font-family:var(--display);font-size:15px;line-height:1.5}
.pager a span{display:block;font-family:var(--sans);font-size:11px;letter-spacing:2px;color:var(--muted);margin-bottom:3px}

/* 单页 */
.pagebox{padding:30px 24px 46px}
.pagebox h1{font-family:var(--display);font-weight:900;font-size:27px;margin:0 0 10px}

/* 查 */
.archive-head{padding:30px 24px 0}
.archive-head h1{font-family:var(--display);font-weight:900;font-size:28px;margin:0;letter-spacing:1px}
.archive-sub{margin:6px 0 18px;font-size:12.5px;color:var(--muted)}
.search{display:flex;gap:8px}
.search input{flex:1;min-width:0;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);
  padding:12px 14px;font-size:15px;font-family:var(--sans);border-radius:var(--radius)}
.search input:focus{outline:none;border-color:var(--accent)}
.search button{border:0;background:var(--accent);color:var(--on-accent);padding:0 20px;font-size:14px;
  letter-spacing:2px;border-radius:var(--radius);font-family:var(--sans)}

/* 表单 */
.leadform{display:flex;flex-direction:column;gap:12px;margin-top:26px}
.leadform input,.leadform textarea{border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;
  font-size:15px;background:var(--paper-2);font-family:var(--sans);color:var(--ink)}
.leadform input:focus,.leadform textarea:focus{outline:none;border-color:var(--accent)}
.leadform button{background:var(--accent);color:var(--on-accent);border:0;padding:14px;font-size:15px;
  letter-spacing:4px;font-family:var(--sans);border-radius:var(--radius)}
.consent{display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.65;color:var(--muted);margin:0}
.consent input{margin:3px 0 0;flex:none;width:16px;height:16px}
.toast{margin:16px 22px 0;padding:11px 14px;background:var(--paper-2);border:1px solid var(--line);
  color:var(--ink);font-size:13px;border-radius:var(--radius)}
.toast.err{background:var(--paper-2);border-color:var(--mark);color:var(--mark)}
.empty{padding:70px 22px;text-align:center;color:var(--muted)}

/* 底栏：三键模块 */
.tabbar{position:fixed;left:0;right:0;bottom:0;max-width:720px;margin:0 auto;display:flex;
  background:var(--paper);border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);z-index:9}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-height:54px;padding:7px 0 6px;color:var(--muted);font-size:11px;letter-spacing:1px;position:relative;
  -webkit-tap-highlight-color:transparent}
.tabicon{display:block;width:23px;height:23px}
.tabicon svg{width:100%;height:100%;display:block}
.tablabel{line-height:1;font-size:11px}
.tab.on{color:var(--accent);font-weight:600}
.tab.on .tabicon svg{stroke-width:2}
.tab:active{opacity:.6}
.icp{text-align:center;color:var(--muted);font-size:11px;padding:14px 0 80px;background:var(--paper)}

/* 浮动提示 */
#toast{position:fixed;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));margin:0;
  transform:translate(-50%,10px);opacity:0;pointer-events:none;transition:.22s ease;z-index:20;
  white-space:nowrap;background:var(--accent);border:0;color:var(--on-accent);border-radius:999px}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- 后台 ---------- */
body.admin{background:#F1EFEA;font-size:15px;line-height:1.7}
.adminbar{display:flex;justify-content:space-between;align-items:center;background:#fff;
  padding:13px 16px;border-bottom:1px solid #E4E0D8;position:sticky;top:0;z-index:5}
.adminbar b{font-family:var(--display);font-size:17px;letter-spacing:1px}
.adminbar nav a{margin-left:14px;color:#6B6357;font-size:13.5px}
.adminmain{max-width:820px;margin:0 auto;padding:16px}
.toolbar{margin-bottom:12px}
.btn{display:inline-block;background:var(--accent);color:var(--on-accent);border:0;border-radius:4px;
  padding:10px 18px;font-size:14.5px;cursor:pointer;letter-spacing:1px}
.btn.ghost{background:#fff;color:#3B352C;border:1px solid #D8D2C6}
.rows{background:#fff;border:1px solid #E7E2D8}
.row{display:flex;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid #F0ECE4;align-items:center}
.row:last-child{border-bottom:0}
.rowmain{min-width:0;flex:1}
.rtitle{font-family:var(--display);font-weight:700;display:block;margin-bottom:3px;font-size:16px}
.rsub{color:#9A9184;font-size:12.5px}
.rowacts{display:flex;gap:8px}
.mini{border:1px solid #E2DCD0;background:#fff;border-radius:4px;padding:6px 12px;font-size:12.5px;color:#4A4438}
.mini.danger{color:#A63D2F;border-color:#E4C8C2}
.badge{display:inline-block;margin-left:8px;padding:1px 8px;font-size:11.5px;border-radius:4px}
.badge.published{background:#E7EEE4;color:#2E5039}
.badge.draft{background:#F6EEDC;color:#8A6218}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.kpi{background:#fff;border:1px solid #E7E2D8;border-radius:4px;padding:12px 8px;text-align:center}
.kpi b{display:block;font-family:var(--display);font-size:22px;line-height:1.2}
.kpi span{display:block;margin-top:3px;font-size:11px;color:#9A9184}
.bars{display:flex;align-items:flex-end;gap:4px;height:92px;margin:14px 0 16px;
  background:#fff;border:1px solid #E7E2D8;border-radius:4px;padding:10px 12px}
.bar{flex:1;display:flex;align-items:flex-end;height:100%}
.bar i{display:block;width:100%;background:var(--accent);opacity:.72;border-radius:2px 2px 0 0;min-height:2px}
.sec{margin:26px 4px 10px;font-size:15px;font-family:var(--display);letter-spacing:1px}
label{display:block;margin-bottom:14px;font-size:13.5px;color:#5C5548}
label input,label textarea,label select{display:block;width:100%;margin-top:6px;border:1px solid #DED8CC;
  border-radius:4px;padding:10px 12px;font-size:15px;background:#fff;font-family:inherit;color:var(--ink)}
.editorbar{display:flex;gap:8px;margin:10px 0}
.editorbar button{border:1px solid #DED8CC;background:#fff;border-radius:4px;padding:7px 12px;font-size:13.5px}
.editable{min-height:340px;background:#fff;border:1px solid #DED8CC;border-radius:4px;padding:18px;
  outline:none;font-size:16px;line-height:1.9}
.editable:focus{border-color:var(--accent)}
.savebar{display:flex;gap:10px;margin-top:16px}
.loginbox{max-width:340px;margin:18vh auto;background:#fff;padding:30px;border:1px solid #E7E2D8}
.loginbox h1{font-family:var(--display);font-size:20px;margin:0 0 20px;letter-spacing:2px}
.loginbox input{width:100%;padding:12px;border:1px solid #DED8CC;border-radius:4px;margin-bottom:12px;font-size:16px}
.loginbox button{width:100%;padding:12px;border:0;border-radius:4px;background:var(--accent);
  color:var(--on-accent);font-size:15px;letter-spacing:3px}
.err{color:#A63D2F;font-size:13.5px}
.settingsform{background:#fff;padding:18px;border:1px solid #E7E2D8}
.menufrom{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.menufrom .btn{white-space:nowrap}
.menufrom input{flex:1;min-width:120px;padding:10px;border:1px solid #DED8CC;border-radius:4px}
.menufrom select,.iconform select{border:1px solid #DED8CC;border-radius:4px;padding:9px 10px;
  font-size:13px;background:#fff;color:#4A4438;font-family:inherit}
.iconform select{padding:6px 8px;font-size:12.5px}
label.check{display:flex;align-items:center;gap:8px}
label.check input{width:auto;margin:0;padding:0;flex:none}
.warn{margin:0 0 14px;padding:12px 14px;background:#F6EEDC;border:1px solid #E4D3A6;
  color:#7A5A12;font-size:13px;border-radius:4px;line-height:1.7}
.warn code{background:#fff;padding:1px 5px;border-radius:3px;font-size:12.5px}

/* 信任页 */
.kindbadge{display:inline-block;margin-right:8px;padding:1px 7px;border:1px solid var(--line);
  border-radius:3px;font-size:10.5px;letter-spacing:1px;line-height:1.6;vertical-align:1px}
.kindbadge.log{color:var(--accent);border-color:var(--accent)}
.kindbadge.no{color:var(--mark);border-color:var(--mark)}
.trustlinks{display:flex;gap:10px;padding:26px 22px 10px}
.trustlinks a{flex:1;padding:16px 16px 14px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--paper-2)}
.trustlinks b{display:block;font-family:var(--display);font-size:15px;margin-bottom:4px}
.trustlinks span{font-size:11.5px;color:var(--muted)}
.badge.log{background:#E8EEF6;color:#1F3A5F}
.badge.no{background:#F7E8E2;color:#8C3B22}
