/* ==========================================================================
   露营装备预算计算器 · 独立设计「山野装备墙」
   浅色 = 松墨绿 + 亚麻 + 赭土；深色 = 夜林松绿 + 陶土橙
   所有样式限定在 .cgb 作用域内；深浅双主题由 html[data-theme] 驱动
   ========================================================================== */
.cgb{
  --bg:#f3efe5; --bg2:#e9e3d3;
  --card:#fffdf8; --card2:#f7f2e7;
  --ink:#22302a; --sub:#5c6b62; --faint:#8c9a90;
  --line:#e0dac9; --line2:#eee9dc; --line-strong:#c9c2ad;
  --pri:#2f5d50; --pri-2:#3f7b68; --pri-soft:#e4efe9; --pri-ink:#23493f;
  --clay:#b06a3b; --clay-2:#cd8250; --clay-soft:#f8ece1;
  --sky:#3a6b8a; --sky-soft:#e5eef4;
  --gold:#a8862c; --gold-soft:#f7efdb;
  --ok:#2f7a52; --ok-soft:#e4efe9;
  --warn:#a86a12; --warn-soft:#fbf0da;
  --bad:#b23b2e; --bad-soft:#f9e7e3;
  --r:14px; --r-sm:9px; --r-lg:22px;
  --num:"DIN Alternate","Bahnschrift","Segoe UI Variable Text",ui-sans-serif,system-ui,sans-serif;
  --shadow-sm:0 1px 2px rgba(34,48,42,.05),0 6px 18px rgba(34,48,42,.05);
  --shadow:0 2px 6px rgba(34,48,42,.07),0 18px 44px rgba(34,48,42,.10);
  color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.8;
  background:
    radial-gradient(720px 360px at 95% -170px, rgba(47,93,80,.10), transparent 62%),
    radial-gradient(640px 340px at -6% 300px, rgba(176,106,59,.09), transparent 60%),
    var(--bg);
  padding:0 16px 64px;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
:root[data-theme="dark"] .cgb{
  --bg:#0f1613; --bg2:#141d19;
  --card:#16201c; --card2:#1c2723;
  --ink:#e8f0ea; --sub:#b0c2b6; --faint:#869a8e;
  --line:#2b3831; --line2:#243029; --line-strong:#44584c;
  --pri:#68c0a0; --pri-2:#8ad6b9; --pri-soft:rgba(104,192,160,.13); --pri-ink:#8ad6b9;
  --clay:#d99465; --clay-2:#e8ab80; --clay-soft:rgba(217,148,101,.13);
  --sky:#7fb6d6; --sky-soft:rgba(127,182,214,.13);
  --gold:#d9b25e; --gold-soft:rgba(217,178,94,.13);
  --ok:#68c0a0; --ok-soft:rgba(104,192,160,.13);
  --warn:#d9b25e; --warn-soft:rgba(217,178,94,.13);
  --bad:#e08a7c; --bad-soft:rgba(224,138,124,.13);
  --shadow-sm:0 1px 2px rgba(0,0,0,.34),0 8px 20px rgba(0,0,0,.24);
  --shadow:0 2px 6px rgba(0,0,0,.36),0 20px 48px rgba(0,0,0,.40);
}
.cgb *{box-sizing:border-box;}
.cgb b,.cgb strong{font-weight:700;color:var(--ink);}
.cgb p{margin:0;}
.cgb ul,.cgb ol{margin:0;padding:0;}
.cgb-wrap{max-width:1200px;margin:0 auto;}

/* ---------------- 面包屑 ---------------- */
.cgb-crumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px;padding:13px 0 11px;font-size:12.6px;color:var(--faint);border-bottom:1px solid var(--line);}
.cgb-crumb a{color:var(--sub);text-decoration:none;font-weight:600;}
.cgb-crumb a:hover{color:var(--pri);}
.cgb-crumb i{font-style:normal;opacity:.5;}
.cgb-crumb span{color:var(--ink);font-weight:700;}

