/* ==========================================================================
   theme1272 · 打气筒知识库 × 自行车维修保养工具 · A骨架 ms-*
   共享组件样式（首页 / 列表页 / 详情页 / 侧栏）
   变量 --p / --tx / --muted / --border / --card-bg / --bg / --radius 由 main.html 定义
   ========================================================================== */

/* ---------- 布局 ---------- */
.ms-home{--ms-w:1180px}
.ms-wrap{max-width:var(--ms-w);margin:0 auto;padding:0 20px}

/* ---------- 区块标题 ---------- */
.ms-feat,.ms-news{padding:60px 0}
.ms-sec-head{text-align:center;margin-bottom:38px}
.ms-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:2.5px;color:var(--p);margin-bottom:10px}
.ms-sec-title{font-size:30px;font-weight:800;color:var(--tx);letter-spacing:-.4px;margin:0 0 10px}
.ms-sec-desc{font-size:14.5px;color:var(--muted);margin:0}
.ms-sec-head.left{text-align:left;max-width:none}
.ms-sec-head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;text-align:left;max-width:none}
.ms-sec-more{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;border:1px solid color-mix(in srgb,var(--p) 32%,transparent);color:var(--p);font-size:13.5px;font-weight:600;white-space:nowrap;text-decoration:none;transition:.22s}
.ms-sec-more:hover{background:var(--p);color:#fff}

/* ---------- Hero ---------- */
.ms-hero{position:relative;overflow:hidden;padding:70px 0 62px;background:
  radial-gradient(940px 400px at 84% -10%,color-mix(in srgb,var(--p) 18%,transparent) 0%,transparent 62%),
  linear-gradient(180deg,color-mix(in srgb,var(--p) 7%,transparent),transparent 46%),
  var(--bg)}
.ms-hero-inner{display:flex;align-items:center;gap:56px}
.ms-hero-copy{flex:1;min-width:0}
.ms-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--p);background:color-mix(in srgb,var(--p) 12%,transparent);border:1px solid color-mix(in srgb,var(--p) 26%,transparent);padding:6px 14px;border-radius:999px}
.ms-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--p)}
.ms-hero-title{font-size:42px;line-height:1.22;font-weight:800;color:var(--tx);margin:20px 0 14px;letter-spacing:-.5px}
.ms-hero-title em{font-style:normal;color:var(--p)}
.ms-hero-sub{font-size:15.5px;line-height:1.8;color:var(--muted);max-width:520px;margin:0 0 26px}
.ms-hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:34px}
.ms-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:12px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.ms-btn-primary{color:white;background:var(--p);box-shadow:0 10px 24px color-mix(in srgb,var(--p) 34%,transparent)}
.ms-btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px color-mix(in srgb,var(--p) 42%,transparent);color:#fff}
.ms-btn-ghost{color:var(--tx);background:white;border:1px solid color-mix(in srgb,var(--tx) 12%,transparent)}
.ms-btn-ghost:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--p) 45%,transparent);color:var(--p)}
.ms-hero-stats{display:flex;gap:36px;flex-wrap:wrap}
.ms-stat{display:flex;flex-direction:column;gap:2px}
.ms-stat b{font-size:26px;font-weight:800;color:var(--tx);letter-spacing:-.5px}
.ms-stat b small{font-size:14px;font-weight:700;color:var(--p);margin-left:1px}
.ms-stat span{font-size:12.5px;color:var(--muted)}

