:root{
  color-scheme:light;
  --bg:#f5f6f8; --panel:#ffffff; --ink:#1f2430; --muted:#6b7280;
  --line:#e5e7eb; --brand:#c0202a; --brand-soft:#fde8ea; --chip:#eef1f5;
  --chip-on:#c0202a; --chip-on-ink:#fff; --accent:#1a56db;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg); color:var(--ink); font-size:14px; line-height:1.5;
}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.topbar{background:linear-gradient(135deg,#c0202a,#8f1620);color:#fff;padding:18px 0;box-shadow:0 1px 0 rgba(0,0,0,.05)}
.topbar h1{margin:0;font-size:20px;font-weight:700;letter-spacing:.5px}
.topbar .sub{margin:4px 0 0;font-size:13px;opacity:.92}
main{padding:16px 0 60px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,24,40,.04)}

/* 搜索区 */
.search-row{display:flex;flex-wrap:wrap;gap:10px}
.search-row input[type=search],.search-row input[type=text]{
  flex:1 1 240px;min-width:200px;padding:9px 12px;border:1px solid var(--line);
  border-radius:8px;font-size:14px;background:#fbfbfc;color:var(--ink)
}
.search-row input:focus{outline:none;border-color:var(--brand);background:#fff}
.range{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;white-space:nowrap}
.range input.count-input{width:72px;padding:8px 8px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:#fbfbfc}
.range input.count-input:focus{outline:none;border-color:var(--brand);background:#fff}
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 14px;border-radius:8px;cursor:pointer;font-size:13px;white-space:nowrap}
.btn:hover{border-color:#c9ccd2}
.btn.ghost{background:#f3f4f6}
.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.count-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px;flex-wrap:wrap;gap:8px}
.count{font-size:14px;color:var(--muted)}
.count b{color:var(--brand);font-size:18px;margin:0 2px}
.sort{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.sort select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}

/* 布局：左筛选栏 + 右结果 */
.layout{display:grid;grid-template-columns:316px minmax(0,1fr);gap:14px;align-items:start}
.sidebar{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:14px;margin-bottom:4px}
.facet-toggle{font-size:12px;font-weight:400;color:var(--accent);cursor:pointer;display:none;user-select:none}
.main-col{min-width:0}

/* 维度筛选 */
.facet{border-top:1px solid var(--line);padding:11px 0}
.facet:first-child{border-top:none;padding-top:2px}
.facet-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.facet-title{font-weight:600;font-size:13px;min-width:96px;color:var(--ink)}
.facet-clear{font-size:12px;color:var(--accent);cursor:pointer;user-select:none}
.facet-clear:hover{text-decoration:underline}
.chips{display:flex;flex-wrap:wrap;gap:7px;max-height:none;overflow:hidden}
.chips.collapsed{max-height:36px}
.chip{
  display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;
  background:var(--chip);border:1px solid transparent;cursor:pointer;font-size:13px;color:var(--ink);user-select:none
}
.chip:hover{border-color:#cfd4db}
.chip.on{background:var(--chip-on);color:var(--chip-on-ink);border-color:var(--chip-on)}
.chip .n{font-size:11px;opacity:.7}
.chip.on .n{opacity:.9}
.facet-more{font-size:12px;color:var(--accent);cursor:pointer;margin-top:6px;display:inline-block}
.facet-more:hover{text-decoration:underline}

/* 结果表 */
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{
  position:sticky;top:0;background:#fafbfc;text-align:left;padding:10px 10px;
  border-bottom:2px solid var(--line);color:var(--muted);font-weight:600;white-space:nowrap
}
tbody td{padding:9px 10px;border-bottom:1px solid #f0f1f3;vertical-align:top}
tbody tr{cursor:pointer}
tbody tr:hover{background:#faf6f6}
td.dept{font-weight:600}
td .bureau{font-weight:400;color:var(--muted);font-size:12px;margin-top:2px}
td.num{text-align:right;font-weight:700;color:var(--brand);white-space:nowrap}
td.major{color:#374151;max-width:260px}
.majortxt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tag{display:inline-block;background:var(--brand-soft);color:#a0151f;border-radius:5px;padding:1px 7px;font-size:12px;margin:1px 0}

.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.pager button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 14px;cursor:pointer;font-size:13px}
.pager button:disabled{opacity:.4;cursor:default}
.pager .pg{font-size:13px;color:var(--muted)}

/* 弹层 */
.modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow:auto}
.modal[hidden]{display:none}
.modal-card{background:#fff;border-radius:14px;max-width:760px;width:100%;padding:22px 24px;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-close{position:absolute;right:14px;top:10px;border:none;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.modal-close:hover{color:var(--ink)}
.dlg h2{margin:0 0 4px;font-size:18px}
.dlg .meta{color:var(--muted);font-size:13px;margin-bottom:14px}
.dlg dl{display:grid;grid-template-columns:120px 1fr;gap:8px 14px;margin:0}
.dlg dt{color:var(--muted);font-size:13px}
.dlg dd{margin:0;font-size:13px;word-break:break-word}
.dlg .remark{margin-top:14px;padding:12px 14px;background:#fbf7f7;border:1px solid #f1dadb;border-radius:8px;font-size:13px;line-height:1.6}
.dlg .tels a{color:var(--accent);text-decoration:none}

.loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--muted);font-size:15px;z-index:100}
.loading[hidden]{display:none}

@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:static;max-height:none}
  .facet-toggle{display:inline}
  .sidebar .facets{display:none}          /* 窄屏默认收起，先让用户看到结果 */
  .sidebar.expanded .facets{display:block}
}
@media (max-width:640px){
  .facet-title{min-width:100%}
  .dlg dl{grid-template-columns:90px 1fr}
  td.major{max-width:150px}
  .topbar h1{font-size:18px}
}
