/* Agencies list page — adapted from design 15-page-agencies.html */
.agencies-root { background:var(--bg);color:var(--fg);min-height:100vh; }

.agencies-root .topbar { position:relative;background:var(--bg-elev);border-bottom-color:var(--line);backdrop-filter:none;z-index:1; }
.agencies-root .brand .en { color:var(--fg); }
.agencies-root .brand .li { color:var(--fg-faint); }
.agencies-root .brand svg path { stroke:var(--fg-strong); }
.agencies-root .nav a { color:var(--fg-muted); }
.agencies-root .nav a:hover { background:var(--accent-tint-12);color:var(--fg-muted); }
.agencies-root .nav a.active { background:var(--accent-soft-bg);color:var(--accent); }
.agencies-root .clk .tm { color:var(--fg); }
.agencies-root .clk .tm .sec,
.agencies-root .clk .lab { color:var(--fg-dim); }
.agencies-root .clk + .clk { border-left-color:var(--line-strong); }

/* 主布局 */
.agp-main { max-width:1440px;margin:0 auto;padding:8px 32px 60px;display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:start; }

/* 左侧分面 */
.facets { position:sticky;top:73px;display:flex;flex-direction:column;gap:18px;max-height:calc(100vh - 89px);overflow-y:auto;padding-right:4px; }
.facets::-webkit-scrollbar { width:6px; }
.facets::-webkit-scrollbar-thumb { background:var(--line);border-radius:3px; }
.facet-h { font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:10px; }
.facet-list { display:flex;flex-direction:column;gap:2px; }
.facet-opt { display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:5px;font-size:14px;color:var(--fg-dim);gap:8px;text-decoration:none;cursor:pointer;transition:all 120ms; }
.facet-opt:hover { background:var(--bg-elev);color:var(--fg); }
.facet-opt.active { background:var(--bg-elev);color:var(--accent); }
.facet-opt .count { font-family:var(--font-mono);font-size:12px;color:var(--fg-dim); }
.facet-opt.active .count { color:var(--accent); }
.facet-opt > span:first-child { display:flex;align-items:center;gap:8px;min-width:0; }
.facet-opt .flag { display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:15px;line-height:1; }
.country-more { display:flex;flex-direction:column;gap:2px; }
.country-more > summary { list-style:none; }
.country-more > summary::-webkit-details-marker { display:none; }
.facet-more-toggle { color:var(--fg-dim);font-size:13px; }
.facet-more-toggle::after { content:'展开';font-family:var(--font-mono);font-size:12px;color:var(--fg-dim); }
.country-more[open] > .facet-more-toggle::after { content:'收起'; }
.country-more[open] > .facet-more-toggle { order:2;margin-top:2px;position:sticky;bottom:0;background:var(--bg);z-index:2;box-shadow:0 -6px 10px -8px rgba(11,12,14,0.18); }
.country-more-list { display:flex;flex-direction:column;gap:2px;margin-top:2px; }
.country-more[open] > .country-more-list { order:1;margin-top:0; }

/* 工具栏 */
.toolbar { display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:0 2px;gap:14px;flex-wrap:wrap; }
.result-count { font-size:15px;color:var(--fg-dim); }
.result-count b { color:var(--fg);font-weight:600; }
.toolbar-right { display:flex;gap:10px;align-items:center;flex-wrap:wrap; }
.sort-select { background:var(--bg-elev);border:1px solid var(--line);color:var(--fg);padding:8px 12px;border-radius:7px;font-size:14px;font-family:var(--font-sans);cursor:pointer; }
.sort-select:focus { outline:none;border-color:var(--accent); }

.active-chips { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px; }
.chip-active { background:rgba(255,106,26,0.12);border:1px solid rgba(255,106,26,0.35);color:var(--accent);font-size:13px;padding:5px 10px;border-radius:4px;display:inline-flex;align-items:center;gap:6px;text-decoration:none; }
.chip-active:hover { background:rgba(255,106,26,0.18); }
.chip-active .x { font-size:14px;line-height:1; }

/* 顶部精选 */
.featured { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px; }
.feat-card { background:linear-gradient(180deg,#151619 0%,#0e1013 100%);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:all 180ms;position:relative;overflow:hidden;color:inherit;text-decoration:none; }
.feat-card:hover { border-color:var(--accent);transform:translateY(-1px); }
.feat-card .ftop { display:flex;align-items:center;gap:12px; }
.feat-card .fmark { width:42px;height:42px;border-radius:8px;background:var(--bg-elev);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden; }
.feat-card .fmark img { width:100%;height:100%;object-fit:cover; }
.feat-card .fmark.dark { background:var(--bg-inset);border:1px solid var(--line); }
.feat-card .fmark .placeholder { font-family:var(--font-display);font-size:14px;font-weight:800;color:var(--fg-strong);letter-spacing:-0.04em; }
.feat-card .fmark.dark .placeholder { color:var(--accent); }
.feat-card .fname { font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--fg);line-height:1.15;margin-bottom:2px; }
.feat-card .fmeta { font-family:var(--font-mono);font-size:12px;color:var(--fg-faint);letter-spacing:0.02em; }
.feat-card .fdesc { font-size:13px;color:var(--fg-dim);line-height:1.55;margin:2px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.feat-card .fmini { display:flex;gap:14px;padding-top:10px;border-top:1px solid var(--line);margin-top:auto; }
.feat-card .fmini .v { font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--fg);line-height:1; }
.feat-card .fmini .v.orange { color:var(--accent); }
.feat-card .fmini .v.green { color:var(--success); }
.feat-card .fmini .l { font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--fg-faint);margin-top:3px; }