/* Hero 参数概览卡 */
.ms-hero-art{flex:0 0 380px;min-width:0}
.ms-panel{position:relative;border-radius:20px;padding:24px;background:linear-gradient(160deg,color-mix(in srgb,var(--p) 13%,transparent),transparent 55%),white;border:1px solid color-mix(in srgb,var(--p) 18%,transparent);box-shadow:0 24px 50px -18px color-mix(in srgb,var(--tx) 26%,transparent)}
.ms-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
.ms-panel-logo{font-size:14px;font-weight:800;color:var(--tx);display:inline-flex;align-items:center;gap:8px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-panel-logo::before{content:"🔧";width:24px;height:24px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:color-mix(in srgb,var(--p) 14%,transparent)}
.ms-panel-status{font-size:12px;font-weight:600;color:var(--p);background:color-mix(in srgb,var(--p) 12%,transparent);padding:4px 10px;border-radius:999px;white-space:nowrap}
.ms-panel-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px dashed color-mix(in srgb,var(--tx) 10%,transparent);font-size:13px}
.ms-panel-row .label{color:var(--muted)}
.ms-panel-row b{color:var(--tx);font-weight:600}
.ms-panel-progress{height:6px;border-radius:99px;background:color-mix(in srgb,var(--tx) 8%,transparent);margin:14px 0 10px;overflow:hidden}
.ms-panel-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--p) 72%,transparent),var(--p))}
.ms-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--muted);flex-wrap:wrap}
.ms-panel-step{color:var(--p);font-weight:600}

/* ---------- 卡片网格 ---------- */
.ms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ms-grid-3{grid-template-columns:repeat(3,1fr)}
.ms-grid-2{grid-template-columns:repeat(2,1fr)}
.ms-card{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:white;border:1px solid color-mix(in srgb,var(--tx) 8%,transparent);transition:transform .2s ease,box-shadow .2s ease}
.ms-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -16px color-mix(in srgb,var(--tx) 24%,transparent)}
.ms-card-media{position:relative;display:flex;align-items:center;justify-content:center;height:122px}
.ms-card-ico{width:60px;height:60px;border-radius:16px;background:white;display:flex;align-items:center;justify-content:center;font-size:30px;line-height:1;color:var(--p);box-shadow:0 10px 22px -8px color-mix(in srgb,var(--tx) 30%,transparent)}
.ms-card-tag{position:absolute;top:12px;left:12px;font-size:11px;font-weight:600;color:white;background:color-mix(in srgb,var(--tx) 38%,transparent);padding:3px 9px;border-radius:999px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.ms-card-title{font-size:16.5px;font-weight:700;color:var(--tx);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.ms-card-title a{color:inherit;text-decoration:none}
.ms-card-title a:hover{color:var(--p)}
.ms-card-desc{font-size:13px;line-height:1.65;color:var(--muted);margin:0;flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ms-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);border-top:1px solid color-mix(in srgb,var(--tx) 7%,transparent);padding-top:10px;margin-top:auto}
.ms-card-meta i{margin-right:4px;color:var(--p)}
.ms-card-meta a{color:var(--p);font-weight:600;text-decoration:none;white-space:nowrap}

/* ---------- 文章列表流（ms-post） ---------- */
.ms-list{display:flex;flex-direction:column;gap:16px}
.ms-post{display:flex;align-items:stretch;background:white;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--tx) 8%,transparent);transition:transform .2s ease,box-shadow .2s ease}
.ms-post:hover{transform:translateY(-3px);box-shadow:0 16px 36px -18px color-mix(in srgb,var(--tx) 26%,transparent)}
.ms-post-media{flex:0 0 240px;min-height:150px;position:relative;display:flex;align-items:center;justify-content:center}
.ms-post-media .ms-tag{position:absolute;left:12px;top:12px}
.ms-post-ico{font-size:34px;line-height:1;color:white;opacity:.96}
.ms-post-body{flex:1;min-width:0;padding:20px 24px;display:flex;flex-direction:column;gap:9px;justify-content:center}
.ms-post-title{font-size:18px;font-weight:700;color:var(--tx);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ms-post-title a{color:inherit;text-decoration:none}
.ms-post-title a:hover{color:var(--p)}
.ms-post-desc{font-size:13.5px;line-height:1.7;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ms-post-meta{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.ms-post-meta i{margin-right:4px;color:var(--p)}
.ms-tag{font-size:11px;font-weight:600;color:white;background:color-mix(in srgb,var(--tx) 40%,transparent);padding:3px 10px;border-radius:999px}
.ms-empty{background:var(--card-bg);border:1px dashed var(--border);border-radius:var(--radius);padding:60px 20px;text-align:center;color:var(--muted)}

/* ---------- 渐变占位色块（替代 img） ---------- */
.ms-g1{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 92%,white),color-mix(in srgb,var(--p) 45%,white))}
.ms-g2{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 82%,var(--tx)),color-mix(in srgb,var(--p) 58%,var(--bg)))}
.ms-g3{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 38%,white),var(--p))}
.ms-g4{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 52%,var(--bg)),color-mix(in srgb,var(--p) 88%,var(--tx)))}
.ms-g5{background:linear-gradient(135deg,var(--p),color-mix(in srgb,var(--p) 28%,white))}
.ms-g6{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 70%,white),color-mix(in srgb,var(--p) 20%,transparent))}
.ms-g7{background:linear-gradient(135deg,color-mix(in srgb,var(--p) 60%,var(--tx)),var(--p))}

