/* 59 · 钩针入门教程 —— 藕粉 × 杏黄「针法网格」：符号格、线圈圆角、手作质感 */
.chb{
  --ink:#403029; --sub:#8b756a; --card:#fffdfa; --line:#eddfd4;
  --pri:#c07a6d; --pri-soft:#fbecea; --ok:#4d8767; --warn:#bb8a35; --bad:#bd5d55; --bg:#fbf5f0;
  --ch-font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --ch-num:"Bahnschrift","Segoe UI Variable Text",ui-monospace,monospace;
  color:var(--ink);background:var(--bg);font-family:var(--ch-font);
  font-size:14.5px;line-height:1.8;padding:28px 16px 62px;
}
:root[data-theme="dark"] .chb{
  --ink:#f5e9e0; --sub:#bda79a; --card:#271e1a; --line:#48362e;
  --pri:#efa897; --pri-soft:#3c2825; --ok:#8ed3ac; --warn:#e8c180; --bad:#f0a39b; --bg:#191310;
}
.chb-wrap{max-width:1120px;margin:0 auto;}
.chb *{box-sizing:border-box;}
.chb h1,.chb h2,.chb h3{margin:0;}
.chb b{color:var(--pri);font-weight:700;}
.chb-hero{
  display:grid;grid-template-columns:minmax(0,1.55fr) 210px;gap:24px;align-items:center;
  background:linear-gradient(125deg,var(--card),var(--pri-soft));border:1px solid var(--line);
  border-radius:22px;padding:30px 34px;box-shadow:0 10px 28px rgba(180,110,90,.09);
}
.chb-badge{font-size:12px;font-weight:700;letter-spacing:1px;color:var(--pri);}
.chb-hero h1{font-size:31px;line-height:1.32;font-weight:800;margin:12px 0 10px;}
.chb-hero h1 em{display:block;font-style:normal;font-size:16px;font-weight:600;color:var(--sub);margin-top:6px;}
.chb-hero p{margin:0;max-width:720px;line-height:1.9;}
.chb-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.chb-hero-meta span{font-size:11.5px;font-weight:650;color:var(--pri);background:var(--card);border:1px dashed var(--line);border-radius:999px;padding:4px 11px;}
.chb-stitches{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px;align-items:center;}
.chb-stitch-row{display:flex;gap:6px;}
.chb-stitch-row i{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-style:normal;font:700 15px var(--ch-num);color:var(--pri);}
.chb-stitches>span{font-size:10.5px;color:var(--sub);}
.chb-card,.chb-panel,.chb-empty{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin-top:18px;box-shadow:0 2px 12px rgba(120,80,60,.05);}
.chb-card-h,.chb-h2{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:1px dashed var(--line);padding-bottom:11px;margin-bottom:18px;}
.chb-card-h h2{font-size:19px;font-weight:750;}
.chb-h2{font-size:17px;font-weight:750;}
.chb-card-tip,.chb-h2 span{font-size:12px;color:var(--sub);font-weight:500;}
.chb-form{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.chb-f{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:650;}
.chb-f input,.chb-f select,.chb-ta{width:100%;font:500 14px var(--ch-font);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 11px;outline:none;transition:border-color .16s,box-shadow .16s;}
.chb-f input[type=number]{font-family:var(--ch-num);font-weight:700;}
.chb-f input:hover,.chb-f select:hover,.chb-ta:hover{border-color:var(--pri);}
.chb-f input:focus,.chb-f select:focus,.chb-ta:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft);}
.chb-num{display:flex;align-items:center;gap:8px;}
.chb-num i{font-style:normal;font-size:11.5px;color:var(--sub);}
.chb-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.chb-btn{font:650 13.5px var(--ch-font);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:9px 19px;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s;}
.chb-btn:hover:not(:disabled){transform:translateY(-1px);border-color:var(--pri);box-shadow:0 5px 14px rgba(192,122,109,.18);}
.chb-btn:disabled{opacity:.5;cursor:not-allowed;}
.chb-btn-main{background:var(--pri);border-color:var(--pri);color:#fff;}
.chb-btn-ghost{background:transparent;color:var(--sub);}
.chb-msg{font-size:12.5px;color:var(--sub);margin:12px 0 0;min-height:18px;}
.chb-empty{text-align:center;color:var(--sub);padding:42px 20px;}
.chb-empty-ic{display:block;font-size:30px;}
.chb-empty b{display:block;color:var(--ink);font-size:16px;}
.chb-empty em{display:block;font-style:normal;font-size:13px;margin-top:6px;}
.chb-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px;}
.chb-kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:3px;}
.chb-kpi.is-hero{background:linear-gradient(135deg,var(--pri),#dda67c);border-color:transparent;color:#fff;}
.chb-kpi .k{font-size:12px;color:var(--sub);}
.chb-kpi.is-hero .k,.chb-kpi.is-hero .s{color:#fff1e9;}
.chb-kpi .v{font:800 26px/1.25 var(--ch-num);}
.chb-kpi-txt{font-size:17px!important;font-family:var(--ch-font)!important;}
.chb-kpi .s{font-size:11px;color:var(--sub);}
.chb-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:4px;}
.chb-grid i{height:26px;border:1px solid var(--line);border-radius:5px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-style:normal;font:600 13px var(--ch-num);color:var(--pri);}
.chb-grid i.is-edge{background:var(--pri-soft);border-style:dashed;color:var(--sub);}
.chb-note{font-size:12.5px;color:var(--sub);background:var(--bg);border-radius:10px;padding:10px 14px;margin:14px 0 0;line-height:1.75;}
.chb-tw{overflow:auto;}
.chb-tb{width:100%;border-collapse:collapse;font-size:13px;min-width:620px;}
.chb-tb th,.chb-tb td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.chb-tb th{background:var(--bg);font-size:11.5px;color:var(--sub);}
.chb-tb tbody tr:hover{background:var(--pri-soft);}
.chb-ta{min-height:104px;resize:vertical;line-height:1.7;}
.chb-final{margin-top:20px;}
@media (max-width:860px){
  .chb{padding:18px 12px 48px;}
  .chb-hero{grid-template-columns:1fr;padding:22px 18px;}
  .chb-stitches{display:none;}
  .chb-hero h1{font-size:26px;}
  .chb-form,.chb-kpis{grid-template-columns:1fr;}
  .chb-grid{grid-template-columns:repeat(8,1fr);}
  .chb-card,.chb-panel{padding:18px 16px;}
  .chb-card-h,.chb-h2{flex-direction:column;gap:3px;}
}
