/* 时光服专区（/wow/titan/*，10-11）—— 只做简体中文，叠在 wow_en.css 之上。
   ⛔ 颜色一律走 wow_en.css 的变量（浅色主题要能翻，scripts/gi_theme_lint.py 拦）：
      职业色文字 = var(--cc-txt, var(--cc))，元素上写 style="--cc:#xxxxxx"；物品品质 = .q0–.q5 / var(--q0..--q5)。 */

.gt-wrap { max-width: 1100px; margin: 0 auto; padding: 28px 20px 72px; }
.gt-crumbs { font-size: 13px; color: var(--text3); margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gt-crumbs a { color: var(--text2); text-decoration: none; }
.gt-crumbs a:hover { color: var(--gold); }

/* 专区子导航：首页 / 强度榜 / BiS / 顶尖玩家 */
.gt-sub { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.gt-sub a { padding: 6px 14px; border: 1px solid var(--border); border-radius: 999px; background: var(--s1);
            color: var(--text2); text-decoration: none; font-size: 13.5px; }
.gt-sub a:hover { border-color: var(--bhl); color: var(--gold); }
.gt-sub a.on { color: var(--gold); border-color: var(--bhl); background: var(--s2); font-weight: 600; }

.gt-h1 { font-size: 26px; font-weight: 800; margin: 0 0 8px; color: var(--text); line-height: 1.3; }
.gt-h1 .cc { color: var(--cc-txt, var(--cc)); }
.gt-h2 { font-size: 18px; font-weight: 700; margin: 30px 0 12px; color: var(--text); display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.gt-h2 small { font-size: 12.5px; font-weight: 400; color: var(--text3); }
.gt-lede { color: var(--text2); font-size: 14.5px; line-height: 1.75; margin: 0 0 6px; max-width: 760px; }
.gt-note { color: var(--text3); font-size: 12.5px; line-height: 1.7; }
.gt-chip { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; border: 1px solid var(--border); color: var(--text2); background: var(--s1); white-space: nowrap; }
.gt-chip.gold { color: var(--gold); border-color: var(--bhl); }
.gt-chip.guess { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 50%, transparent); }
.gt-card { background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); padding: 16px 18px; }
.gt-ico { width: 32px; height: 32px; border-radius: 6px; border: 1px solid var(--border); flex: none; vertical-align: middle; background: var(--s3); }
.gt-ico.sm { width: 22px; height: 22px; border-radius: 4px; }
.gt-ico.lg { width: 44px; height: 44px; border-radius: 8px; }
.gt-ico.q2 { border-color: var(--q2); } .gt-ico.q3 { border-color: var(--q3); }
.gt-ico.q4 { border-color: var(--q4); } .gt-ico.q5 { border-color: var(--q5); }

/* ── 首页：阶段横幅 ── */
.gt-hero { background: linear-gradient(135deg, color-mix(in srgb, var(--gold) 12%, var(--s1)), var(--s1) 60%);
           border: 1px solid var(--bhl); border-radius: 14px; padding: 22px 24px; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.gt-hero-ic { width: 64px; height: 64px; border-radius: 12px; border: 1px solid var(--bhl); }
.gt-hero-t { font-size: 13px; color: var(--gold); letter-spacing: .04em; }
.gt-hero h1 { font-size: 28px; margin: 2px 0 6px; color: var(--text); }
.gt-hero p { margin: 0; color: var(--text2); font-size: 14px; line-height: 1.7; }
.gt-phases { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin: 16px 0 4px; }
.gt-ph { border: 1px solid var(--border); border-radius: 8px; padding: 8px 8px 7px; background: var(--s1); font-size: 12px; color: var(--text3); min-width: 0; }
.gt-ph b { display: block; font-size: 14px; color: var(--text2); }
.gt-ph span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-ph.done { opacity: .75; }
.gt-ph.cur { border-color: var(--gold); background: var(--s2); }
.gt-ph.cur b { color: var(--gold); }
.gt-ph.guess { border-style: dashed; }
.gt-ph.guess b { color: var(--warn); }

/* ── 首页：选专精 ── */
.gt-classes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.gt-cls { background: var(--s1); border: 1px solid var(--border); border-left: 3px solid var(--cc-txt, var(--cc)); border-radius: var(--r); padding: 12px 14px; scroll-margin-top: 80px; }
.gt-cls:target { border-color: var(--cc); box-shadow: 0 0 0 1px var(--cc); }
.gt-cls-h { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--cc-txt, var(--cc)); margin-bottom: 8px; }
.gt-spec { display: flex; align-items: center; gap: 8px; padding: 6px 4px; border-top: 1px solid var(--border); }
.gt-spec:first-of-type { border-top: 0; }
.gt-spec a.nm { flex: 1 1 auto; color: var(--text); text-decoration: none; font-size: 14px; min-width: 0; }
.gt-spec a.nm:hover { color: var(--gold); }
.gt-spec .rl { font-size: 11.5px; color: var(--text3); }
.gt-spec a.tp { font-size: 12px; color: var(--text2); text-decoration: none; border: 1px solid var(--border); border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
.gt-spec a.tp:hover { color: var(--gold); border-color: var(--bhl); }

/* ── 入口卡片 ── */
.gt-entries { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.gt-entry { display: flex; gap: 12px; align-items: center; background: var(--s1); border: 1px solid var(--border); border-radius: var(--r);
            padding: 14px 16px; text-decoration: none; color: var(--text); }
.gt-entry:hover { border-color: var(--bhl); }
.gt-entry b { display: block; font-size: 15px; color: var(--text); }
.gt-entry span { font-size: 12.5px; color: var(--text3); }

/* ── 强度榜 ── */
.gt-roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gt-tl { --tc: var(--q0); }
.gt-tl.S { --tc: var(--q5); } .gt-tl.A { --tc: var(--q4); } .gt-tl.B { --tc: var(--q3); } .gt-tl.C { --tc: var(--q2); } .gt-tl.D { --tc: var(--q0); }
.gt-tbadge { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 6px; font-weight: 800; font-size: 14px;
             color: var(--tc); border: 1px solid var(--tc); background: color-mix(in srgb, var(--tc) 12%, transparent); flex: none; }
.gt-trow { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--border); font-size: 14px; }
.gt-trow:first-child { border-top: 0; }
.gt-trow .nm { flex: 1 1 auto; min-width: 0; color: var(--cc-txt, var(--cc)); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-trow .sc { color: var(--text2); font-variant-numeric: tabular-nums; font-size: 13px; }
.gt-tier { display: grid; grid-template-columns: 54px 1fr; gap: 10px; align-items: start; padding: 10px 0; border-top: 1px solid var(--border); }
.gt-tier:first-of-type { border-top: 0; }
.gt-tier .gt-tbadge { width: 44px; height: 44px; font-size: 22px; border-radius: 10px; }
.gt-det { background: var(--s2); border: 1px solid var(--border); border-radius: 8px; margin: 0 0 6px; }
.gt-det > summary { display: flex; align-items: center; gap: 8px; padding: 7px 10px; cursor: pointer; list-style: none; flex-wrap: wrap; }
.gt-det > summary::-webkit-details-marker { display: none; }
.gt-det > summary::after { content: '▾'; margin-left: auto; color: var(--text3); font-size: 12px; }
.gt-det[open] > summary::after { content: '▴'; }
.gt-det .nm { font-weight: 600; color: var(--cc-txt, var(--cc)); }
.gt-det .sc { color: var(--text2); font-size: 13px; font-variant-numeric: tabular-nums; }
.gt-det .gt-bar { flex: 1 1 120px; max-width: 260px; }
.gt-bosses { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 14px; padding: 4px 12px 12px; }
.gt-boss { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text2); min-width: 0; }
.gt-boss .bn { width: 92px; flex: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-boss .bv { width: 36px; text-align: right; font-variant-numeric: tabular-nums; color: var(--text); flex: none; }
.gt-boss .gt-bar { flex: 1 1 auto; }

/* 通用条 */
.gt-bar { height: 6px; border-radius: 3px; background: var(--s3); overflow: hidden; min-width: 40px; }
.gt-bar i { display: block; height: 100%; border-radius: 3px; background: var(--gold); }
.gt-bar.cc i { background: var(--cc-txt, var(--cc)); }

/* ── BiS ── */
.gt-sibs { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.gt-sib { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px 4px 5px; border: 1px solid var(--border); border-radius: 999px;
          background: var(--s1); color: var(--text2); text-decoration: none; font-size: 13px; }
.gt-sib img { width: 22px; height: 22px; border-radius: 50%; }
.gt-sib.on { border-color: var(--cc); background: var(--s2); color: var(--cc-txt, var(--cc)); font-weight: 600; }
.gt-sib:hover { border-color: var(--cc); }
.gt-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gt-slot { background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); padding: 10px 14px 6px; min-width: 0; }
.gt-slot-h { display: flex; align-items: baseline; gap: 8px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.gt-slot-h small { font-weight: 400; color: var(--text3); font-size: 12px; }
.gt-it { display: grid; grid-template-columns: 32px minmax(0, 1fr) 74px; gap: 4px 10px; align-items: center; padding: 6px 0; border-top: 1px solid var(--border); }
.gt-it:first-of-type { border-top: 0; }
.gt-it-nm { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-it-sub { font-size: 12px; color: var(--text3); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; margin-top: 2px; }
.gt-it-sub .src { color: var(--text2); }
.gt-it-pct { text-align: right; font-variant-numeric: tabular-nums; font-size: 14px; font-weight: 700; color: var(--text); }
.gt-it-pct .gt-bar { margin-top: 4px; }
.gt-gems { display: inline-flex; gap: 3px; }
.gt-ench { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.gt-ench .gt-card { padding: 10px 14px; }
.gt-ench h3 { font-size: 14px; margin: 0 0 6px; color: var(--text); }
.gt-en-row { display: grid; grid-template-columns: minmax(0, 1fr) 54px; gap: 8px; align-items: center; font-size: 13px; padding: 3px 0; color: var(--text2); }
.gt-en-row.first { color: var(--text); font-weight: 600; }
.gt-en-row .p { text-align: right; font-variant-numeric: tabular-nums; }
.gt-en-row .lb { font-size: 11px; color: var(--text3); font-weight: 400; margin-left: 6px; }
.gt-stats { max-width: 620px; }
.gt-st { display: grid; grid-template-columns: 92px minmax(0, 1fr) 56px 70px; gap: 10px; align-items: center; font-size: 13.5px; padding: 4px 0; color: var(--text2); }
.gt-st b { color: var(--text); font-weight: 600; }
.gt-st .p, .gt-st .a { text-align: right; font-variant-numeric: tabular-nums; }
.gt-st .a { color: var(--text3); font-size: 12px; }
.gt-st .gt-bar { height: 8px; }

/* ── 顶尖玩家 ── */
.gt-pl { background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); margin-bottom: 8px; }
.gt-pl > summary { display: grid; grid-template-columns: 30px minmax(0, 1.2fr) minmax(0, 1fr) 110px; gap: 4px 12px; align-items: center;
                   padding: 10px 14px; cursor: pointer; list-style: none; }
.gt-pl > summary::-webkit-details-marker { display: none; }
.gt-rank { font-weight: 800; font-size: 16px; color: var(--text3); text-align: center; }
.gt-rank.r1 { color: var(--goldb); } .gt-rank.r2 { color: var(--text); } .gt-rank.r3 { color: var(--amber); }
.gt-pn { font-weight: 700; color: var(--cc-txt, var(--cc)); font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-ps { font-size: 12px; color: var(--text3); }
.gt-pb { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text2); min-width: 0; }
.gt-pb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-pa { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text); }
.gt-pa .gt-bar { margin-top: 4px; }
.gt-gear { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px; padding-top: 4px; }
.gt-gear img { cursor: help; }
.gt-pl[open] > summary .gt-gear { display: none; }
.gt-glist { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 2px 16px; padding: 0 14px 12px; }
.gt-gi { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 3px 0; min-width: 0; }
.gt-gi .sl { width: 64px; flex: none; color: var(--text3); font-size: 12px; }
.gt-gi .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-gi a { text-decoration: none; }
.gt-hint { font-size: 12px; color: var(--text3); padding: 0 14px 10px; }

.gt-foot { margin-top: 36px; font-size: 12px; color: var(--text3); line-height: 1.8; text-align: center; }

@media (max-width: 860px) {
  .gt-roles, .gt-slots { grid-template-columns: 1fr; }
  .gt-phases { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .gt-wrap { padding: 20px 14px 60px; }
  .gt-hero { padding: 16px; }
  .gt-hero h1 { font-size: 22px; }
  .gt-phases { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gt-pl > summary { grid-template-columns: 26px minmax(0, 1fr) 90px; }
  .gt-pl > summary .gt-pb { grid-column: 2 / -1; grid-row: 2; }
  .gt-st { grid-template-columns: 80px minmax(0, 1fr) 50px; }
  .gt-st .a { display: none; }
  .gt-it { grid-template-columns: 32px minmax(0, 1fr) 60px; }
}

/* 插件下载卡（10-11 首发 0.5.0） */
.gt-dl { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin: 14px 0; padding: 14px 16px;
  background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); }
.gt-dl-t { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.gt-dl-t b { font-size: 16px; color: var(--text); }
.gt-dl-t span { color: var(--text2); font-size: 13px; line-height: 1.5; }
.gt-dl-t a { color: var(--gold); }
.gt-dl-btn { flex: 0 0 auto; padding: 10px 22px; border-radius: 10px; background: var(--gold); color: var(--bg);
  font-weight: 700; text-decoration: none; }
.gt-dl-btn:hover { filter: brightness(1.08); }

/* Titan equipment directory: restrained gold navigation, readable class rows. */
.gt-wrap { max-width:1200px; --text2:color-mix(in srgb,var(--text) 82%,var(--s1)); --text3:color-mix(in srgb,var(--text) 72%,var(--s1)); }
.gt-wrap .gt-note,.gt-wrap .gt-h2 small { color:var(--text2); }
.gt-sub { border-bottom:1px solid var(--border);padding-bottom:14px;gap:12px; }
.gt-sub a { border-radius:7px;min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box; }
.gt-hero { padding:26px 28px;border-radius:12px;background:var(--s1);border-color:var(--border);border-top:2px solid var(--gold); }
.gt-hero h1 { font-size:34px;letter-spacing:-.03em; }
.gt-hero p { max-width:850px; }
.gt-directory-head { display:flex;align-items:end;justify-content:space-between;gap:20px;margin:34px 0 18px;scroll-margin-top:100px; }
.gt-directory-head .gt-h2 { margin:4px 0 6px;font-size:25px; }
.gt-eyebrow { font-size:12px;letter-spacing:.1em;color:var(--gold);margin:0; }
.gt-search { display:grid;gap:6px;font-size:12px;color:var(--text2);min-width:230px; }
.gt-search input { background:var(--s1);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:12px 14px;font:inherit;font-size:14px; }
.gt-search input::placeholder {color:var(--text2);}
.gt-classes { grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start; }
.gt-cls { padding:0;border-left:1px solid var(--border);border-top:3px solid var(--cc);overflow:hidden; }
.gt-cls-h { padding:16px 18px;margin:0;font-size:18px;background:color-mix(in srgb,var(--cc) 7%,var(--s1)); }
.gt-cls-h .gt-ico.sm { width:30px;height:30px; }
.gt-spec { padding:12px 16px;gap:12px;min-height:64px;box-sizing:border-box; }
.gt-spec .gt-ico.sm { width:30px;height:30px; }
.gt-spec a.nm {font-size:15px;font-weight:600;line-height:1.5;}
.gt-spec .rl {display:block;font-size:12px;font-weight:400;color:var(--text2);margin-top:3px;}
.gt-spec a.tp {border:0;border-radius:4px;padding:10px 0;font-size:12px;color:var(--text2);}
.gt-spec:focus-within,.gt-spec:hover {background:var(--s2);}
.gt-cls[hidden],.gt-spec[hidden],.gt-search[hidden],[hidden]#gt-search-empty {display:none;}
.gt-wrap a:focus-visible,.gt-wrap input:focus-visible,.gt-wrap summary:focus-visible {outline:2px solid var(--gold);outline-offset:4px;}
.gt-dl {margin-top:28px;}
.gt-timeline {margin:24px 0;border-block:1px solid var(--border);padding:16px 0;color:var(--text2);}
.gt-timeline summary {cursor:pointer;font-size:14px;}
.gt-ph.done {opacity:1;}
.gt-ph span {white-space:normal;overflow:visible;text-overflow:clip;}
.gt-ench {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.gt-ench .gt-card {padding:18px;}
.gt-ench h3 {font-size:16px;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:4px;}
.gt-en-row {grid-template-columns:36px minmax(0,1fr) 58px;gap:12px;padding:12px 0;align-items:start;border-bottom:1px solid var(--border);}
.gt-en-row:last-child {border-bottom:0;}
.gt-en-row .gt-ico {width:36px;height:36px;}
.gt-en-info {min-width:0;line-height:1.5;overflow-wrap:anywhere;}
.gt-en-info b {font-size:14px;color:var(--text);font-weight:600;}
.gt-en-stats {display:block;color:var(--text2);font-size:12px;font-weight:400;margin-top:4px;}
.gt-en-row .lb {display:inline-block;margin:5px 0 0;color:var(--gold);}
.gt-en-row .p {font-size:14px;padding-top:2px;}
@media(max-width:1000px){.gt-classes{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){
 .gt-wrap{padding:20px 16px 70px;}.gt-hero{padding:20px;gap:14px;}.gt-hero h1{font-size:28px;}
 .gt-directory-head{align-items:stretch;flex-direction:column;gap:12px;}.gt-search{min-width:0;}
 .gt-classes,.gt-ench{grid-template-columns:minmax(0,1fr);}.gt-spec{min-height:70px;}
 .gt-phases{grid-template-columns:repeat(2,minmax(0,1fr));}.gt-en-row{gap:9px;grid-template-columns:32px minmax(0,1fr) 52px;}
 .gt-en-row .gt-ico{width:32px;height:32px;}.gt-ench .gt-card{padding:14px;}
}
/* ── G团参考价（/wow/titan/gprice，10-16）── */
.gt-gp-up-h { font-size: 15px; }
.gt-gp-up-h.ok { color: var(--ok); }
.gt-gp-up-h.bad { color: var(--warn); }
#gp-up p { margin: 6px 0 0; color: var(--text2); font-size: 14px; line-height: 1.6; }
.gt-gp-rej { margin: 4px 0 0; padding-left: 20px; color: var(--text3); font-size: 12.5px; line-height: 1.7; }
.gt-gp-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 18px 0 14px; }
.gt-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.gt-seg button { padding: 8px 18px; min-height: 40px; background: var(--s1); color: var(--text2); border: 0;
  border-left: 1px solid var(--border); font: inherit; font-size: 14px; cursor: pointer; }
.gt-seg button:first-child { border-left: 0; }
.gt-seg button.on { background: var(--s2); color: var(--gold); font-weight: 700; }
.gt-gp-sel { background: var(--s1); border: 1px solid var(--border); border-radius: 8px; color: var(--text);
  padding: 9px 12px; min-height: 40px; font: inherit; font-size: 14px; }
.gt-gp-list { display: grid; gap: 8px; }
.gt-gp-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) 110px 150px; gap: 6px 12px; align-items: center;
  background: var(--s1); border: 1px solid var(--border); border-radius: var(--r); padding: 10px 14px; }
.gt-gp-nm { min-width: 0; }
.gt-gp-nm a { font-weight: 600; font-size: 14.5px; text-decoration: none; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.gt-gp-nm a:hover { text-decoration: underline; }
.gt-gp-sub { display: block; font-size: 12px; color: var(--text3); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-gp-price { text-align: right; font-weight: 800; font-size: 17px; color: var(--gold); font-variant-numeric: tabular-nums; line-height: 1.25; }
.gt-gp-price small { font-size: 11px; font-weight: 400; color: var(--text3); margin-left: 1px; }
.gt-gp-trend { display: block; font-size: 11px; font-weight: 600; margin-top: 1px; }
.gt-gp-trend.up { color: var(--warn); } .gt-gp-trend.dn { color: var(--ok); }
.gt-gp-hilo { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; font-size: 12px; font-variant-numeric: tabular-nums; }
.gt-gp-hilo .hi { color: var(--warn); } .gt-gp-hilo .lo { color: var(--ok); }
.gt-gp-hilo .vn { color: var(--text3); font-size: 11px; }
.gt-gp-empty { text-align: center; padding: 28px 18px; }
.gt-gp-empty b { font-size: 15px; color: var(--text); }
@media (max-width: 560px) {
  .gt-gp-row { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .gt-gp-hilo { grid-column: 2 / -1; flex-direction: row; gap: 10px; justify-content: flex-start; margin-top: 2px; }
}

/* ── 装备物价页（10-19 改版）：一行一件 · 联盟 G团 / 部落 G团 / 外部参考 ── */
.gt-gpx-lock { margin: 14px 0; line-height: 1.7; }
.gt-gpx-lock b { font-size: 15px; color: var(--text); }
.gt-gpx-lock b.ok { color: var(--ok); }
.gt-gpx-lock p { margin: 6px 0 0; }
.gt-gpx-how { margin: 8px 0 0; padding-left: 20px; color: var(--text2, var(--text)); font-size: 13.5px; line-height: 1.8; }
.gt-gpx-q { min-width: 180px; flex: 1 1 200px; max-width: 320px; }
.gt-gpx-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text3); cursor: pointer; }
.gt-gpx-head, .gt-gpx-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) 104px 104px 124px; gap: 6px 12px; align-items: center; }
.gt-gpx-head { padding: 0 14px 6px; font-size: 12px; color: var(--text3); border-bottom: 1px solid var(--border); }
.gt-gpx-head .r, .gt-gpx-row .r { text-align: right; }
.gt-gpx-list { display: grid; gap: 6px; margin-top: 8px; }
.gt-gpx-row { padding: 9px 14px; background: var(--s1); border: 1px solid var(--border); border-radius: 10px; }
.gt-gpx-c { font-variant-numeric: tabular-nums; line-height: 1.25; }
.gt-gpx-c small { display: block; font-size: 11px; color: var(--text3); }
.gt-gpx-g { font-size: 16px; font-weight: 800; color: var(--gold); }
.gt-gpx-lk { font-size: 15px; }
.gt-gpx-na { color: var(--text3); }
.gt-gpx-ref { font-size: 13px; color: var(--text2, var(--text)); }
@media (max-width: 640px) {
  .gt-gpx-head { display: none; }
  .gt-gpx-row { grid-template-columns: 22px minmax(0, 1fr); }
  .gt-gpx-c { grid-column: 2; display: flex; justify-content: space-between; align-items: baseline; gap: 8px; text-align: left; }
  .gt-gpx-c::before { content: attr(data-l); font-size: 12px; color: var(--text3); }
  .gt-gpx-c small { display: inline; margin-left: 6px; }
  .gt-gpx-c > b, .gt-gpx-c > .gt-gpx-lk, .gt-gpx-c > .gt-gpx-na { margin-left: auto; }
}

/* 装备物价页：件数 + 装备提示（10-20） */
.gt-gpx-count { font-size: 12.5px; color: var(--text3); font-variant-numeric: tabular-nums; }
.gt-gpx-row { cursor: default; }
.gt-gpx-row:hover, .gt-gpx-row:focus-visible { border-color: rgba(255, 209, 0, .35); outline: none; }
.gt-gpx-tip { position: fixed; z-index: 60; width: 300px; max-width: calc(100vw - 16px); pointer-events: none;
  background: var(--s2); border: 1px solid var(--gold); border-radius: 6px; padding: 10px 12px; box-shadow: 0 8px 28px rgba(0,0,0,.55);
  color: var(--text); font-size: 13px; line-height: 1.55; }
.gt-gpx-tip .tp-nm { font-weight: 700; font-size: 15px; }
.gt-gpx-tip .tp-il { color: var(--gold); font-size: 12.5px; }
.gt-gpx-tip .tp-src { color: var(--text3); font-size: 12.5px; }
.gt-gpx-tip .tp-sep { height: 1px; background: var(--border); margin: 7px 0; }
.gt-gpx-tip .tp-f { display: flex; flex-direction: column; margin-top: 5px; }
.gt-gpx-tip .tp-f b { font-size: 12px; color: var(--text3); font-weight: 600; }
.gt-gpx-tip .tp-g { color: var(--gold); font-weight: 800; font-size: 15px; }
.gt-gpx-tip .tp-mut { color: var(--text3); font-size: 12px; }
.gt-gpx-tip .tp-foot { margin-top: 8px; color: var(--text3); font-size: 11.5px; }

/* 装备物价页 → 小程序码（10-20） */
.gt-gpx-mp { margin: 0 0 14px; padding: 10px 14px; }
.gt-gpx-mpbtn { background: none; border: 0; padding: 4px 0; color: var(--gold); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.gt-gpx-mpqr { margin-top: 8px; }
.gt-gpx-mpqr img { display: block; border-radius: 8px; background: var(--s1); }

/* ── 装备物价页 v3（10-21 用户「网站直接按插件的美工和样式做」：照插件 GPricePage.lua）──
   左栏团本卡片 + 右上大横幅 + 首领段落（可折叠）+ 装备行（阵营徽记价格）。
   横幅 / 卡片是游戏原画 + 暗遮罩，上面的字在两种主题下都压在深色图上 → 固定浅色（theme-ok）。 */
.gt-gpv-top { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; justify-content: space-between; }
.gt-gpv-h1 { display: flex; align-items: center; gap: 10px; margin: 0; }
.gt-gpv-logo { width: 36px; height: 36px; border-radius: 7px; flex: none; }
.gt-gpv-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.gt-gpv-btn, .gt-gpv-tbtn { display: inline-flex; align-items: center; padding: 6px 14px; min-height: 34px; border-radius: 6px; font: inherit; font-size: 13px;
  background: var(--s2); color: var(--text); border: 1px solid var(--bhl); text-decoration: none; cursor: pointer; white-space: nowrap; }
.gt-gpv-btn:hover, .gt-gpv-tbtn:hover { color: var(--gold); border-color: var(--gold); }
.gt-gpv-status { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 10px 0 8px; font-size: 13px; color: var(--text2); }
.gt-gpv-status span + span::before { content: "|"; margin: 0 10px; color: var(--text3); opacity: .6; }
.gt-gpv-status b { color: var(--text); }
.gt-gpv-status b.ok { color: var(--ok); } .gt-gpv-status b.warn { color: var(--warn); }
.gt-gpv-bar { margin: 14px 0 12px; }
.gt-gpv-bar select { max-width: 100%; }

.gt-gpv { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 14px; align-items: start; }
.gt-gpv-zones { display: grid; gap: 4px; position: sticky; top: 70px; max-height: calc(100vh - 90px); overflow-y: auto; padding: 3px;
  background: var(--s1); border: 1px solid var(--border); border-radius: 8px; }
.gt-gpv-card { position: relative; display: block; width: 100%; height: 58px; padding: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 6px;
  background: #1a1710; cursor: pointer; text-align: left; font: inherit; } /* theme-ok：卡片是原画底，图没来之前的暗色占位 */
.gt-gpv-card .bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-gpv-card .fi { position: absolute; right: 6px; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 50%; opacity: .6; }
.gt-gpv-card .sh, .gt-gpv-banner .sh, .gt-gpv-zh .sh { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.25)); }
.gt-gpv-card .nm { position: absolute; left: 8px; right: 8px; top: 7px; font-size: 14px; color: #ffd100; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* theme-ok：插件 GOLD，压在暗图上 */
.gt-gpv-card .ph { position: absolute; left: 8px; bottom: 7px; font-size: 12px; color: #d8c890; } /* theme-ok */
.gt-gpv-card .gt-gpv-sum { position: absolute; right: 8px; bottom: 7px; }
.gt-gpv-card:hover { border-color: rgba(255, 209, 0, .5); }
.gt-gpv-card.on { border: 2px solid #ffd100; box-shadow: 0 0 0 1px rgba(255, 209, 0, .25), 0 0 12px rgba(255, 209, 0, .25); } /* theme-ok：选中描金边 */
.gt-gpv-card.dead .bg { filter: grayscale(1); opacity: .7; }
.gt-gpv-card.dead .nm { color: #a0a0a0; } /* theme-ok */
.gt-gpv-sum { font-size: 12px; color: #cfcfcf; white-space: nowrap; font-variant-numeric: tabular-nums; } /* theme-ok：卡片 / 横幅里，压在暗图上 */
.gt-gpv-sum em { font-style: normal; font-weight: 700; color: #55e055; } /* theme-ok：插件里有价数的绿 */
.gt-gpv-sum.dim, .gt-gpv-sum.dim em { color: #8a8a8a; font-weight: 400; } /* theme-ok */

.gt-gpv-main { min-width: 0; }
.gt-gpv-banner { position: relative; height: 92px; border-radius: 8px; overflow: hidden; background: #14110b; border-bottom: 1px solid rgba(255, 209, 0, .6); } /* theme-ok */
.gt-gpv-banner .bg, .gt-gpv-zh .bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.gt-gpv-banner .sh { background: linear-gradient(90deg, rgba(0,0,0,.88), rgba(0,0,0,.10)); }
.gt-gpv-banner.plain { background: linear-gradient(90deg, #1b170d, #2a2312); height: 70px; } /* theme-ok */
.gt-gpv-banner .tx { position: absolute; left: 16px; right: 76px; top: 50%; transform: translateY(-50%); }
.gt-gpv-banner .nm { display: block; font-size: 22px; color: #ffd100; text-shadow: 0 1px 3px rgba(0,0,0,.8); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* theme-ok */
.gt-gpv-banner .sub, .gt-gpv-zh .sub { display: block; margin-top: 4px; font-size: 13px; color: #e6e6e6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* theme-ok */
.gt-gpv-banner .sub em, .gt-gpv-zh .sub em { font-style: normal; font-weight: 700; color: #55e055; } /* theme-ok */
.gt-gpv-banner .sub .ph, .gt-gpv-zh .sub .ph { color: #d8c890; } /* theme-ok */
.gt-gpv-banner .ic { position: absolute; right: 14px; top: 50%; width: 50px; height: 50px; margin-top: -25px; border-radius: 50%; }
.gt-gpv-zh { position: relative; height: 54px; margin: 16px 0 6px; border-radius: 6px; overflow: hidden; background: #14110b; border-bottom: 1px solid rgba(255, 209, 0, .5); } /* theme-ok */
.gt-gpv-zh b { position: absolute; left: 12px; top: 7px; font-size: 16px; color: #ffd100; } /* theme-ok */
.gt-gpv-zh .sub { position: absolute; left: 12px; right: 12px; bottom: 6px; margin: 0; font-size: 12px; }

.gt-gpv-head, .gt-gpx-row.gt-gpv-row { grid-template-columns: 22px minmax(0, 1fr) 36px 60px 132px 132px; gap: 4px 10px; }
.gt-gpv-head { display: grid; align-items: center; padding: 10px 12px 6px; font-size: 12px; color: var(--gold); border-bottom: 1px solid var(--border); }
.gt-gpv-head .r { text-align: right; }
.gt-gpv-fac { width: 14px; height: 18px; object-fit: contain; vertical-align: -4px; margin-right: 4px; flex: none; }
.gt-gpv-boss { margin-top: 4px; }
.gt-gpv-bh { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 40px; padding: 3px 12px 3px 8px; font: inherit; text-align: left; cursor: pointer;
  background: var(--s2); color: var(--text); border: 1px solid var(--border); border-left: 3px solid var(--gold); border-radius: 4px; }
.gt-gpv-boss.dead .gt-gpv-bh { border-left-color: var(--text3); }
.gt-gpv-bh:hover { border-color: var(--bhl); border-left-color: var(--gold); }
.gt-gpv-bh .pm { flex: none; width: 16px; height: 16px; border: 1px solid var(--bhl); border-radius: 3px; position: relative; }
.gt-gpv-bh .pm::before, .gt-gpv-bh .pm::after { content: ""; position: absolute; left: 3px; right: 3px; top: 6.5px; height: 1.5px; background: var(--gold); }
.gt-gpv-boss.off .gt-gpv-bh .pm::after { transform: rotate(90deg); }
.gt-gpv-boss:not(.off) .gt-gpv-bh .pm::after { display: none; }
.gt-gpv-pt { flex: none; width: 60px; height: 30px; overflow: hidden; }
.gt-gpv-pt img { display: block; width: 68.57px; height: 34.28px; margin-top: -2px; } /* 冒险手册 128×64，半身像在左 112px：按 60 宽取左 7/8 */
.gt-gpv-bi { flex: none; width: 30px; height: 30px; margin: 0 15px; border-radius: 50%; overflow: hidden; background: var(--s3); }
.gt-gpv-bi img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gt-gpv-boss.dead .gt-gpv-pt img, .gt-gpv-boss.dead .gt-gpv-bi img { filter: grayscale(1); opacity: .75; }
.gt-gpv-bh .bn { flex: 1 1 auto; min-width: 0; font-size: 15px; color: var(--gold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-gpv-boss.dead .bn { color: var(--text3); font-weight: 600; }
.gt-gpv-bh .gt-gpv-sum { color: var(--text2); }
.gt-gpv-bh .gt-gpv-sum em { color: var(--ok); }
.gt-gpv-bh .gt-gpv-sum.dim, .gt-gpv-bh .gt-gpv-sum.dim em { color: var(--text3); }
.gt-gpv-items { gap: 0; margin: 0 0 6px; }
.gt-gpx-row.gt-gpv-row { padding: 4px 12px; border: 0; border-radius: 0; background: transparent; border-bottom: 1px solid var(--border); }
.gt-gpx-row.gt-gpv-row:nth-child(odd) { background: rgba(255, 255, 255, .025); }
.gt-gpx-row.gt-gpv-row:hover, .gt-gpx-row.gt-gpv-row:focus-visible { background: rgba(255, 209, 0, .07); }
.gt-gpv-row .gt-gp-nm a { font-size: 13.5px; }
.gt-gpv-row .gt-gp-nm a.q2 { color: var(--q2); } .gt-gpv-row .gt-gp-nm a.q3 { color: var(--q3); }
.gt-gpv-row .gt-gp-nm a.q4 { color: var(--q4); } .gt-gpv-row .gt-gp-nm a.q5 { color: var(--q5); }
.gt-gpv-msub { display: none; }
.gt-gpv-il { font-size: 12px; color: var(--text3); text-align: right; font-variant-numeric: tabular-nums; }
.gt-gpv-sl { font-size: 12px; color: var(--text3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-gpv-pc { display: flex; align-items: center; justify-content: flex-end; gap: 2px; min-width: 0; }
.gt-gpv-pc .v { display: inline-flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 0 4px; min-width: 0; }
.gt-gpv-pc small { display: inline; font-size: 11px; color: var(--text3); }
.gt-gpv-pc .gt-gpx-g { font-size: 14px; }
.gt-gpv-pc .gt-gpx-lk { font-size: 13px; }
.gt-gpv-rv { font-size: 13.5px; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
.gt-gpv-src { font-style: normal; font-size: 11px; padding: 0 4px; border-radius: 3px; line-height: 16px; }
.gt-gpv-src.g { color: var(--ok); border: 1px solid color-mix(in srgb, var(--ok) 45%, transparent); }
.gt-gpv-src.r { color: var(--text3); border: 1px solid var(--border); }
/* 10-21 分层：没过公开门槛的 G团价灰显 */
.gt-gpv-src.low { color: var(--text3); border: 1px dashed var(--border); }
.gt-gpx-low { color: var(--text2); font-weight: 600; }
.gt-gpv-rs { flex-basis: 100%; text-align: right; }

/* 手机：左栏变横向滚动的团本卡片条；装备行两行（名字 / 两个阵营价） */
@media (max-width: 760px) {
  .gt-gpv { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .gt-gpv-zones { position: static; display: flex; gap: 6px; max-height: none; overflow-x: auto; overflow-y: hidden; padding: 4px;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
  .gt-gpv-card { flex: 0 0 150px; height: 56px; scroll-snap-align: start; }
  .gt-gpv-banner { height: 76px; }
  .gt-gpv-banner .nm { font-size: 18px; }
  .gt-gpv-banner .ic { width: 40px; height: 40px; margin-top: -20px; right: 10px; }
  .gt-gpv-banner .tx { right: 60px; }
  .gt-gpv-head { display: none; }
  .gt-gpx-row.gt-gpv-row { grid-template-columns: 22px minmax(0, 1fr) minmax(0, 1fr); padding: 6px 8px; align-items: start; }
  .gt-gpv-row .gt-gp-nm { grid-column: 2 / -1; }
  .gt-gpv-msub { display: block; }
  .gt-gpv-il, .gt-gpv-sl { display: none; }
  .gt-gpx-row.gt-gpv-row .gt-gpv-pc { grid-column: auto; display: flex; justify-content: flex-start; text-align: left; }
  .gt-gpx-row.gt-gpv-row .gt-gpv-pc.fA { grid-column: 2; }
  .gt-gpx-row.gt-gpv-row .gt-gpv-pc.fH { grid-column: 3; }
  .gt-gpx-row.gt-gpv-row .gt-gpx-c::before { content: none; }
  .gt-gpv-pc .v { justify-content: flex-start; }
  .gt-gpv-rs { text-align: left; }
  .gt-gpv-bh .bn { font-size: 14px; }
  .gt-gpv-pt { width: 48px; height: 24px; }
  .gt-gpv-pt img { width: 54.86px; height: 27.43px; }
}

/* 10-22 物价页顶部「现有数据 + 最近上传」 */
.gt-gpf { margin: 12px 0 14px; padding: 12px 16px; }
.gt-gpf-h { font-size: 12.5px; color: var(--text3); letter-spacing: .5px; margin-bottom: 6px; }
.gt-gpf-h2 { margin: 12px 0 4px; padding-top: 10px; border-top: 1px solid var(--border); }
.gt-gpf-nums { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 13px; color: var(--text2); }
.gt-gpf-nums b { font-size: 20px; color: var(--gold); margin-right: 3px; font-variant-numeric: tabular-nums; }
.gt-gpf-sub { display: flex; flex-wrap: wrap; gap: 2px 0; margin-top: 6px; font-size: 12.5px; color: var(--text3); }
.gt-gpf-sub span + span::before { content: "|"; margin: 0 10px; opacity: .6; }
.gt-gpf-list { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.gt-gpf-list li { display: grid; grid-template-columns: 92px 52px minmax(0, 1fr) auto; gap: 10px; align-items: baseline;
  padding: 5px 0; border-bottom: 1px dashed var(--border); color: var(--text2); }
.gt-gpf-list li:last-child { border-bottom: 0; }
.gt-gpf-list .t { color: var(--text3); font-variant-numeric: tabular-nums; }
.gt-gpf-list .s { color: var(--text3); }
.gt-gpf-list .z { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-gpf-list .n b { color: var(--ok); font-variant-numeric: tabular-nums; }
@media (max-width: 560px) {
  .gt-gpf { padding: 10px 12px; }
  .gt-gpf-nums b { font-size: 17px; }
  .gt-gpf-list li { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; }
  .gt-gpf-list .s { display: none; }
  .gt-gpf-sub { display: block; }
  .gt-gpf-sub span { display: block; }
  .gt-gpf-sub span + span::before { content: none; }
}

/* ── 10-23 G团物价榜单 / 单件深度 / 本团战报（titan_gprice_insight.py）──
   卡片 + 排行条 + 表格；锁定行（网站会员可见）灰底 🔒；图表单序列，颜色只走主题变量。 */
.gt-gpb-status { margin: 8px 0 12px; }
.gt-gpb-badge { display: inline-block; font-size: 12.5px; color: var(--text3); border: 1px solid var(--border); border-radius: 999px; padding: 2px 10px; background: var(--s1); }
.gt-gpb-badge a { color: var(--gold); }
.gt-gpb-badge.on { color: var(--gold); border-color: var(--bhl); }
.gt-gpb-sec { margin: 0 0 14px; min-width: 0; }
.gt-gpb-h { font-size: 16px; font-weight: 700; margin: 0 0 10px; color: var(--text); display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.gt-gpb-h small { font-size: 12px; font-weight: 400; color: var(--text3); }
.gt-gpb-h3 { font-size: 13.5px; margin: 12px 0 6px; color: var(--text2); }
.gt-gpb-h3.up { color: var(--warn); } .gt-gpb-h3.dn { color: var(--ok); }
.gt-gpb-mh { margin-top: 24px; }
.gt-gpb-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.gt-gpb-empty { margin: 4px 0; }
.gt-gpb-it { text-decoration: none; color: var(--text); font-size: 13.5px; }
.gt-gpb-it:hover { text-decoration: underline; }
.gt-gpb-it.q2 { color: var(--q2); } .gt-gpb-it.q3 { color: var(--q3); } .gt-gpb-it.q4 { color: var(--q4); } .gt-gpb-it.q5 { color: var(--q5); }
.gt-gpb-lk { color: var(--text3); }
/* 会员引导条（只在网页模板里） */
.gt-gpb-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin-top: 10px; padding: 9px 12px;
  border: 1px dashed var(--bhl); border-radius: 8px; background: color-mix(in srgb, var(--gold) 6%, var(--s1)); font-size: 13px; color: var(--text2); }
.gt-gpb-cta b { color: var(--gold); }
.gt-gpb-cta-a { color: var(--gold); font-weight: 700; text-decoration: none; white-space: nowrap; }
.gt-gpb-cta-a:hover { text-decoration: underline; }
/* 服务器点亮 */
.gt-gpb-srv { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.gt-gpb-sv { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; background: var(--s2); }
.gt-gpb-sv.lit { border-color: var(--gold); }
.gt-gpb-sv .t { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; color: var(--text3); }
.gt-gpb-sv .t b { font-size: 15px; color: var(--text); }
.gt-gpb-sv.lit .t b { color: var(--gold); }
.gt-gpb-sv .s { margin-top: 6px; font-size: 12px; color: var(--text3); }
.gt-gpb-sv .s b { color: var(--text); }
.gt-gpb-bar { height: 8px; margin-top: 8px; border-radius: 4px; background: var(--s3); overflow: hidden; }
.gt-gpb-bar i { display: block; height: 100%; border-radius: 4px; background: var(--gold); }
/* 工资榜：排行条 */
.gt-gpb-rank { display: grid; gap: 6px; }
.gt-gpb-rr { display: grid; grid-template-columns: 22px minmax(70px, 120px) minmax(0, 1fr) auto; gap: 8px; align-items: center; font-size: 13.5px; }
.gt-gpb-rr .no { color: var(--text3); font-variant-numeric: tabular-nums; text-align: right; }
.gt-gpb-rr .nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text); }
.gt-gpb-rr .bw { height: 10px; border-radius: 4px; background: var(--s3); overflow: hidden; }
.gt-gpb-rr .bw i { display: block; height: 100%; border-radius: 0 4px 4px 0; background: var(--gold); }
.gt-gpb-rr.low .bw i { background: var(--text3); }
.gt-gpb-rr .v { display: inline-flex; align-items: baseline; gap: 4px; justify-content: flex-end; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gt-gpb-rr .v b { color: var(--gold); }
.gt-gpb-rr .v small { font-size: 11px; color: var(--text3); }
/* 涨跌榜 */
.gt-gpb-mv2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gt-gpb-mv2 .gt-gpb-h3 { margin-top: 0; }
.gt-gpb-mv { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gt-gpb-mv li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.gt-gpb-mv .nm { min-width: 0; display: flex; flex-direction: column; }
.gt-gpb-mv .nm a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-gpb-mv .nm small { font-size: 11px; color: var(--text3); }
.gt-gpb-mv .v { font-weight: 800; font-variant-numeric: tabular-nums; text-align: right; display: flex; flex-direction: column; }
.gt-gpb-mv .v small { font-size: 11px; font-weight: 400; color: var(--text3); }
.gt-gpb-mv .v.up { color: var(--warn); } .gt-gpb-mv .v.dn { color: var(--ok); }
/* 名人堂 */
.gt-gpb-fame { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.gt-gpb-fm { display: grid; grid-template-columns: 24px 32px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--s2); }
.gt-gpb-fm.top { border-color: var(--bhl); }
.gt-gpb-fm.t1 { border-color: var(--gold); box-shadow: 0 0 0 1px color-mix(in srgb, var(--gold) 30%, transparent); }
.gt-gpb-fm .no { font-size: 18px; font-weight: 800; color: var(--text3); text-align: center; }
.gt-gpb-fm.top .no { color: var(--gold); }
.gt-gpb-fm .tx { min-width: 0; display: flex; flex-direction: column; }
.gt-gpb-fm .tx a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-gpb-fm .tx small { font-size: 11.5px; color: var(--text3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-gpb-fame .gt-gpb-fm.more { display: none; }
.gt-gpb-fame.open .gt-gpb-fm.more { display: grid; }
.gt-gpb-more { margin-top: 10px; }
.gt-gpb-fm .g { font-size: 17px; color: var(--gold); white-space: nowrap; font-variant-numeric: tabular-nums; }
.gt-gpb-fm .g small { font-size: 11px; font-weight: 400; color: var(--text3); margin-left: 2px; }
/* 物价指数：每个副本一张小图 */
.gt-gpb-idx { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.gt-gpb-idx > .gt-gpb-cta { grid-column: 1 / -1; }
.gt-gpb-ix { border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px 4px; background: var(--s2); min-width: 0; }
.gt-gpb-ix .t { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; }
.gt-gpb-ix .t span { font-size: 18px; font-weight: 800; color: var(--text); font-variant-numeric: tabular-nums; }
.gt-gpb-ix .t span.up { color: var(--warn); } .gt-gpb-ix .t span.dn { color: var(--ok); }
/* 图表 */
.gt-gpb-chart { position: relative; }
.gt-gpb-svg { display: block; width: 100%; height: auto; overflow: visible; }
.gt-gpb-svg .gr { stroke: var(--border); stroke-width: 1; }
.gt-gpb-svg .bs { stroke: var(--text3); stroke-width: 1; stroke-dasharray: 4 4; }
.gt-gpb-svg .ln { fill: none; stroke: var(--gold); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.gt-gpb-svg .pt { fill: var(--gold); stroke: var(--s1); stroke-width: 2; }
.gt-gpb-svg .ch { stroke: var(--text3); stroke-width: 1; }
.gt-gpb-svg .ax { fill: var(--text3); font-size: 11px; }
.gt-gpb-tip { position: absolute; top: -6px; transform: translateY(-100%); padding: 4px 8px; border: 1px solid var(--bhl); border-radius: 6px;
  background: var(--s2); color: var(--text2); font-size: 12px; white-space: nowrap; pointer-events: none; z-index: 5; }
.gt-gpb-tip b { color: var(--gold); }
.gt-gpb-hist { display: flex; align-items: flex-end; gap: 4px; height: 140px; padding-top: 16px; }
.gt-gpb-hist .col { flex: 1 1 0; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; }
.gt-gpb-hist .bar { display: block; width: 100%; background: var(--gold); border-radius: 4px 4px 0 0; }
.gt-gpb-hist .n { font-size: 11px; color: var(--text2); font-variant-numeric: tabular-nums; }
.gt-gpb-hist .lb { font-size: 10.5px; color: var(--text3); margin-top: 3px; white-space: nowrap; overflow: hidden; max-width: 100%; }
/* 表格（经济对比 / 工资细分 / 起拍价 / 战报逐件）：外层横向滚动，不撑破手机页面 */
.gt-gpb-tw { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gt-gpb-t { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.gt-gpb-t th { text-align: left; font-weight: 600; font-size: 12px; color: var(--text3); padding: 6px 8px; border-bottom: 1px solid var(--border); white-space: nowrap; }
.gt-gpb-t td { padding: 6px 8px; border-bottom: 1px solid var(--border); color: var(--text2); white-space: nowrap; }
.gt-gpb-t td b { color: var(--text); }
.gt-gpb-t .r { text-align: right; }
.gt-gpb-t td.it { white-space: nowrap; max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.gt-gpb-t td.it .gt-ico { margin-right: 6px; }
.gt-gpb-t tr.lk td { background: var(--s2); color: var(--text3); }
.gt-gpb-rbar { margin: 0 0 10px; }
/* 单件深度页 */
.gt-gpi-head { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.gt-gpi-head .gt-h1 { margin: 0; }
.gt-gpi-head .gt-note { margin: 2px 0 0; }
.gt-gpi-diffs { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 12px; }
.gt-gpv-tbtn.on { color: var(--gold); border-color: var(--gold); }
.gt-gpi-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0 0 14px; }
.gt-gpi-st { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; background: var(--s1); display: flex; flex-direction: column; min-width: 0; }
.gt-gpi-st span { font-size: 12px; color: var(--text3); }
.gt-gpi-st b { font-size: 20px; color: var(--gold); font-variant-numeric: tabular-nums; margin-top: 2px; }
.gt-gpi-st small { font-size: 11.5px; color: var(--text3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-gpi-two { margin-top: 6px; }
.gt-gpi-teaser { margin-top: 10px; }
.gt-gpi-teaser > b { font-size: 14px; color: var(--text); }
/* 物价页：每件的「走势」入口 */
.gt-gpv-dl { margin-left: 6px; font-size: 11px; color: var(--text3); border: 1px solid var(--border); border-radius: 3px; padding: 0 4px; text-decoration: none; white-space: nowrap; }
.gt-gpv-dl:hover { color: var(--gold); border-color: var(--gold); }
/* 本团战报 */
.gt-gpr { margin: 0 0 14px; }
.gt-gpr-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 10px; }
.gt-gpr-h > b { font-size: 17px; color: var(--gold); }
.gt-gpr-raid { border-top: 1px solid var(--border); padding-top: 10px; margin-top: 10px; }
.gt-gpr-rh { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 8px; font-size: 13px; color: var(--text3); }
.gt-gpr-rh > b { font-size: 15px; color: var(--text); }
.gt-gpr-rank b { color: var(--gold); }
.gt-gpr-top { margin: 0 0 8px; font-size: 13px; color: var(--text2); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.gt-gpr-pct.up { color: var(--warn); font-weight: 700; } .gt-gpr-pct.dn { color: var(--ok); font-weight: 700; }
@media (max-width: 760px) {
  .gt-gpb-grid, .gt-gpb-mv2 { grid-template-columns: minmax(0, 1fr); }
  .gt-gpb-rr { grid-template-columns: 18px minmax(60px, 96px) minmax(0, 1fr) auto; gap: 6px; }
  .gt-gpi-st b { font-size: 17px; }
  .gt-gpb-t td.it { max-width: 180px; }
}

/* ── 10-23 G团价格关注（titan_gprice_watch.py）：关注页 · 单件页关注按钮 / 条件表单 · 物价页「有变动」条 ── */
.gt-gpw-notice { margin: 0 0 12px; border-color: var(--gold); }
.gt-gpw-notice[hidden], .gt-gpw-dot[hidden] { display: none; }
.gt-gpw-dot { display: inline-block; min-width: 18px; margin-left: 6px; padding: 0 5px; border-radius: 999px; background: var(--warn); color: var(--bg);
  font-size: 11px; font-style: normal; font-weight: 700; line-height: 18px; text-align: center; }
.gt-gpw-box { margin: 10px 0 14px; }
.gt-gpw-bar1 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.gt-gpw-bar1 .gt-gpv-btn.on { color: var(--gold); border-color: var(--gold); }
.gt-gpw-hitt { color: var(--warn); }
.gt-gpw-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 10px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: 8px; background: var(--s1); font-size: 13.5px; color: var(--text2); }
.gt-gpw-form input[type=number] { width: 96px; padding: 4px 6px; border: 1px solid var(--border); border-radius: 6px; background: var(--s2); color: var(--text); font: inherit; }
.gt-gpw-ck { display: inline-flex; align-items: center; gap: 4px; }
.gt-gpw-gate { margin-top: 10px; }
.gt-gpw-gbtn { display: inline-flex; align-items: center; gap: 10px; }
.gt-gpw-t td.it { white-space: normal; }
.gt-gpw-sub { display: block; font-size: 11px; color: var(--text3); }
.gt-gpw-t tr.hit td { background: color-mix(in srgb, var(--warn) 10%, var(--s1)); }
.gt-gpw-t tr.hit td:first-child { box-shadow: inset 3px 0 0 var(--warn); }
.gt-gpw-t .up { color: var(--warn); } .gt-gpw-t .dn { color: var(--ok); }
.gt-gpw-chip { display: inline-block; font-style: normal; font-size: 12px; padding: 1px 8px; border-radius: 999px; color: var(--warn);
  border: 1px solid color-mix(in srgb, var(--warn) 50%, transparent); white-space: nowrap; }
.gt-gpw-hitb { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 50%, transparent); }
.gt-gpw-act { background: none; border: 0; padding: 0; color: var(--gold); font: inherit; font-size: 12.5px; cursor: pointer; text-decoration: none; }
.gt-gpw-act:hover { text-decoration: underline; }
.gt-gpw-new { font-style: normal; font-size: 11px; font-weight: 700; color: var(--bg); background: var(--warn); border-radius: 4px; padding: 0 4px; }
.gt-gpw-paused { margin-top: 0; }
/* ── G团物价周报（10-29，wow_titan_gprice_weekly.html）── */
.gt-gpk-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 12px; }
.gt-gpk-bar .gt-gp-sel { min-width: 0; max-width: 100%; }
.gt-gpk-built { font-size: 12px; color: var(--text3); margin-left: auto; }
.gt-gpk-flag { margin: 0 0 12px; padding: 8px 12px; border: 1px dashed var(--bhl); border-radius: 8px; font-size: 13px; color: var(--text2); background: var(--s1); }
.gt-gpk-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gt-gpk-tile { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; background: var(--s2); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gt-gpk-tile .l { font-size: 12px; color: var(--text3); }
.gt-gpk-tile b { font-size: 24px; color: var(--gold); font-variant-numeric: tabular-nums; }
.gt-gpk-tile small { font-size: 11.5px; color: var(--text3); }
.gt-gpk-d { font-weight: 700; font-variant-numeric: tabular-nums; margin-left: 2px; }
.gt-gpk-d.up { color: var(--warn); } .gt-gpk-d.dn { color: var(--ok); }
.gt-gpk-trend { margin-top: 6px; }
.gt-gpk-zones { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.gt-gpk-zone { border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; background: var(--s2); min-width: 0; }
.gt-gpk-zone .h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.gt-gpk-zone .h b { font-size: 15px; color: var(--text); }
.gt-gpk-zone .h span { font-size: 12px; color: var(--text3); text-align: right; }
.gt-gpk-zone .w { margin: 6px 0 8px; font-size: 13px; color: var(--text2); }
.gt-gpk-zone .w b { color: var(--gold); font-size: 17px; font-variant-numeric: tabular-nums; }
.gt-gpk-zone .w small { font-size: 11.5px; color: var(--text3); margin-left: 2px; }
.gt-gpk-top { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gt-gpk-top li { display: grid; grid-template-columns: 16px 22px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.gt-gpk-top .no { font-size: 12px; color: var(--text3); text-align: right; font-variant-numeric: tabular-nums; }
.gt-gpk-top .nm, .gt-gpk-new .nm { min-width: 0; display: flex; flex-direction: column; }
.gt-gpk-top .nm a, .gt-gpk-new .nm a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-gpk-top .nm small, .gt-gpk-new .nm small { font-size: 11px; color: var(--text3); }
.gt-gpk-top .g { color: var(--gold); white-space: nowrap; font-variant-numeric: tabular-nums; }
.gt-gpk-top .g small { font-size: 11px; font-weight: 400; color: var(--text3); margin-left: 2px; }
.gt-gpk-new { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 14px; }
.gt-gpk-new .it { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; align-items: center; }
@media (max-width: 640px) {
  .gt-gpk-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gt-gpk-zones { grid-template-columns: minmax(0, 1fr); }
  .gt-gpk-built { margin-left: 0; width: 100%; }
}