/* ---------- 面包屑 ---------- */
.ms-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:22px 0 6px;font-size:13px;color:var(--muted)}
.ms-crumb a{color:var(--muted);text-decoration:none}
.ms-crumb a:hover{color:var(--p)}
.ms-crumb .sep{color:var(--border);font-weight:700}
.ms-crumb .now{color:var(--tx);font-weight:600;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 分页 ---------- */
.ms-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:36px}
.ms-pg{min-width:38px;height:38px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:var(--card-bg);color:var(--tx);font-size:13.5px;font-weight:600;text-decoration:none;transition:.2s}
.ms-pg:hover{border-color:var(--p);color:var(--p)}
.ms-pg-on{background:var(--p);border-color:var(--p);color:#fff}
.ms-pg-on:hover{color:#fff}

/* ---------- 列表页 ---------- */
.ms-listpage{padding:6px 0 72px}
.ms-list-head{padding:6px 0 22px}
.ms-h1{font-size:26px;font-weight:800;color:var(--tx);margin:0 0 6px;letter-spacing:-.3px}
.ms-head-desc{font-size:13.5px;color:var(--muted);margin:0}
.ms-cols{display:flex;gap:34px;align-items:flex-start}
.ms-cols-main{flex:1;min-width:0}
.ms-cols-side{flex:0 0 300px;min-width:0}

/* ---------- 详情页 ---------- */
.ms-show{max-width:100%;padding:18px 0 8px}
.ms-show-card{position:relative;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 12px color-mix(in srgb,var(--tx) 5%,transparent)}
.ms-show-card::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--p),color-mix(in srgb,var(--p) 55%,white))}
.ms-show-head{padding:28px 30px 8px}
.ms-show-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:color-mix(in srgb,var(--p) 10%,var(--card-bg));color:var(--p);font-size:12px;font-weight:700;letter-spacing:.04em}
.ms-show-title{font-size:26px;line-height:1.4;margin:14px 0 12px;color:var(--tx)}
.ms-show-meta{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:13px;color:var(--muted);border-top:1px dashed var(--border);padding-top:14px;margin-top:18px}
.ms-show-meta i{color:var(--p)}
.ms-show-cover{height:200px;display:flex;align-items:center;justify-content:center;font-size:64px;background:linear-gradient(135deg,var(--p),color-mix(in srgb,var(--p) 45%,white));color:white;text-shadow:0 4px 14px color-mix(in srgb,var(--p) 45%,transparent)}
.ms-show-body{padding:12px 30px 28px;font-size:15.5px;line-height:1.9;color:var(--tx)}
.ms-show-body p{margin:0 0 1.1em}
.ms-show-body h2{font-size:20px;margin:1.7em 0 .6em;padding-left:12px;border-left:4px solid var(--p);line-height:1.4}
.ms-show-body h3{font-size:17px;margin:1.3em 0 .5em;color:var(--tx)}
.ms-show-body strong{color:var(--p);font-weight:700}
.ms-show-body table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:14px}
.ms-show-body th,.ms-show-body td{padding:10px 12px;border:1px solid var(--border);text-align:left}
.ms-show-body thead th{background:color-mix(in srgb,var(--p) 8%,var(--card-bg));font-weight:700;color:var(--tx)}
.ms-show-summary{margin:0 30px 30px;padding:18px 20px;border-radius:12px;background:var(--bg);border:1px dashed var(--border)}
.ms-show-summary h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px;color:var(--p)}
.ms-show-summary p{margin:0;font-size:14px;line-height:1.8;color:var(--tx);opacity:.85}

