/* ==========================================================================
   移动端设计系统 · m.css
   主题：2026 百度文库版 / wenku2026 · 设备 m
   风格：头条号（信息流 + 顶部要闻条）+ 小红书（双列图文瀑布）+ 闲鱼/淘宝（详情 + 底部固定购买条）
   自包含：不依赖 token.css，自带 :root 设计变量。
   ========================================================================== */
:root{
  --brand:#0a9d5f; --brand-strong:#07824e; --brand-soft:#e7f7ef;
  --red:#ff2e4d; --red-soft:#fff0f2; --orange:#ff7a00; --gold:#ffb300;
  --ink:#1a1d1f; --ink-2:#4b5563; --ink-3:#8a93a0; --ink-4:#b6bdc7;
  --bg:#f4f5f7; --surface:#ffffff; --line:#eceef1; --line-2:#e2e6ea;
  --shadow:0 2px 10px rgba(20,30,40,.06);
  --radius:14px; --radius-s:10px;
  --top-h:52px; --tab-h:54px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer}
.m-page{padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px) + 6px)}

/* ---------- 顶部栏 ---------- */
.m-top{position:sticky;top:0;z-index:50;height:var(--top-h);display:flex;align-items:center;gap:10px;
  padding:0 12px;background:var(--surface);border-bottom:1px solid var(--line)}
.m-brand{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:800;font-size:17px;color:var(--brand);white-space:nowrap;letter-spacing:.5px}
.m-brand b{color:var(--ink)}
.m-search{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;background:var(--bg);border-radius:999px;padding:7px 12px;color:var(--ink-3)}
.m-search .ic{flex:0 0 auto;font-size:14px}
.m-search input{flex:1 1 0;min-width:0;width:0;border:0;background:none;outline:none;font-size:14px;color:var(--ink)}
.m-top .u{flex:0 0 auto;font-size:13px;color:var(--brand-strong);font-weight:600;padding:6px 4px}
.m-top .u.guest{color:var(--ink-3)}

/* ---------- 头条式要闻滚动条 ---------- */
.m-ticker{display:flex;align-items:center;gap:8px;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 12px;overflow:hidden}
.m-ticker .lab{font-size:12px;font-weight:800;color:var(--red);background:var(--red-soft);padding:2px 8px;border-radius:6px;white-space:nowrap}
.m-ticker .mar{flex:1 1 0;min-width:0;overflow:hidden;white-space:nowrap}
.m-ticker .mar a{display:inline-block;padding-right:26px;font-size:13.5px;color:var(--ink-2)}

/* ---------- 通用区块头 ---------- */
.m-sec{margin:12px 12px 0}
.m-sec-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.m-sec-h h2{font-size:16px;font-weight:800;margin:0;display:flex;align-items:center;gap:6px}
.m-sec-h .en{font-size:11px;color:var(--ink-4);font-weight:600;text-transform:uppercase}
.m-sec-h .more{margin-left:auto;font-size:12.5px;color:var(--ink-3)}
.m-chip{display:inline-block;font-size:11px;color:var(--brand-strong);background:var(--brand-soft);padding:2px 8px;border-radius:5px;font-weight:700}