/* ---------------- 首屏（山脊线背景） ---------------- */
.cgb-hero{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:30px;align-items:start;
  padding:34px 34px 30px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:linear-gradient(168deg,var(--card) 0%,var(--card2) 100%);
  box-shadow:var(--shadow);
}
.cgb-hero::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:104px;pointer-events:none;opacity:.34;
  background:
    linear-gradient(to top right, transparent 49.3%, var(--line-strong) 49.3%, var(--line-strong) 50.1%, transparent 50.1%),
    linear-gradient(to top left, transparent 49.3%, var(--line-strong) 49.3%, var(--line-strong) 50.1%, transparent 50.1%);
  background-size:190px 78px,260px 104px;
  background-position:left bottom,right bottom;
  background-repeat:no-repeat;
}
:root[data-theme="dark"] .cgb-hero::before{opacity:.22;}
.cgb-hero-l{position:relative;z-index:1;align-self:center;}
.cgb-kicker{
  display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;letter-spacing:.05em;
  color:var(--pri-ink);background:var(--pri-soft);border:1px solid var(--line);border-radius:999px;padding:5px 14px;
}
:root[data-theme="dark"] .cgb-kicker{color:var(--pri);}
.cgb-kicker::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pri-2);}
.cgb-hero h1{
  margin:14px 0 12px;font-size:clamp(26px,3.7vw,41px);font-weight:900;line-height:1.26;letter-spacing:-.01em;
}
.cgb-hero h1 em{
  font-style:normal;color:var(--pri);
  background:linear-gradient(transparent 68%,rgba(47,93,80,.20) 68%,rgba(47,93,80,.20) 93%,transparent 93%);
  padding:0 2px;
}
:root[data-theme="dark"] .cgb-hero h1 em{background:linear-gradient(transparent 68%,rgba(104,192,160,.22) 68%,rgba(104,192,160,.22) 93%,transparent 93%);}
.cgb-sub{margin:0 0 16px;max-width:36em;color:var(--sub);font-size:15.5px;line-height:1.9;}
.cgb-sub b{color:var(--ink);}
.cgb-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;}
.cgb-tags li{font-size:12.6px;font-weight:600;color:var(--sub);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px 12px;}
.cgb-tags li::before{content:"▲";margin-right:6px;color:var(--clay);font-size:9px;vertical-align:2px;}
.cgb-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0;padding:0;list-style:none;}
.cgb-steps li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;box-shadow:var(--shadow-sm);}
.cgb-steps b{display:block;font-size:13.2px;font-weight:800;margin-bottom:3px;color:var(--ink);}
.cgb-steps span{display:block;font-size:12.2px;color:var(--faint);line-height:1.6;}
@media (max-width:600px){.cgb-steps{grid-template-columns:1fr;gap:8px;}.cgb-steps li{padding:9px 12px;}}

/* ---------------- 首屏：三档 + 参数 ---------------- */
.cgb-panel{position:relative;z-index:1;display:grid;gap:12px;}
.cgb-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.cgb-tier{
  text-align:left;cursor:pointer;border:1px solid var(--line-strong);background:var(--card);
  border-radius:12px;padding:12px 12px 11px;transition:.18s;font:inherit;color:var(--ink);
}
.cgb-tier:hover{border-color:var(--pri);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.cgb-tier.on{border-color:var(--pri);background:var(--pri-soft);box-shadow:0 8px 20px rgba(47,93,80,.14);}
.cgb-tier b{display:block;font-size:14.5px;font-weight:800;letter-spacing:.02em;}
.cgb-tier span{display:block;font-size:11.6px;color:var(--faint);font-weight:600;margin-top:2px;}
.cgb-tier em{display:block;font-style:normal;font:800 15px/1.2 var(--num);color:var(--clay);margin-top:6px;}
:root[data-theme="dark"] .cgb-tier em{color:var(--clay-2);}
.cgb-tier.on b{color:var(--pri-ink);}
:root[data-theme="dark"] .cgb-tier.on b{color:var(--pri);}

.cgb-panel-box{background:var(--card);border:1px solid var(--line-strong);border-radius:16px;padding:16px 17px 15px;box-shadow:var(--shadow-sm);}
.cgb-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:9px;border-bottom:1px dashed var(--line-strong);margin-bottom:12px;}
.cgb-panel-title{font-size:15px;font-weight:800;letter-spacing:.02em;}
.cgb-panel-code{font:700 11px/1 var(--num);letter-spacing:.14em;color:var(--faint);}