/* 上下篇 */
.ms-pn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0 46px}
.ms-pn a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--tx);text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s}
.ms-pn a:hover{border-color:var(--p);box-shadow:0 8px 20px color-mix(in srgb,var(--p) 14%,transparent);transform:translateY(-2px)}
.ms-pn .label{font-size:12px;color:var(--muted)}
.ms-pn .title{font-size:14px;font-weight:600;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ms-pn .next{text-align:right}

/* 相关推荐 */
.ms-related{margin:10px 0 46px}
.ms-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* ---------- 侧栏 widget ---------- */
.ms-widget{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px;box-shadow:0 1px 4px rgba(26,26,26,.05)}
.ms-widget-head{padding:14px 18px;font-weight:700;font-size:15px;border-bottom:1px solid var(--border);color:var(--p);margin:0}
.ms-widget-body ul{padding:6px 0}
.ms-widget-body li{border-bottom:1px solid #f5f5f5}
.ms-widget-body li:last-child{border-bottom:0}
.ms-widget-body a{display:flex;align-items:center;gap:8px;padding:10px 18px;color:var(--tx);font-size:14px;text-decoration:none;transition:.2s;min-width:0}
.ms-widget-body a:hover{color:var(--p);background:rgba(255,105,0,.04)}
.ms-widget-body .wt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-widget-body .wi{flex:0 0 18px;font-weight:700;color:var(--p);font-size:12.5px}
.ms-widget-body small{color:#aaa;font-size:11.5px;white-space:nowrap}
.ms-widget-body a.sub{padding-left:34px;font-size:13px}

/* ---------- 底部 CTA ---------- */
.ms-cta{margin-top:6px;padding:0 0 72px}
.ms-cta-inner{background:linear-gradient(120deg,var(--p),color-mix(in srgb,var(--p) 62%,white));border-radius:22px;padding:46px 40px;text-align:center;color:white;box-shadow:0 26px 60px -22px color-mix(in srgb,var(--p) 55%,transparent)}
.ms-cta-inner h2{font-size:26px;font-weight:800;color:white;margin:0 0 10px;letter-spacing:-.4px}
.ms-cta-inner p{font-size:14px;opacity:.92;margin:0 auto 22px;max-width:560px;line-height:1.7}
.ms-btn-white{color:var(--p);background:white}
.ms-btn-white:hover{transform:translateY(-2px);color:var(--p)}
.ms-cta-inner .ms-btn{margin:0 auto}

/* ---------- emoji 占位 ---------- */
.ms-emoji{font-size:44px;line-height:1;filter:drop-shadow(0 3px 8px rgba(0,0,0,.18))}

/* ---------- 响应式 ---------- */
@media (max-width:992px){
  .ms-hero-inner{flex-direction:column;gap:40px}
  .ms-hero-art{flex:1 1 100%;width:100%}
  .ms-grid{grid-template-columns:repeat(2,1fr)}
  .ms-grid-3,.ms-grid-2{grid-template-columns:repeat(2,1fr)}
  .ms-cols{flex-direction:column;gap:26px}
  .ms-cols-side{flex:1 1 auto;width:100%}
  .ms-related-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .ms-hero{padding:46px 0 40px}
  .ms-hero-title{font-size:30px}
  .ms-grid,.ms-grid-3,.ms-grid-2{grid-template-columns:1fr}
  .ms-hero-stats{gap:22px}
  .ms-post{flex-direction:column}
  .ms-post-media{flex:0 0 140px;min-height:140px}
  .ms-cta-inner{padding:34px 22px}
  .ms-pn{grid-template-columns:1fr}
  .ms-show-head,.ms-show-body{padding-left:20px;padding-right:20px}
  .ms-show-summary{margin-left:20px;margin-right:20px}
  .ms-show-title{font-size:21px}
  .ms-show-cover{height:150px;font-size:48px}
  .ms-related-grid{grid-template-columns:1fr}
}