/* ---------- 头条式资讯信息流 ---------- */
.m-tabs{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none;background:var(--surface);padding:10px 12px;border-bottom:1px solid var(--line);position:sticky;top:var(--top-h);z-index:40}
.m-tabs::-webkit-scrollbar{display:none}
.m-tabs a{font-size:15px;color:var(--ink-3);white-space:nowrap;position:relative;padding-bottom:4px}
.m-tabs a.on{color:var(--ink);font-weight:800}
.m-tabs a.on::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:18px;height:3px;border-radius:2px;background:var(--red)}
.m-feed{padding:0 12px}
.m-feed .it{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.m-feed .it .tx{flex:1;min-width:0}
.m-feed .it h3{margin:0 0 8px;font-size:16px;line-height:1.45;font-weight:700;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.m-feed .it .meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink-3)}
.m-feed .it .meta .src{color:var(--brand-strong);font-weight:600}
.m-feed .it .meta .cm{color:var(--ink-4)}
.m-feed .it .tag{font-size:11px;color:#fff;background:var(--red);padding:1px 6px;border-radius:4px;font-weight:700}
.m-feed .it .img{width:112px;height:80px;border-radius:10px;flex:0 0 112px;background:#e9edf1 center/cover no-repeat}
.m-feed .it.big{flex-direction:column}
.m-feed .it.big .img{width:100%;height:180px;border-radius:12px}
.m-feed .it.three .imgs{display:flex;gap:6px;margin-top:8px}
.m-feed .it.three .imgs .img{width:33.33%;height:96px;flex:none}

/* ---------- 小红书式双列瀑布 ---------- */
.xhs-grid{column-count:2;column-gap:10px;padding:10px 12px}
.xhs-card{break-inside:avoid;display:block;background:var(--surface);border-radius:14px;overflow:hidden;margin-bottom:10px;box-shadow:var(--shadow)}
.xhs-card .cv{width:100%;background:#e9edf1 center/cover no-repeat;background-color:#dfe5ea}
.xhs-card .cv.ph{aspect-ratio:3/4}
.xhs-card .body{padding:9px 10px 11px}
.xhs-card .t{font-size:14px;line-height:1.45;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xhs-card .meta{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--ink-3)}
.xhs-card .meta .au{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.xhs-card .meta .av{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#ffd1dc,#ff8fab);flex:0 0 18px}
.xhs-card .meta .lk{color:var(--ink-3)}
.xhs-card .price{color:var(--red);font-weight:800;font-size:14px}
.xhs-card .price.free{color:var(--brand-strong)}
.xhs-card .badge{position:absolute}

/* ---------- 闲鱼/淘宝式详情 ---------- */
.dt{background:var(--bg)}
.dt-swiper{position:relative;background:#111;height:300px}
.dt-swiper .s{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .4s}
.dt-swiper .s.on{opacity:1}
.dt-swiper .dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:2}
.dt-swiper .dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5)}
.dt-swiper .dots i.on{background:#fff;width:16px;border-radius:4px}
.dt-body{background:var(--surface);padding:14px 14px 0}
.dt-price{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.dt-price .now{color:var(--red);font-size:24px;font-weight:800}
.dt-price .now small{font-size:14px}
.dt-price .old{color:var(--ink-4);text-decoration:line-through;font-size:13px}
.dt-price .free{color:var(--brand-strong);font-size:20px;font-weight:800}
.dt-title{font-size:18px;font-weight:800;line-height:1.5;margin:0 0 10px}
.dt-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.dt-tags span{font-size:12px;color:var(--ink-2);background:var(--bg);border:1px solid var(--line);padding:3px 9px;border-radius:999px}
.dt-tags span.hot{color:var(--red);background:var(--red-soft);border-color:#ffd5dc}
.dt-seller{display:flex;align-items:center;gap:10px;margin:14px 0;padding:12px;background:var(--bg);border-radius:12px}
.dt-seller .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#34d399);flex:0 0 40px}
.dt-seller .nm{font-weight:700;font-size:14px}
.dt-seller .sub{font-size:12px;color:var(--ink-3)}
.dt-seller .go{margin-left:auto;font-size:12px;color:var(--brand-strong);border:1px solid var(--brand);padding:5px 12px;border-radius:999px}
.dt-panel{background:var(--surface);margin-top:10px;padding:14px;border-radius:12px}
.dt-panel h4{margin:0 0 8px;font-size:14px;font-weight:800;display:flex;align-items:center;gap:6px}
.dt-panel h4::before{content:"";width:3px;height:14px;background:var(--brand);border-radius:2px;display:inline-block}
.dt-panel p{margin:0 0 8px;font-size:13.5px;color:var(--ink-2);line-height:1.75}
.dt-panel .kv{display:flex;gap:10px;font-size:13px;color:var(--ink-2);margin-bottom:6px}
.dt-panel .kv b{color:var(--ink-3);font-weight:600;flex:0 0 64px}
.dt-rel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.dt-rel a{background:var(--surface);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.dt-rel .cv{height:90px;background:#e9edf1 center/cover no-repeat}
.dt-rel .t{font-size:13px;padding:7px 9px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 底部固定购买条（闲鱼/淘宝式） */
.dt-buy{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;gap:10px;
  padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--surface);
  border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(0,0,0,.06)}
.dt-buy .ico{display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--ink-3);width:46px}
.dt-buy .ico .e{font-size:18px;line-height:1.2}
.dt-buy .pr{flex:1;min-width:0}
.dt-buy .pr .now{color:var(--red);font-size:18px;font-weight:800}
.dt-buy .pr .now small{font-size:12px}
.dt-buy .pr .lb{font-size:11px;color:var(--ink-4)}
.dt-buy .btn{flex:0 0 auto;border:0;border-radius:999px;padding:11px 22px;font-size:15px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--orange),var(--red))}
.dt-buy .btn.green{background:linear-gradient(135deg,var(--brand),#34d399)}
.dt-buy .btn.gray{background:#9aa3af}
.dt-buy form{display:flex;flex:1;gap:10px}
.dt-buy .btn{flex:1;text-align:center}
/* 已解锁后展示的下载卡 */
.dt-unlocked{margin:14px;background:var(--brand-soft);border:1px solid #bdebd5;border-radius:12px;padding:14px}
.dt-unlocked .ok{color:var(--brand-strong);font-weight:800;font-size:15px;margin-bottom:8px}
.dt-unlocked .code{display:flex;align-items:center;gap:8px;background:#fff;border:1px dashed var(--brand);border-radius:8px;padding:8px 10px;margin-bottom:8px;font-size:14px}
.dt-unlocked .code b{letter-spacing:1px;color:var(--ink)}
.dt-unlocked .code button{border:1px solid var(--brand);background:#fff;color:var(--brand-strong);border-radius:6px;padding:4px 10px;font-size:12px}
.dt-unlocked a.dl{display:block;text-align:center;background:var(--brand);color:#fff;border-radius:8px;padding:10px;font-weight:700}

/* ---------- 资讯详情（阅读器） ---------- */
.read{max-width:720px;margin:0 auto;background:var(--surface);padding:14px 16px 80px}
.read h1{font-size:21px;line-height:1.45;margin:6px 0 12px;font-weight:800}
.read .meta{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-3);margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.read .meta .src{color:var(--brand-strong);font-weight:600}
.read .body{font-size:16px;line-height:1.9;color:var(--ink)}
.read .body p{margin:0 0 14px}
.read .body img{max-width:100%;border-radius:10px;margin:8px 0}
.read .paywall{margin-top:20px;background:var(--brand-soft);border:1px solid #bdebd5;border-radius:12px;padding:18px;text-align:center}
.read .paywall .p{font-size:20px;font-weight:800;color:var(--red);margin-bottom:4px}
.read .paywall .b{display:inline-block;margin-top:10px;background:linear-gradient(135deg,var(--orange),var(--red));color:#fff;border:0;border-radius:999px;padding:11px 26px;font-weight:800;font-size:15px}

/* ---------- 底部 Tabbar ---------- */
.m-tab{position:fixed;left:0;right:0;bottom:0;z-index:55;height:calc(var(--tab-h) + env(safe-area-inset-bottom,0px));
  display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.m-tab a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--ink-3)}
.m-tab a .ic{font-size:20px;line-height:1.1}
.m-tab a.on{color:var(--brand)}
.m-tab a.mid .ic{font-size:26px}
.m-tab a.mid{color:var(--red)}

/* 通用空态 */
.m-empty{text-align:center;color:var(--ink-3);padding:40px 0;font-size:14px}

/* 连线提示（桌面访问移动页时） */
.dev-switch{font-size:12px;color:var(--ink-3);text-align:center;padding:8px}
.dev-switch a{color:var(--brand-strong)}