/* ---------------- 表单件 ---------------- */
.cgb-field{display:grid;gap:6px;min-width:0;}
.cgb-field>label,.cgb-label{font-size:12.8px;font-weight:700;color:var(--sub);display:flex;align-items:baseline;gap:6px;}
.cgb-field>label small,.cgb-label small{font-weight:600;font-size:11.4px;color:var(--faint);}
.cgb-input,.cgb-select{
  width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:10px;
  background:var(--card2);color:var(--ink);padding:8px 11px;font:inherit;font-size:14.4px;font-weight:600;line-height:1.5;
  transition:border-color .18s,box-shadow .18s,background .18s;appearance:none;-webkit-appearance:none;
}
.cgb-input:hover,.cgb-select:hover{border-color:var(--pri-2);}
.cgb-input:focus,.cgb-select:focus{outline:none;border-color:var(--pri);background:var(--card);box-shadow:0 0 0 3px var(--pri-soft);}
.cgb-input::placeholder{color:var(--faint);font-weight:500;}
.cgb-input[type="number"]{font-family:var(--num);font-variant-numeric:tabular-nums;}
select.cgb-select{
  cursor:pointer;padding-right:30px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%238c9a90' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
}
.cgb-field.has-err .cgb-input,.cgb-field.has-err .cgb-select{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft);}
.cgb-err{display:none;font-size:11.8px;font-weight:600;color:var(--bad);line-height:1.5;}
.cgb-field.has-err .cgb-err{display:block;}
.cgb-row{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));}
.cgb-row.c3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:520px){.cgb-row,.cgb-row.c3{grid-template-columns:1fr;}}

.cgb-check{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:12.8px;font-weight:600;color:var(--sub);user-select:none;}
.cgb-check input{width:15px;height:15px;accent-color:var(--pri);cursor:pointer;}

/* 按钮 */
.cgb-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid transparent;border-radius:11px;padding:10px 16px;
  font:inherit;font-weight:700;font-size:14px;cursor:pointer;text-align:center;line-height:1.4;
  transition:transform .16s,box-shadow .18s,background .18s,border-color .18s,color .18s;
}
.cgb-btn:focus-visible{outline:2px solid var(--pri);outline-offset:2px;}
.cgb-btn--primary{background:linear-gradient(135deg,var(--pri),var(--pri-2));color:#fff;box-shadow:0 8px 20px rgba(47,93,80,.24);}
:root[data-theme="dark"] .cgb-btn--primary{color:#0f1613;}
.cgb-btn--primary:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(47,93,80,.3);}
.cgb-btn--clay{background:linear-gradient(135deg,var(--clay-2),var(--clay));color:#fff;box-shadow:0 8px 18px rgba(176,106,59,.24);}
.cgb-btn--clay:hover{transform:translateY(-1px);}
.cgb-btn--ghost{background:var(--card);border-color:var(--line-strong);color:var(--ink);}
.cgb-btn--ghost:hover{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);}
.cgb-btn--sm{padding:7px 12px;font-size:12.8px;border-radius:9px;}
.cgb-btn--block{width:100%;}
.cgb-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none;}

