:root{
  --bg:#f2f5fa; --paper:#fff; --ink:#16203a; --muted:#6b7488; --line:#e3e9f3;
  --gem:#3866ee; --gem-bg:#edf2ff; --gem-line:#c9d6ff;
  --qw:#7a5af8; --qw-bg:#f3f0ff; --qw-line:#dcd4ff;
  --strong:#0f9f6e; --strong-bg:#e7f8f1; --strong-line:#bfe9d8;
  --weak:#b07b12; --weak-bg:#fff7e3; --weak-line:#f3e0b4;
  --orange:#d98312; --orange-bg:#fff5e6; --orange-line:#f3d9b4;
  --red:#cf3b47; --red-bg:#fdecee; --red-line:#f6d3d7;
  --navy:#0e1830;
  --shadow:0 8px 26px rgba(22,32,58,.06);
  --shadow-lg:0 18px 48px rgba(22,32,58,.14);
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:14px/1.62 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;}
body.lock{overflow:hidden}
img{display:block;max-width:100%}
button{font:inherit;color:inherit}
code{font-family:var(--mono);font-size:.92em}

.wrap{max-width:1680px;margin:0 auto;padding:26px 24px 56px}

/* ---------- header ---------- */
.eyebrow{display:flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:1.4px;font-weight:800;color:var(--gem);text-transform:uppercase}
.eyebrow .sep{width:1px;height:11px;background:#c9d6ff}
header{padding:4px 2px 18px}
h1{margin:10px 0 8px;font-size:31px;line-height:1.18;letter-spacing:-.9px}
h1 em{font-style:normal;color:var(--gem)}
h1 b{color:var(--qw);font-weight:inherit}
.sub{margin:0;max-width:1120px;color:var(--muted);font-size:13px;line-height:1.7}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;
  border-radius:999px;padding:6px 11px;font-size:11px;font-weight:700;color:var(--muted)}
.badge b{color:var(--ink);font-weight:850}
.badge.gem{background:var(--gem-bg);border-color:var(--gem-line);color:var(--gem)}
.badge.qw{background:var(--qw-bg);border-color:var(--qw-line);color:var(--qw)}
.badge.ok{background:var(--strong-bg);border-color:var(--strong-line);color:var(--strong)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex:none}