/* 机构卡片网格 */
.agency-grid { display:grid;grid-template-columns:1fr;gap:14px; }
.acard { background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:18px 20px;cursor:pointer;transition:all 180ms;position:relative;display:flex;flex-direction:column;gap:0;color:inherit;text-decoration:none; }
.acard:hover { border-color:var(--line-strong);transform:translateY(-1px); }
.acard.retired { opacity:0.72; }

.acard-head { display:flex;align-items:flex-start;gap:14px;margin-bottom:14px; }
.acard-mark { width:48px;height:48px;border-radius:10px;background:var(--bg-elev);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.4);overflow:hidden; }
.acard-mark img { width:100%;height:100%;object-fit:cover; }
.acard-mark.dark { background:var(--bg-inset);border:1px solid var(--line); }
.acard-mark .placeholder { font-family:var(--font-display);font-size:14px;font-weight:800;color:var(--fg-strong);letter-spacing:-0.04em; }
.acard-mark.dark .placeholder { color:var(--accent); }
.acard-title { flex:1;min-width:0; }
.acard-name { font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-0.01em;margin:0 0 2px;color:var(--fg);line-height:1.2; }
.acard-name .alt { color:var(--fg-faint);font-weight:400;font-size:14px;margin-left:6px; }
.acard-name-en { font-family:var(--font-mono);font-size:12px;color:var(--fg-faint);line-height:1.2;margin:0 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.acard-op { font-family:var(--font-mono);font-size:13px;color:var(--fg-dim);display:flex;align-items:center;gap:6px;letter-spacing:0.01em;flex-wrap:wrap; }
.acard-op .flag { font-size:13px;line-height:1; }
.acard-status { font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0.05em;padding:4px 8px;border-radius:4px;white-space:nowrap; }
.acard-status.st-active { background:rgba(16,185,129,0.14);color:var(--success); }
.acard-status.st-dev { background:rgba(245,176,66,0.14);color:var(--warn); }
.acard-status.st-retired { background:rgba(94,99,109,0.2);color:var(--fg-dim); }

/* tags */
.acard-tags { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px; }
.atag { font-family:var(--font-mono);font-size:12px;letter-spacing:0.02em;color:var(--fg-dim);padding:4px 8px;border:1px solid var(--line);border-radius:4px; }
.atag.gov { color:#8da3f5;border-color:rgba(141,163,245,0.3);background:rgba(76,99,214,0.08); }
.atag.private { color:var(--success);border-color:rgba(16,185,129,0.3);background:rgba(16,185,129,0.06); }
.atag.alliance { color:var(--warn);border-color:rgba(245,176,66,0.3);background:rgba(245,176,66,0.06); }
.atag.startup { color:var(--accent);border-color:rgba(255,106,26,0.3);background:rgba(255,106,26,0.06); }

/* 数据条 */
.acard-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:12px 0;border-top:1px solid var(--line);margin-bottom:0; }
.acard-stat { padding:0 12px;border-right:1px dashed var(--line-faint); }
.acard-stat:first-child { padding-left:0; }
.acard-stat:last-child { border-right:none; }
.acard-stat .lb { font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:4px; }
.acard-stat .v { font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-0.01em; }
.acard-stat .v .u { font-size:12px;color:var(--fg-faint);font-weight:400;margin-left:1px; }
.acard-stat .v.green { color:var(--success); }
.acard-stat .v.orange { color:var(--accent); }
.acard-stat .v.muted { color:var(--fg-muted); }
.acard-stat .sub { font-family:var(--font-mono);font-size:12px;color:var(--fg-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.next-launch-stat .sub.time { color:var(--fg-faint); }
.next-launch-stat .sub.rocket { color:var(--fg);font-weight:600; }

/* footer */
.acard-foot { display:flex;align-items:center;justify-content:space-between;padding-top:12px;margin-top:auto;border-top:1px solid var(--line);font-size:13px;gap:10px; }
.acard-foot .next { color:var(--fg-dim);font-family:var(--font-mono);font-size:13px;display:flex;align-items:center;gap:6px;min-width:0;flex:1;overflow:hidden; }
.acard-foot .next b { color:var(--accent);font-weight:700; }
.acard-foot .next .name { color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.acard-foot .country { font-family:var(--font-mono);font-size:13px;color:var(--fg-faint);display:flex;align-items:center;gap:5px;flex-shrink:0; }

/* 分页 */
.pager-wrap { padding:24px 0 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-family:var(--font-mono);font-size:13px;color:var(--fg-faint); }
.pager { display:inline-flex;align-items:center;gap:4px; }
.pager .pgo { display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 8px;border-radius:5px;background:transparent;border:1px solid var(--line);color:var(--fg-dim);cursor:pointer;font-variant-numeric:tabular-nums;transition:all 120ms;font-family:var(--font-mono);font-size:13px;text-decoration:none; }
.pager .pgo:hover:not(.disabled):not(.on) { border-color:var(--accent);color:var(--accent);background:var(--accent-tint-12); }
.pager .pgo.on { background:var(--accent);border-color:var(--accent);color:var(--fg-strong);font-weight:700;cursor:default; }
.pager .pgo.disabled { opacity:0.35;cursor:not-allowed;pointer-events:none; }
.pager .ellipsis { color:var(--fg-muted);padding:0 4px; }

.empty-state { background:var(--bg-elev);border:1px dashed var(--line);border-radius:12px;padding:60px 24px;text-align:center;color:var(--fg-faint);font-size:15px; }
.empty-state b { color:var(--fg-dim); }

@media (max-width: 1240px) {
  .agp-main { grid-template-columns: 220px minmax(0,1fr); }
}
@media (max-width: 980px) {
  .featured { grid-template-columns:1fr; }
}
@media (max-width: 820px) {
  .agp-main { grid-template-columns: 1fr; }
  .facets { position:static;max-height:none; }
}

/* 浅色页面主题：与首页 / 信息流 / 发射日历保持一致 */
.agencies-root { background:var(--bg);color:var(--fg); }
.agencies-root .topbar { background:var(--bg-elev);border-bottom-color:var(--line); }
.agencies-root .result-count b,
.agencies-root .feat-card .fname,
.agencies-root .feat-card .fmini .v,
.agencies-root .acard-name,
.agencies-root .acard-stat .v,
.agencies-root .acard-foot .next .name,
.agencies-root .empty-state b { color:var(--fg); }
.agencies-root .result-count,
.agencies-root .facet-opt,
.agencies-root .feat-card .fdesc,
.agencies-root .acard-op,
.agencies-root .atag,
.agencies-root .acard-foot .next { color:var(--fg-muted); }
.agencies-root .facets::-webkit-scrollbar-thumb { background:var(--line-strong); }
.agencies-root .facet-opt:hover,
.agencies-root .facet-opt.active { background:var(--accent-soft-bg);color:var(--accent); }
.agencies-root .facet-opt .count { color:var(--fg-dim); }
.agencies-root .facet-more-toggle::after { color:var(--fg-dim); }
.agencies-root .sort-select {
  background:var(--bg-elev);
  border-color:var(--line);
  color:var(--fg);
}
.agencies-root .sort-select:focus { border-color:var(--accent); }
.agencies-root .feat-card,
.agencies-root .acard,
.agencies-root .empty-state {
  background:var(--bg-elev);
  border-color:var(--line);
}
.agencies-root .feat-card { background:var(--bg-elev); }
.agencies-root .feat-card:hover,
.agencies-root .acard:hover { border-color:var(--line-strong);box-shadow:0 6px 20px rgba(11,12,14,0.06); }
.agencies-root .feat-card .fmark.dark,
.agencies-root .acard-mark.dark {
  background:var(--bg);
  border-color:var(--line);
}
.agencies-root .feat-card .fmini,
.agencies-root .acard-stats,
.agencies-root .acard-foot {
  border-color:var(--line-faint);
}
.agencies-root .acard-stat { border-right-color:var(--line-faint); }
.agencies-root .acard-mark { box-shadow:0 2px 8px rgba(14,13,11,0.08); }
.agencies-root .atag,
.agencies-root .pager .pgo {
  border-color:var(--line);
}
.agencies-root .pager { margin:0;padding:0;border-top:none;justify-content:flex-start;flex-wrap:nowrap; }
.agencies-root .pager .pgo {
  background:var(--bg-elev);
  color:var(--fg);
}
.agencies-root .pager .pgo:hover:not(.disabled):not(.on) {
  background:var(--accent-soft-bg);
  border-color:var(--accent);
  color:var(--accent);
}
.agencies-root .pager .pgo.on {
  background:var(--accent-soft-bg);
  border-color:var(--accent);
  color:var(--accent);
}

/* 移动端分页:只留 ‹ 上一页 / 下一页 › 箭头,隐数字/省略号/「显示 X–Y」/「每页 N 条」 */
@media (max-width:640px) {
  .agencies-root .pager-wrap > div:not(.pager) { display:none; }
  .agencies-root .pager { flex:1;display:flex;justify-content:space-between; }
  .agencies-root .pager .pgo:not([aria-label]):not(.disabled), .agencies-root .pager .ellipsis { display:none; }
  .agencies-root .pager .pgo { min-width:44px;height:40px; }
}