/* ---------------- KPI ---------------- */
.cgb-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;}
.cgb-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px 11px;box-shadow:var(--shadow-sm);}
.cgb-kpi span{display:block;font-size:11.8px;font-weight:700;color:var(--faint);margin-bottom:2px;}
.cgb-kpi b{display:flex;align-items:baseline;gap:5px;font:800 25px/1.15 var(--num);letter-spacing:-.02em;color:var(--ink);}
.cgb-kpi b small{font-size:11.5px;color:var(--faint);font-weight:700;}
.cgb-kpi.is-pri b{color:var(--pri);}
.cgb-kpi.is-clay b{color:var(--clay);}
.cgb-kpi.is-sky b{color:var(--sky);}
:root[data-theme="dark"] .cgb-kpi.is-pri b{color:var(--pri-2);}
:root[data-theme="dark"] .cgb-kpi.is-clay b{color:var(--clay-2);}
:root[data-theme="dark"] .cgb-kpi.is-sky b{color:var(--sky);}
@media (max-width:880px){.cgb-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---------------- 主栅格 ---------------- */
.cgb-grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:22px;align-items:start;margin-top:20px;}
@media (max-width:1040px){.cgb-grid{grid-template-columns:minmax(0,1fr);}}
.cgb-side{position:sticky;top:78px;display:grid;gap:14px;align-content:start;}
@media (max-width:1040px){.cgb-side{position:static;}}

/* ---------------- 卡片 ---------------- */
.cgb-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px 20px;box-shadow:var(--shadow-sm);margin-bottom:16px;}
.cgb-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:5px;}
.cgb-no{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;border:1px dashed var(--line-strong);background:var(--clay-soft);color:var(--clay);font:800 12.5px/1 var(--num);}
:root[data-theme="dark"] .cgb-no{color:var(--clay-2);}
.cgb-head h2{margin:0;font-size:19px;font-weight:800;line-height:1.45;letter-spacing:.01em;}
.cgb-head .cgb-tag{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--faint);white-space:nowrap;padding-top:6px;}
.cgb-lead{margin:0 0 16px;color:var(--sub);font-size:13.6px;line-height:1.85;max-width:48em;}
.cgb-lead b{color:var(--ink);}

/* ---------------- 装备墙（按类别分组） ---------------- */
.cgb-wall{display:grid;gap:14px;}
.cgb-cat{
  border:1px solid var(--line);border-radius:var(--r);background:var(--card2);overflow:hidden;
}
.cgb-cat-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--line);}
.cgb-cat-dot{width:9px;height:9px;border-radius:3px;flex:none;}
.cgb-cat-head h3{margin:0;font-size:14.4px;font-weight:800;}
.cgb-cat-head span{margin-left:auto;font-size:12px;font-weight:700;color:var(--faint);font-family:var(--num);}
.cgb-items{display:grid;}
.cgb-item{
  display:grid;grid-template-columns:26px minmax(120px,1.5fr) 58px 86px 76px 70px 84px 34px;
  gap:8px;align-items:center;padding:8px 14px;border-bottom:1px dashed var(--line);
}
.cgb-item:last-child{border-bottom:0;}
.cgb-item:hover{background:var(--card);}
.cgb-item.is-off{opacity:.45;}
.cgb-item-name{display:flex;align-items:center;gap:8px;min-width:0;}
.cgb-item-name b{font-size:13.4px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cgb-must{font-size:10.4px;font-weight:800;color:var(--pri);background:var(--pri-soft);border-radius:5px;padding:1px 5px;white-space:nowrap;}
:root[data-theme="dark"] .cgb-must{color:var(--pri);}
.cgb-item .cgb-input,.cgb-item .cgb-select{padding:5px 8px;font-size:12.8px;border-radius:8px;}
.cgb-item .cgb-select{padding-right:24px;background-position:right 7px center;}
.cgb-item .cgb-cell{font:700 12.8px/1.4 var(--num);font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;white-space:nowrap;}
.cgb-item .cgb-cell.is-clay{color:var(--clay);}
.cgb-item-head{display:grid;grid-template-columns:26px minmax(120px,1.5fr) 58px 86px 76px 70px 84px 34px;gap:8px;padding:8px 14px;font-size:11px;font-weight:800;color:var(--faint);background:var(--card2);border-bottom:1px solid var(--line);text-align:right;}
.cgb-item-head span:nth-child(1),.cgb-item-head span:nth-child(2){text-align:left;}
.cgb-del{border:1px solid var(--line);background:var(--card);color:var(--faint);width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center;transition:.16s;}
.cgb-del:hover{border-color:var(--bad);color:var(--bad);background:var(--bad-soft);}

/* ---------------- 表格 ---------------- */
.cgb-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card);-webkit-overflow-scrolling:touch;}
.cgb-table{width:100%;border-collapse:collapse;font-size:13.2px;min-width:600px;}
.cgb-table th{background:var(--card2);text-align:left;padding:9px 12px;font-size:11.8px;font-weight:800;color:var(--sub);border-bottom:1px solid var(--line);white-space:nowrap;}
.cgb-table td{padding:9px 12px;border-bottom:1px dashed var(--line);vertical-align:top;line-height:1.7;}
.cgb-table tbody tr:last-child td{border-bottom:0;}
.cgb-table td.num{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;}
.cgb-table .cgb-note{color:var(--faint);font-size:12.2px;}
.cgb-badge{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap;}
.cgb-badge--buy{color:var(--pri-ink);background:var(--pri-soft);}
.cgb-badge--rent{color:var(--sky);background:var(--sky-soft);}
.cgb-badge--even{color:var(--faint);background:var(--card2);border:1px solid var(--line);}
:root[data-theme="dark"] .cgb-badge--buy{color:var(--pri);}