/* ---------- generic card ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:18px 20px;margin-bottom:16px}
.card-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.card-h h2{margin:0;font-size:17px;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}
.card-h .hint{font-size:11px;color:var(--muted);line-height:1.6;text-align:right;max-width:640px}

/* ---------- overview kpi ---------- */
.kpi-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table.kpi{width:100%;border-collapse:collapse;font-size:12.5px;min-width:760px}
table.kpi th{background:#f7f9fe;color:var(--muted);font-size:9.5px;letter-spacing:.6px;font-weight:850;
  padding:10px 14px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
table.kpi th:first-child{text-align:left}
table.kpi th.mh{font-size:11px;letter-spacing:0}
table.kpi td{padding:8px 14px;text-align:right;border-top:1px solid #f1f4f9;font-variant-numeric:tabular-nums;white-space:nowrap}
table.kpi td.metric{text-align:left;font-weight:700;color:#3a4355}
table.kpi tbody tr:hover td{background:#fbfcff}
table.kpi td .u{color:var(--muted);font-size:10.5px;font-weight:600;margin-left:2px}
th.mhx{font-size:11px;letter-spacing:0;font-weight:800;color:#43506b}
th.mhx .dot{margin-right:4px;vertical-align:middle}
.diff{font-weight:800}
.diff.good{color:var(--strong)}
.diff.bad{color:var(--red)}
.diff.flat{color:var(--muted);font-weight:650}
.kpi-note{font-size:10.5px;color:var(--muted);line-height:1.75;margin-top:9px}
.kpi-note b{color:#43506b}

/* ---------- first-step diff card ---------- */
.diff-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr);gap:20px}
.dc-left{border-right:1px dashed var(--line);padding-right:20px}
.dc-kicker{font-size:9.5px;font-weight:850;letter-spacing:1px;color:var(--muted)}
.dc-title{font-size:15px;font-weight:800;margin:5px 0 10px;letter-spacing:-.2px}
.count-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.count-box{border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fcfdff}
.count-box .cl{font-size:10px;font-weight:800;display:flex;align-items:center;gap:5px}
.count-box .cv{font-size:26px;font-weight:850;letter-spacing:-1px;line-height:1.15;font-variant-numeric:tabular-nums}
.count-box .cs{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.dc-eq{display:flex;align-items:center;gap:10px;margin:10px 0 4px;font-size:11.5px;color:var(--muted)}
.dc-eq b{color:var(--ink)}
.dc-note{font-size:11.5px;color:#4a5670;line-height:1.8;margin:8px 0 0}
.dc-note .hl{background:#fff7e3;border-radius:4px;padding:0 3px;font-weight:700;color:#8a5f0e}
.match-bars{display:flex;flex-direction:column;gap:9px;margin-top:12px}
.mb-row{display:grid;grid-template-columns:96px minmax(0,1fr) 92px;gap:10px;align-items:center;font-size:11px}
.mb-row .lb{font-weight:750;display:flex;align-items:center;gap:6px;white-space:nowrap}
.mb-track{height:12px;background:#eef2f9;border-radius:99px;overflow:hidden}
.mb-track i{display:block;height:100%;border-radius:99px}
.mb-row .vl{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}
.mb-row .vl small{color:var(--muted);font-weight:650}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:var(--muted);margin-top:12px}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ---------- workspace ---------- */
.ws{display:grid;grid-template-columns:326px minmax(0,1fr);gap:16px;align-items:start}
aside{position:sticky;top:12px;background:var(--paper);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:calc(100vh - 24px);overflow:hidden}
.side-h{padding:13px 14px 10px;border-bottom:1px solid var(--line);background:#fcfdff}
.side-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.side-title b{font-size:13px}
.side-title span{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}
.filters input,.filters select{width:100%;font:11.5px/1.4 inherit;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:8px;padding:6px 8px;outline:none;min-width:0}
.filters input:focus,.filters select:focus{border-color:#b9c9f5;box-shadow:0 0 0 3px #edf2ff}
.filters input{grid-column:1/-1}
.list{overflow-y:auto;overscroll-behavior:contain;padding:6px}
.row{display:grid;grid-template-columns:54px minmax(0,1fr);gap:9px;align-items:center;width:100%;text-align:left;
  border:1px solid transparent;background:transparent;border-radius:10px;padding:6px;cursor:pointer;margin-bottom:1px}
.row:hover{background:#f7f9fe}
.row.on{background:var(--gem-bg);border-color:var(--gem-line)}
.row img{width:54px;height:42px;object-fit:cover;border-radius:6px;background:#eef1f7}
.row-q{font-size:11.5px;font-weight:700;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.row-meta{font-size:9.5px;color:var(--muted);display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:2px;font-variant-numeric:tabular-nums}
.row-meta .tag{border-radius:4px;padding:0 4px;font-weight:750;background:#eef2f9;color:#55617a}
.row-meta .tag.k{background:#f0f4ff;color:#3d5ecb}
.row-meta .tag.z{background:var(--red-bg);color:var(--red)}
.row-meta .n{font-weight:800;color:#3a4355}
.row-meta .n.g{color:var(--gem)}
.row-meta .n.q{color:var(--qw)}
.empty-list{padding:26px 12px;text-align:center;color:var(--muted);font-size:11.5px;line-height:1.8}

/* ---------- detail head ---------- */
.detail{min-width:0}
.dh{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:16px;background:var(--paper);
  border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px;margin-bottom:14px}
.dh-imgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dh-imgs figure{margin:0;background:#0f1729;border-radius:10px;overflow:hidden;position:relative;cursor:zoom-in}
.dh-imgs img{width:100%;height:186px;object-fit:contain}
.dh-imgs figcaption{position:absolute;left:6px;bottom:6px;background:rgba(9,15,28,.72);color:#fff;
  font-size:9px;font-weight:750;padding:2px 6px;border-radius:4px;letter-spacing:.3px;backdrop-filter:blur(4px)}
.dh-imgs figure.g figcaption{background:rgba(56,102,238,.9)}
.dh-imgs figure.q figcaption{background:rgba(122,90,248,.9)}
.dh-info{min-width:0;display:flex;flex-direction:column}
.dh-q{font-size:15px;font-weight:800;line-height:1.4;letter-spacing:-.2px;margin-bottom:8px;word-break:break-word}
.dh-q .lb{display:block;font-size:9px;letter-spacing:1px;color:var(--muted);font-weight:850;margin-bottom:2px}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.chip{font-size:9.5px;font-weight:750;border-radius:999px;padding:3px 8px;background:#eef2f9;color:#55617a;white-space:nowrap}
.chip.src{background:#eef2ff;color:#3d5ecb}
.chip.kind{background:#eaf7f1;color:#0d7d59}
.chip.id{font-family:var(--mono);font-size:9px;background:#f4f6fa;color:#7a8699;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.qgrid{margin-top:auto;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.qgrid table{width:100%;border-collapse:collapse;font-size:11px}
.qgrid th,.qgrid td{padding:5px 9px;text-align:right;border-top:1px solid #f1f4f9;font-variant-numeric:tabular-nums;white-space:nowrap}
.qgrid thead th{border-top:0;background:#f8faff;font-size:9px;letter-spacing:.4px;color:var(--muted)}
.qgrid th:first-child,.qgrid td:first-child{text-align:left;font-weight:700;color:#4a5670}
.qgrid thead th:nth-child(2){color:var(--gem)}
.qgrid thead th:nth-child(3){color:var(--qw)}

/* ---------- stepper ---------- */
.stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:12px}
.st{border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 10px;text-align:left;cursor:pointer;
  box-shadow:var(--shadow);transition:border-color .15s,background .15s,transform .15s}
.st:hover{border-color:#c9d6ff;transform:translateY(-1px)}
.st .n{font-size:9px;font-weight:850;color:var(--muted);letter-spacing:.6px}
.st .t{font-size:11.5px;font-weight:800;margin-top:1px;letter-spacing:-.1px;line-height:1.35}
.st .s{font-size:9.5px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st.on{background:#101a2e;border-color:#101a2e;color:#fff}
.st.on .n{color:#8fa6d8}
.st.on .s{color:#a9b7d6}
.st.on .t{color:#fff}

/* ---------- step body ---------- */
.step-body{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px 18px;min-height:420px}
.sb-h{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.sb-h h3{margin:0;font-size:15px;letter-spacing:-.2px}
.sb-h p{margin:2px 0 0;font-size:11px;color:var(--muted);line-height:1.65;max-width:860px}
.sb-tools{display:flex;gap:6px;align-items:center;margin-left:auto}
.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:700;
  color:#4a5670;cursor:pointer}
.btn:hover{border-color:#c9d6ff;color:var(--gem)}
.btn:disabled{opacity:.45;cursor:default}

/* stat strip */
.strip{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.sc{display:flex;align-items:baseline;gap:6px;border:1px solid var(--line);border-radius:9px;padding:5px 9px;background:#fcfdff}
.sc .k{font-size:9.5px;color:var(--muted);font-weight:750}
.sc .v{font-size:14px;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.sc.g{border-color:var(--strong-line);background:var(--strong-bg)}
.sc.y{border-color:var(--weak-line);background:var(--weak-bg)}
.sc.b{border-color:var(--gem-line);background:var(--gem-bg)}
.sc.o{border-color:var(--orange-line);background:var(--orange-bg)}
.sc.r{border-color:var(--red-line);background:var(--red-bg)}

.cols2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.pane{min-width:0}
.pane-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0 8px;border-bottom:1px solid var(--line);margin-bottom:9px}
.pane-h .pn{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800}
.pane-h .ps{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.pane.g{border-top:2px solid var(--gem);padding-top:4px}
.pane.q{border-top:2px solid var(--qw);padding-top:4px}

/* caption aligned rows */
.align-head{display:grid;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:8px;margin-bottom:4px}
.align-head div{font-size:9.5px;font-weight:850;letter-spacing:.4px;color:var(--muted);padding:0 2px}
.align-head div:last-child{text-align:left}
.align-head div:nth-child(2){text-align:center}
.rows{display:flex;flex-direction:column;gap:3px}
.arow{display:grid;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:8px;align-items:center;
  border:1px solid var(--line);border-radius:9px;padding:6px 8px;background:#fcfdff}
.arow .lab{font-size:11.5px;line-height:1.45;word-break:break-word}
.arow .lab.blank{color:#b6bfd0;font-style:italic}
.arow .stat{font-size:8.5px;font-weight:850;text-align:center;border-radius:999px;padding:2px 0;line-height:1.4}
.arow.strong{background:var(--strong-bg);border-color:var(--strong-line)}
.arow.strong .stat{background:#d5f2e6;color:#0a7a54}
.arow.weak{background:var(--weak-bg);border-color:var(--weak-line)}
.arow.weak .stat{background:#fbe9c2;color:#8a5f0e}
.arow.gonly{background:var(--gem-bg);border-color:var(--gem-line)}
.arow.gonly .stat{background:#dae3ff;color:#2a4fc4}
.arow.qonly{background:var(--orange-bg);border-color:var(--orange-line)}
.arow.qonly .stat{background:#ffe6c2;color:#a25c00}
.arow .glyph{font-size:8.5px;color:#8a5f0e;display:block;font-weight:800;margin-top:1px}

/* two-col label lists (used in overview) */
.lab-list{display:flex;flex-direction:column;gap:4px}
.lab-item{font-size:11.5px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:#fcfdff;line-height:1.45}

/* verdict table */
table.vt{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed}
table.vt th{background:#f8faff;color:var(--muted);font-size:9px;letter-spacing:.4px;font-weight:850;
  padding:6px 6px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
table.vt td{padding:6px 6px;border-top:1px solid #f1f4f9;vertical-align:top}
table.vt th.idx,table.vt td.idx{width:22px;color:#9aa5b8;font-variant-numeric:tabular-nums;font-size:10px}
table.vt th.lab,table.vt td.lab{width:34%;font-weight:700;line-height:1.45;word-break:break-word}
table.vt th.vd,table.vt td.vd{width:58px}
table.vt tbody tr:hover td{background:#fbfcff}
.vbadge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:850;border-radius:999px;padding:2px 7px;white-space:nowrap}
.vbadge.pass{background:var(--strong-bg);color:#0a7a54;border:1px solid var(--strong-line)}
.vbadge.fail{background:var(--red-bg);color:#a52b36;border:1px solid var(--red-line)}
.vbadge.skip{background:#eef2f9;color:#6b7488;border:1px solid var(--line)}
.reason{font-size:10.5px;color:#5a6580;line-height:1.65;border-left:2px solid var(--line);padding-left:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reason.open{-webkit-line-clamp:unset;display:block}
.reason .zh{color:#9aa5b8}
.rtoggle{background:none;border:0;padding:0;margin-top:2px;font-size:9.5px;font-weight:800;color:var(--gem);cursor:pointer}
.empty{color:var(--muted);font-size:11.5px;line-height:1.8;padding:14px 12px;background:#fafbfe;border:1px dashed var(--line);border-radius:10px}
.alert{display:flex;gap:8px;align-items:flex-start;background:#fffdf5;border:1px solid #f0e2bd;border-radius:10px;
  padding:9px 11px;font-size:11px;line-height:1.7;color:#7a5f1d;margin-bottom:10px}
.alert b{color:#6b4d00}
.alert .ico{flex:none;font-weight:900;color:#c99a2a}

/* accepted cards */
.acc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:10px}
.acc{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.acc .im{background:#0f1729;cursor:zoom-in;position:relative}
.acc .im img{width:100%;height:132px;object-fit:cover}
.acc .im .ix{position:absolute;top:5px;left:5px;background:rgba(9,15,28,.7);color:#fff;font-size:8.5px;font-weight:800;
  padding:1px 5px;border-radius:4px}
.acc .bd{padding:7px 8px 8px;display:flex;flex-direction:column;gap:4px;flex:1}
.acc .lb{font-size:11px;font-weight:800;line-height:1.4;word-break:break-word}
.acc .ds{font-size:10px;color:#68738a;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.acc .ds.open{-webkit-line-clamp:unset;display:block}
.acc .bb{font-family:var(--mono);font-size:8.5px;color:#8b96a9;background:#f5f7fb;border-radius:5px;padding:2px 5px;margin-top:auto}
.pane.g .acc{border-top:2px solid var(--gem)}
.pane.q .acc{border-top:2px solid var(--qw)}

/* prompt cards */
.ctabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.ctab{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 11px;font-size:11px;font-weight:750;
  cursor:pointer;color:#4a5670;display:inline-flex;align-items:center;gap:6px}
.ctab:hover{border-color:#c9d6ff}
.ctab.on{background:#101a2e;border-color:#101a2e;color:#fff}
.ctab .cnt{font-size:9px;font-weight:850;background:#eef2f9;color:#55617a;border-radius:99px;padding:0 5px}
.ctab.on .cnt{background:#2b3a5c;color:#c6d4f2}
.pcard{border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:#fff;margin-bottom:8px}
.pcard.pass{border-left:3px solid var(--strong)}
.pcard.fail{border-left:3px solid var(--red)}
.pcard .ph{display:flex;gap:7px;align-items:flex-start;justify-content:space-between}
.pcard .pt{font-size:11.5px;font-weight:750;line-height:1.5;word-break:break-word}
.pcard .pm{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:5px}
.mini{font-size:8.5px;font-weight:750;border-radius:5px;padding:1px 5px;background:#f2f5fa;color:#6b7488;font-family:var(--mono)}
.mini.fam{background:#f4f0ff;color:#6b4de0;font-family:inherit}
.mini.hit{background:#fff3e0;color:#a25c00}
.pcard .pr{font-size:10px;color:#68738a;line-height:1.6;border-left:2px solid var(--line);padding-left:7px;margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard .pr.open{-webkit-line-clamp:unset;display:block}
.pcard .ev{margin-top:6px}
.pcard .ev img{width:100%;max-width:300px;height:auto;max-height:190px;object-fit:contain;background:#0f1729;border-radius:7px;cursor:zoom-in}

/* timing */
.tot{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:center;
  border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px;background:#fcfdff}
.tot .m{min-width:0}
.tot .m .nm{font-size:10px;font-weight:850;display:flex;align-items:center;gap:5px}
.tot .m .big{font-size:30px;font-weight:850;letter-spacing:-1.2px;line-height:1.15;font-variant-numeric:tabular-nums}
.tot .m .big small{font-size:13px;font-weight:750;color:var(--muted);margin-left:2px;letter-spacing:0}
.tot .m .bar{height:9px;background:#eef2f9;border-radius:99px;overflow:hidden;margin-top:6px}
.tot .m .bar i{display:block;height:100%;border-radius:99px}
.tot .m .cap{font-size:9.5px;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}
.tot .mid{text-align:center}
.tot .mid .x{font-size:22px;font-weight:850;letter-spacing:-.8px;color:var(--strong)}
.tot .mid .cap{font-size:9px;color:var(--muted);font-weight:750}
table.stg{width:100%;border-collapse:collapse;font-size:11.5px}
table.stg th{background:#f8faff;color:var(--muted);font-size:9px;letter-spacing:.4px;font-weight:850;
  padding:6px 9px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
table.stg th:first-child{text-align:left}
table.stg td{padding:5px 9px;border-top:1px solid #f1f4f9;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.stg td:first-child{text-align:left;font-weight:700;color:#3a4355}
table.stg tr.sum td{background:#fafbff;font-weight:850;border-top:1px solid var(--line)}
table.stg .z{color:#b6bfd0}
table.stg .gcls{color:var(--gem);font-weight:750}
table.stg .qcls{color:var(--qw);font-weight:750}
.two-tables{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px}
.tt-h{font-size:10px;font-weight:850;letter-spacing:.5px;color:var(--muted);margin:0 0 6px}

/* footer / pager */
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.pager .pos{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.pager .btns{display:flex;gap:6px}

/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(8,13,25,.82);z-index:200;display:none;align-items:center;justify-content:center;padding:26px}
.lightbox.on{display:flex}
.lightbox img{max-width:94vw;max-height:86vh;object-fit:contain;border-radius:8px;box-shadow:var(--shadow-lg)}
.lightbox .cap{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#cfd8ea;font-size:11px;padding:0 20px}
.lightbox .x{position:absolute;top:14px;right:18px;background:rgba(255,255,255,.12);border:0;color:#fff;border-radius:8px;
  width:34px;height:34px;font-size:18px;cursor:pointer}
.lightbox .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:0;color:#fff;
  width:38px;height:52px;font-size:20px;cursor:pointer;border-radius:8px}
.lightbox .nav.prev{left:16px}.lightbox .nav.next{right:16px}

@media (max-width:1280px){
  .ws{grid-template-columns:288px minmax(0,1fr)}
  .diff-card{grid-template-columns:minmax(0,1fr)}
  .dc-left{border-right:0;border-bottom:1px dashed var(--line);padding-right:0;padding-bottom:14px}
  .dh{grid-template-columns:1fr}
  .dh-imgs img{height:160px}
  .two-tables{grid-template-columns:1fr}
}
@media (max-width:980px){
  .ws{grid-template-columns:1fr}
  aside{position:relative;top:0;max-height:340px}
  .stepper{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dh-imgs img{height:150px}
  h1{font-size:24px}
}
