  :root {
    --bg:#f4f6f9; --card:#fff; --ink:#1c2430; --sub:#6b7686; --line:#e4e8ee;
    --accent:#2563eb; --accent-soft:#eaf0fe; --green:#0e9f6e; --orange:#d97706;
  }
  * { box-sizing:border-box; margin:0; }
  body { background:var(--bg); color:var(--ink); font:14px/1.65 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif; }
  header { background:#10172a; color:#fff; padding:18px 28px; display:flex; align-items:baseline; gap:14px; }
  header h1 { font-size:19px; font-weight:700; }
  header span { color:#93a3c0; font-size:12.5px; }
  .wrap { max-width:1180px; margin:0 auto; padding:20px 24px 60px; }
  .stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px; }
  .stat { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:14px 18px; }
  .stat b { display:block; font-size:24px; font-weight:700; }
  .stat i { font-style:normal; color:var(--sub); font-size:12.5px; }
  .tabs { display:flex; gap:6px; margin-bottom:16px; }
  .tabs button { border:1px solid var(--line); background:var(--card); padding:8px 18px; border-radius:8px;
    font-size:14px; cursor:pointer; color:var(--sub); }
  .tabs button.on { background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
  .panel { display:none; } .panel.on { display:block; }
  .grid { display:grid; grid-template-columns:340px 1fr; gap:16px; align-items:start; }
  .card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px 18px; }
  .card h3 { font-size:14.5px; margin-bottom:10px; }
  #svysel { width:100%; border:1px solid var(--line); border-radius:8px; padding:9px 12px; font-size:13.5px; background:#fff; color:var(--ink); outline:none; cursor:pointer; }
  #svysel:focus { border-color:var(--accent); }
  .svy-meta { color:var(--sub); font-size:12px; margin-top:8px; line-height:1.8; }
  .tag { display:inline-block; font-size:11px; padding:1px 7px; border-radius:99px; background:#eef1f6; color:var(--sub); margin-right:5px; }
  .qrow { padding:8px 10px; border-bottom:1px solid var(--line); cursor:pointer; font-size:13px; display:flex; gap:8px; }
  .qrow:hover { background:var(--accent-soft); }
  .qrow .t { flex:1; }
  .qtype { font-size:11px; color:#fff; border-radius:4px; padding:0 6px; height:18px; line-height:18px; flex:none; margin-top:2px; }
  .qt-single{background:#2563eb}.qt-multi{background:#0e9f6e}.qt-scale{background:#d97706}
  .qt-text{background:#7c3aed}.qt-matrix{background:#0891b2}.qt-rank{background:#be185d}.qt-region{background:#64748b}
  .bar { display:flex; align-items:center; gap:10px; margin:5px 0; font-size:13px; }
  .bar .lbl { width:42%; text-align:right; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .bar .trk { display:block; flex:1; background:#eef1f6; border-radius:5px; height:18px; position:relative; overflow:hidden; }
  .bar .fil { display:block; background:var(--accent); height:100%; border-radius:5px; min-width:2px; }
  .bar .num { width:90px; color:var(--sub); font-size:12px; }
  .byrow { margin:12px 0 4px; display:flex; gap:6px; }
  .byrow button { border:1px solid var(--line); background:#fff; border-radius:6px; padding:3px 12px; font-size:12.5px; cursor:pointer; color:var(--sub); }
  .byrow button.on { border-color:var(--accent); color:var(--accent); font-weight:600; }
  .grp-title { font-size:12.5px; color:var(--sub); margin:10px 0 2px; font-weight:600; }
  .quote { border-left:3px solid var(--accent); background:#fafbfd; padding:8px 12px; margin:8px 0; border-radius:0 8px 8px 0; font-size:13px; }
  .quote .meta { color:var(--sub); font-size:11.5px; margin-top:3px; }
  .searchbox { display:flex; gap:8px; margin-bottom:14px; }
  .searchbox input { flex:1; border:1px solid var(--line); border-radius:8px; padding:10px 14px; font-size:14px; outline:none; }
  .searchbox input:focus { border-color:var(--accent); }
  .searchbox button { background:var(--accent); color:#fff; border:0; border-radius:8px; padding:0 22px; font-size:14px; cursor:pointer; }
  .hint { color:var(--sub); font-size:12.5px; margin:6px 2px; }
  .cmp-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .empty { color:var(--sub); text-align:center; padding:40px 0; }
  .mean { font-size:13px; color:var(--orange); font-weight:600; margin:4px 0; }
  table.rank { width:100%; border-collapse:collapse; font-size:13px; }
  table.rank td, table.rank th { padding:6px 8px; border-bottom:1px solid var(--line); text-align:left; }
  .crumb { font-size:12.5px; color:var(--sub); margin-bottom:8px; }
  .cfg-grid, .up-grid { display:grid; gap:8px; margin:8px 0; }
  .cfg-grid input, .up-grid input { border:1px solid var(--line); border-radius:8px; padding:9px 12px; font-size:13.5px; outline:none; }
  .cfg-grid input:focus, .up-grid input:focus { border-color:var(--accent); }
  .btn { background:var(--accent); color:#fff; border:0; border-radius:8px; padding:10px 0; font-size:14px; cursor:pointer; }
  .btn:disabled { opacity:.55; cursor:wait; }
  .answer { background:#fafbfd; border:1px solid var(--line); border-radius:10px; padding:14px 16px;
    margin-top:12px; font-size:13.5px; white-space:pre-wrap; line-height:1.8; }
  .evi { margin-top:10px; }
  .evi summary { cursor:pointer; color:var(--sub); font-size:12.5px; }
  .ok-box { border-left:3px solid var(--green); background:#f2fbf7; padding:10px 14px; margin-top:10px; border-radius:0 8px 8px 0; font-size:13px; }
  .err-box { border-left:3px solid #dc2626; background:#fdf3f3; padding:10px 14px; margin-top:10px; border-radius:0 8px 8px 0; font-size:13px; }
  .pill-btn { font-size:12px; color:var(--accent); cursor:pointer; background:none; border:none; padding:0; }
  .dimrow { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:12px 0; }
  .dimlbl { font-size:12px; color:var(--sub); margin-right:2px; }
  .dchip { font-size:12.5px; padding:4px 12px; border-radius:99px; border:1px solid var(--line); background:#fff; color:var(--sub); cursor:pointer; }
  .dchip:hover { border-color:var(--accent); color:var(--accent); }
  .dchip.on { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:600; }
  .dchip.ghost { border-style:dashed; }
  .vtoggle { margin-left:auto; display:inline-flex; border:1px solid var(--line); border-radius:99px; overflow:hidden; }
  .vt { font-size:12px; padding:4px 12px; cursor:pointer; color:var(--sub); }
  .vt.on { background:var(--accent-soft); color:var(--accent); font-weight:600; }
  .sbar { display:flex; align-items:center; gap:10px; margin:6px 0; font-size:12.5px; }
  .sbar .slbl { width:34%; text-align:right; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .sbar .slbl small { color:var(--sub); }
  .sbar .strk { display:flex; flex:1; height:18px; border-radius:5px; overflow:hidden; border:1px solid var(--line); }
  .bar .num small { color:var(--sub); }
  .xlegend { display:flex; flex-wrap:wrap; gap:8px 16px; margin:12px 0 6px; font-size:12px; color:var(--sub); }
  .xlg { display:flex; align-items:center; gap:5px; }
  .xlg i { width:11px; height:11px; border-radius:3px; display:inline-block; flex:none; }
  table.xtab { border-collapse:collapse; font-size:13px; margin-top:6px; min-width:100%; }
  table.xtab th, table.xtab td { padding:7px 12px; border:1px solid var(--line); text-align:left; white-space:nowrap; }
  table.xtab th { background:#f6f8fb; font-weight:600; color:var(--ink); position:sticky; top:0; }
  table.xtab th.xsort { cursor:pointer; user-select:none; }
  table.xtab th.xsort:hover { background:#eaf0fe; color:var(--accent); }
  table.xtab th.xsort.active { background:var(--accent-soft); color:var(--accent); }
  table.xtab td.ncol { font-weight:600; }
  table.xtab td.hcell { text-align:center; font-variant-numeric:tabular-nums; }
  table.xtab tr.xclick { cursor:pointer; }
  table.xtab tr.xclick:hover td { box-shadow:inset 0 0 0 999px rgba(37,99,235,.06); }
  table.xtab tr.small-n td:not(.hcell) { color:var(--sub); background:#fcfbf7; }
  .caret { display:inline-block; transition:transform .15s; margin-right:5px; color:var(--sub); font-size:11px; }
  .xrow.open .caret { transform:rotate(90deg); }
  .xexp td { padding:9px 12px !important; background:#fafbfd; }
  .xbar { display:flex; height:22px; border-radius:5px; overflow:hidden; border:1px solid var(--line); }
  .xseg { height:100%; min-width:2px; }