/* ---------------- 预算条 ---------------- */
.cgb-bar{display:flex;height:15px;border-radius:999px;overflow:hidden;background:var(--card2);border:1px solid var(--line);margin:4px 0 10px;}
.cgb-bar i{display:block;height:100%;transition:width .3s ease;}
.cgb-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.2px;color:var(--sub);}
.cgb-legend span{display:inline-flex;align-items:center;gap:6px;}
.cgb-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;}

/* ---------------- 汇总卡（右栏） ---------------- */
.cgb-sum{
  position:relative;overflow:hidden;border-radius:18px;padding:20px 22px 18px;color:#eef7f2;
  background:linear-gradient(158deg,#2c5a4c 0%,#1e4038 58%,#142c26 100%);
  border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 42px rgba(20,44,38,.3);
}
:root[data-theme="dark"] .cgb-sum{background:linear-gradient(158deg,#1f4539 0%,#16332c 60%,#0f2521 100%);border-color:rgba(104,192,160,.24);box-shadow:0 18px 46px rgba(0,0,0,.5);}
.cgb-sum::after{content:"";position:absolute;right:-70px;bottom:-90px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(104,192,160,.26),transparent 68%);pointer-events:none;}
.cgb-sum-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px dashed rgba(255,255,255,.22);}
.cgb-sum-kicker{font:700 11px/1 var(--num);letter-spacing:.16em;color:rgba(238,247,242,.6);}
.cgb-sum-tier{font-size:11.8px;font-weight:700;color:#0f1613;background:linear-gradient(135deg,#8ad6b9,#68c0a0);border-radius:999px;padding:3px 10px;}
.cgb-sum-main{padding:14px 0 2px;position:relative;z-index:1;}
.cgb-sum-label{margin:0;font-size:12.2px;color:rgba(238,247,242,.66);}
.cgb-sum-value{margin:2px 0;font-family:var(--num);font-weight:800;font-size:40px;line-height:1.1;color:#fff;letter-spacing:-.02em;display:flex;align-items:baseline;gap:7px;}
.cgb-sum-value small{font-size:13.5px;font-weight:700;color:rgba(238,247,242,.7);}
.cgb-sum-sub{margin:0;font-size:12.6px;color:rgba(238,247,242,.74);line-height:1.7;}
.cgb-sum-sub b{color:#8ad6b9;font-family:var(--num);font-size:14px;}
.cgb-sum-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 12px;position:relative;z-index:1;}
.cgb-sum-grid>div{border:1px solid rgba(255,255,255,.13);border-radius:11px;padding:9px 12px;background:rgba(255,255,255,.05);}
.cgb-sum-grid span{display:block;font-size:11.4px;color:rgba(238,247,242,.62);}
.cgb-sum-grid b{display:block;font-family:var(--num);font-size:16.5px;color:#fff;margin-top:1px;}
.cgb-sum-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px;position:relative;z-index:1;}
.cgb-sum-actions .cgb-btn--ghost{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.28);color:#eef7f2;}
.cgb-sum-actions .cgb-btn--ghost:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.5);color:#fff;}
@media (max-width:520px){.cgb-sum-actions{grid-template-columns:1fr;}}

/* ---------------- 提醒 ---------------- */
.cgb-alerts{display:grid;gap:8px;}
.cgb-alert{display:flex;gap:9px;align-items:flex-start;padding:10px 13px;border-radius:11px;font-size:12.9px;line-height:1.75;border:1px solid var(--line);background:var(--card2);color:var(--sub);}
.cgb-alert i{font-style:normal;flex:none;font-weight:800;}
.cgb-alert b{color:var(--ink);}
.cgb-alert.is-ok{background:var(--ok-soft);border-color:transparent;}
.cgb-alert.is-ok i{color:var(--ok);}
.cgb-alert.is-warn{background:var(--warn-soft);border-color:transparent;}
.cgb-alert.is-warn i{color:var(--warn);}
.cgb-alert.is-bad{background:var(--bad-soft);border-color:transparent;}
.cgb-alert.is-bad i{color:var(--bad);}

/* ---------------- AI ---------------- */
.cgb-ai{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 17px;box-shadow:var(--shadow-sm);}
.cgb-ai[hidden]{display:none!important;}
.cgb-ai-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.cgb-ai-title{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:var(--ink);}
.cgb-ai-badge{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--clay);background:var(--clay-soft);border:1px solid var(--line);border-radius:999px;padding:2px 8px;}
.cgb-ai-body{font-size:13.4px;line-height:1.85;color:var(--sub);}
.cgb-ai-body p{margin:0 0 8px;}
.cgb-ai-body p:last-child{margin-bottom:0;}
.cgb-ai-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--faint);}
.cgb-dots{display:inline-flex;gap:4px;}
.cgb-dots i{width:6px;height:6px;border-radius:50%;background:var(--pri);animation:cgbBounce 1.05s infinite ease-in-out;}
.cgb-dots i:nth-child(2){animation-delay:.16s;}
.cgb-dots i:nth-child(3){animation-delay:.32s;}
@keyframes cgbBounce{0%,80%,100%{transform:translateY(0);opacity:.4;}40%{transform:translateY(-4px);opacity:1;}}
.cgb-ai-note{margin-top:9px;font-size:11.5px;color:var(--faint);line-height:1.65;}

/* ---------------- 导入 ---------------- */
.cgb-import{margin-top:14px;border:1px dashed var(--line-strong);border-radius:12px;padding:14px 16px;background:var(--card2);}
.cgb-import[hidden]{display:none;}
.cgb-import textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--ink);padding:10px 12px;font:13px/1.85 var(--num);tab-size:4;}
.cgb-import textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft);}
.cgb-import-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center;}
.cgb-import-hint{margin-top:8px;font-size:12px;color:var(--faint);line-height:1.75;}
.cgb-import-hint code{font-family:var(--num);font-size:11.5px;padding:1px 5px;border-radius:4px;background:var(--card);border:1px solid var(--line);color:var(--sub);}
.cgb-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;}
.cgb-preset{border:1px solid var(--line-strong);background:var(--card2);color:var(--ink);border-radius:999px;padding:5px 13px;font:inherit;font-size:12.8px;font-weight:600;cursor:pointer;transition:.16s;}
.cgb-preset:hover{border-color:var(--pri);background:var(--pri-soft);color:var(--pri-ink);transform:translateY(-1px);}
.cgb-preset::before{content:"△";margin-right:5px;color:var(--clay);}

/* ---------------- 正文区 ---------------- */
.cgb-sec{padding:34px 0 0;}
.cgb-sec>h2{font-size:22px;font-weight:800;margin-bottom:6px;}
.cgb-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:14px;}
.cgb-mini{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow-sm);}
.cgb-mini h3{font-size:15px;font-weight:800;margin-bottom:6px;}
.cgb-mini p{font-size:13.5px;line-height:1.85;color:var(--sub);}
.cgb-mini ul{margin:8px 0 0;padding-left:18px;font-size:13.4px;line-height:1.9;color:var(--sub);}
.cgb-formula{font-family:var(--num);font-size:12.6px;line-height:2;background:var(--card2);border:1px solid var(--line);border-left:2px solid var(--pri);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:10px 14px;margin-top:12px;overflow-x:auto;color:var(--sub);white-space:pre;}
.cgb-faq{margin-top:14px;border-top:1px solid var(--line);}
.cgb-faq details{border-bottom:1px solid var(--line);}
.cgb-faq summary{cursor:pointer;list-style:none;padding:13px 26px 13px 0;position:relative;font-weight:700;font-size:15px;color:var(--ink);line-height:1.6;}
.cgb-faq summary::-webkit-details-marker{display:none;}
.cgb-faq summary::after{content:"+";position:absolute;right:4px;top:11px;font-family:var(--num);font-size:17px;color:var(--pri);transition:transform .18s;}
.cgb-faq details[open] summary::after{content:"−";}
.cgb-faq .a{padding:0 0 14px;font-size:14px;line-height:1.9;color:var(--sub);max-width:48em;}
.cgb-faq .a b{color:var(--ink);}
.cgb-rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px;}
.cgb-rel a{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,transform .15s;}
.cgb-rel a:hover{border-color:var(--pri);text-decoration:none;transform:translateY(-1px);}
.cgb-rel a span{font-size:11px;color:var(--faint);margin-left:auto;}

/* ---------------- toast ---------------- */
.cgb-toast{
  position:fixed;left:50%;bottom:34px;transform:translate(-50%,14px);
  background:rgba(34,48,42,.95);color:#fff;font-size:13.5px;font-weight:600;
  padding:10px 18px;border-radius:11px;box-shadow:0 12px 30px rgba(0,0,0,.25);
  opacity:0;visibility:hidden;transition:.22s;z-index:9999;max-width:86vw;text-align:center;
}
:root[data-theme="dark"] .cgb-toast{background:rgba(232,240,234,.95);color:#22302a;}
.cgb-toast.on{opacity:1;visibility:visible;transform:translate(-50%,0);}

/* ---------------- 响应式 ---------------- */
@media (max-width:940px){
  .cgb-hero{grid-template-columns:1fr;padding:26px 22px 22px;gap:20px;}
}
@media (max-width:600px){
  .cgb{padding:0 12px 48px;font-size:14.5px;}
  .cgb-card{padding:18px 16px 16px;}
  .cgb-hero{padding:20px 17px 18px;}
  .cgb-hero h1{font-size:24px;line-height:1.34;margin:10px 0 8px;}
  .cgb-sub{font-size:14px;line-height:1.8;}
  .cgb-tags li:nth-child(n+4){display:none;}
  .cgb-tiers{grid-template-columns:1fr;}
  .cgb-sec{padding-top:26px;}
}
@media (prefers-reduced-motion:reduce){
  .cgb *,.cgb *::before,.cgb *::after{animation-duration:.001s!important;transition-duration:.001s!important;}
}
