/* Agency detail page — adapted from design 14-page-agency.html */
.agency-root { background:var(--bg);color:var(--fg);min-height:100vh; }

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

.agency-crumb { max-width:1440px;margin:0 auto;padding:14px 32px 0;font-size:13px;color:var(--fg-faint); }
.agency-crumb a { color:var(--fg-dim); }
.agency-crumb a:hover { color:var(--fg); }
.agency-crumb b { color:var(--fg);font-weight:500; }
.agency-crumb .sep { margin:0 6px; }

/* Hero */
.agency-hero { max-width:1440px;margin:0 auto;padding:24px 32px 36px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;border-bottom:1px solid var(--line-faint);align-items:flex-start; }
.agency-title { display:flex;align-items:center;gap:20px;margin-bottom:16px; }
.agency-mark { width:72px;height:72px;border-radius:14px;background:var(--bg-elev);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 16px rgba(0,0,0,0.4);overflow:hidden; }
.agency-mark img { width:100%;height:100%;object-fit:cover; }
.agency-mark .placeholder { font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--fg-strong);letter-spacing:-0.04em; }
.agency-title h1 { font-family:var(--font-display);font-size:48px;font-weight:700;letter-spacing:-0.025em;margin:0;line-height:1.05;color:var(--fg); }
.agency-tags { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;align-items:center; }
.agency-htag { display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);padding:4px 10px;border:1px solid var(--line);border-radius:4px;letter-spacing:0.04em; }
.agency-htag.flag { color:var(--fg);border:none;padding:0;font-size:22px;line-height:1; }
.agency-htag.private { color:var(--success);border-color:rgba(16,185,129,0.3);background:rgba(16,185,129,0.06); }
.agency-htag.gov { color:#8da3f5;border-color:rgba(141,163,245,0.3);background:rgba(76,99,214,0.06); }
.agency-sub { font-size:15.5px;color:var(--fg-dim);line-height:1.7;max-width:640px;margin:0 0 24px; }
.agency-sub p { margin:0 0 10px; }
.agency-sub p:last-child { margin-bottom:0; }
.agency-sub b { color:var(--fg);font-weight:500; }
.agency-actions { display:flex;gap:10px;flex-wrap:wrap; }
.agency-btn { padding:10px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;font-family:var(--font-sans);display:inline-flex;align-items:center;gap:8px;text-decoration:none; }
.agency-btn.pri { background:var(--accent);color:var(--accent-fg); }
.agency-btn.pri:hover { background:var(--accent-hover); }
.agency-btn.sec { background:transparent;color:var(--fg-dim);border-color:var(--line-strong); }
.agency-btn.sec:hover { border-color:var(--line-strong);color:var(--fg); }

/* Scoreboard */
.agency-scoreboard { background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:18px; }
.sb-head { display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:12px; }
.sb-head h3 { font-family:var(--font-display);font-size:14px;font-weight:600;margin:0;letter-spacing:0.01em;color:var(--fg); }
.sb-head .meta { font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:0.06em; }
.sb-headline { display:grid;grid-template-columns:1fr 1fr;gap:20px; }
.sb-big .v { font-family:var(--font-display);font-size:56px;font-weight:700;color:var(--fg);letter-spacing:-0.04em;line-height:1;font-variant-numeric:tabular-nums; }
.sb-big .v.success { color:var(--success); }
.sb-big .v .u { font-size:22px;color:var(--fg-faint);font-weight:500;margin-left:4px;letter-spacing:0; }
.sb-big .lb { font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:0.1em;text-transform:uppercase;margin-top:8px; }
.sb-big .delta { font-family:var(--font-mono);font-size:11px;color:var(--success);margin-top:4px; }
.sb-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:14px; }
.sb-cell { padding:12px 14px;background:var(--bg-inset);border:1px solid var(--line-faint);border-radius:8px; }
.sb-cell .lb { font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:4px; }
.sb-cell .v { font-family:var(--font-mono);font-size:18px;font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums;letter-spacing:-0.01em; }
.sb-cell .v .u { font-size:11px;color:var(--fg-faint);font-weight:400;margin-left:2px; }
.sb-cell .v.orange { color:var(--accent); }
.sb-cell .sub { font-size:11px;color:var(--fg-dim);margin-top:2px; }

/* Sections */
.agency-main { max-width:1440px;margin:0 auto;padding:0 32px 64px; }
.agency-section { padding:40px 0;border-bottom:1px solid var(--line-faint); }
.agency-section:last-child { border-bottom:none; }
.agency-section-h { display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;gap:20px;flex-wrap:wrap; }
.agency-section-h .eb { font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px; }
.agency-section-h h2 { font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:-0.015em;margin:0;color:var(--fg); }
.agency-section-h .meta { font-family:var(--font-mono);font-size:12px;color:var(--fg-faint); }

.agency-overview p { font-size:15.5px;line-height:1.78;color:var(--fg);margin:0;max-width:760px;text-wrap:pretty; }
/* .ov-links 样式在 globals.css(共享)。 */

/* Fleet */
.fleet { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }
.rcard { background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:18px 20px;transition:all 180ms;display:block;color:inherit;text-decoration:none; }
.rcard:hover { border-color:var(--line-strong);transform:translateY(-1px); }
.rcard-head { display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px; }
.rcard-name { font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-0.01em;margin:0 0 3px;color:var(--fg); }
.rcard-op { font-size:12px;color:var(--fg-dim); }
.rcard-status { font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:0.08em;padding:3px 8px;border-radius:4px;white-space:nowrap; }
.st-active { background:rgba(16,185,129,0.14);color:var(--success); }
.st-retired { background:rgba(94,99,109,0.2);color:var(--fg-dim); }
.rcard-specs { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:12px;border-top:1px solid var(--line);margin-bottom:12px; }
.rcard-spec .lb { font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:2px; }
.rcard-spec .v { font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--fg);line-height:1.2; }
.rcard-spec .v .u { font-size:11px;color:var(--fg-faint);font-weight:400;margin-left:1px; }
.rcard-spec .v.green { color:var(--success); }
.rcard-foot { display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line);font-size:12px; }
.rcard-launches { color:var(--fg-dim); }
.rcard-launches b { color:var(--fg);font-weight:600; }
.rcard-success { display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px; }
.rcard-success.good { color:var(--success); }
.rcard-success.mid { color:var(--warn); }
.rcard-success.low { color:var(--fg-dim); }
.rcard-success .bar { width:48px;height:4px;background:var(--line);border-radius:2px;overflow:hidden; }
.rcard-success .bar i { display:block;height:100%; }
.rcard-success.good .bar i { background:var(--success); }
.rcard-success.mid .bar i { background:var(--warn); }
.rcard-success.low .bar i { background:var(--fg-faint); }
.rcard.retired { opacity:0.74; }

/* Upcoming */
.upcoming-grid { display:grid;grid-template-columns:1fr;gap:0;background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;overflow:hidden; }
.up-row { display:grid;grid-template-columns:90px 110px 1fr 150px 120px 90px;gap:18px;padding:16px 20px;align-items:center;border-bottom:1px solid var(--line-faint);text-decoration:none;color:inherit;transition:background 120ms; }
.up-row:last-child { border-bottom:none; }
.up-row:hover { background:rgba(255,106,26,0.04); }
.up-row.next { background:linear-gradient(90deg,rgba(255,106,26,0.08),transparent 60%);border-left:3px solid var(--accent);padding-left:17px; }
.up-day { font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:0.04em; }
.up-day .big { display:block;font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--fg);line-height:1;margin-bottom:2px;letter-spacing:-0.01em; }
.up-day .next-tag { display:block;color:var(--accent);font-weight:700;margin-top:4px;letter-spacing:0.08em; }
.up-time { font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--fg);letter-spacing:-0.01em; }
.up-time .tz { display:block;font-size:11px;color:var(--fg-faint);font-weight:500;letter-spacing:0.08em;margin-top:3px; }
.up-mission .name { font-size:15px;font-weight:600;color:var(--fg);margin-bottom:4px; }
.up-mission .meta { font-size:12px;color:var(--fg-dim);font-family:var(--font-mono);display:flex;gap:6px;align-items:center;flex-wrap:wrap; }
.up-mission .meta .sep { color:var(--fg); }
.up-rocket { font-family:var(--font-mono);font-size:12px;color:var(--fg-dim); }
.up-pad { font-family:var(--font-mono);font-size:11px;color:var(--fg-dim); }
.up-pad .site { display:block;font-size:11px;color:var(--fg-dim);margin-top:2px; }
.up-status { display:flex;justify-content:flex-end; }
.up-pill { font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:0.08em;padding:4px 10px;border-radius:4px;text-transform:uppercase; }
.up-pill.cd { background:var(--accent-soft-bg);color:var(--accent);border:1px solid var(--accent); }
.up-pill.sched { background:var(--line);color:var(--fg-dim); }
.up-pill.ok,
.up-pill.go,
.up-pill.success { background:rgba(16,185,129,0.14);color:var(--success); }
.up-pill.fail,
.up-pill.abort { background:rgba(225,29,72,0.14);color:#f87171; }
.up-pill.partial,
.up-pill.tbc,
.up-pill.hold { background:rgba(245,176,66,0.14);color:var(--warn); }
.up-pill.tbd { background:rgba(245,176,66,0.14);color:var(--warn); }
.up-pill.live { background:var(--danger);color:var(--accent-fg); }
.upcoming-empty { padding:30px 20px;text-align:center;color:var(--fg-faint);font-family:var(--font-mono);font-size:12px; }

/* History summary */
.hist-summary { display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:24px; }
.hs-cell { padding:16px 18px;background:var(--bg-elev);border:1px solid var(--line);border-radius:10px; }
.hs-cell .lb { font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:6px; }
.hs-cell .v { font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--fg);letter-spacing:-0.02em;line-height:1;font-variant-numeric:tabular-nums; }
.hs-cell .v.good { color:var(--success); }
.hs-cell .v.orange { color:var(--accent); }
.hs-cell .v.warn { color:var(--warn); }
.hs-cell .v .u { font-size:13px;color:var(--fg-faint);font-weight:500;margin-left:3px; }
.hs-cell .sub { font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);margin-top:6px; }

/* Year chart */
.year-chart-wrap { background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:22px 26px;margin-bottom:24px; }
.ycw-head { display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px; }
.ycw-head h4 { font-family:var(--font-display);font-size:15px;font-weight:600;margin:0;color:var(--fg); }
.ycw-legend { display:flex;gap:14px;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint); }
.ycw-legend .lg { display:flex;align-items:center;gap:5px; }
.ycw-legend .sw { width:11px;height:8px;border-radius:1.5px;display:inline-block; }
.ycw-legend .sw.ok { background:var(--success); }
.ycw-legend .sw.fail { background:var(--danger); }
.year-chart { display:grid;gap:5px;padding:0;align-items:end; }
.ybar-col { display:grid;grid-template-rows:18px 220px 20px;gap:6px;align-items:end;justify-items:center;min-width:0;position:relative; }
.ybar-col .ct { font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);font-weight:600;line-height:1;align-self:end; }
.ybar { width:100%;display:flex;flex-direction:column-reverse;justify-content:flex-start;border-radius:2px 2px 0 0;overflow:hidden;background:transparent;align-self:end;min-height:2px; }
.ybar i { display:block;width:100%; }
.ybar i.ok { background:linear-gradient(180deg,var(--success),var(--success-dark)); }
.ybar i.fail { background:var(--danger); }
.ybar-col:hover .ybar { filter:brightness(1.15); }
.ybar-col .yr { font-family:var(--font-mono);font-size:12px;color:var(--fg-faint);letter-spacing:0.04em;align-self:start; }
.ybar-col.zero .ct { color:var(--fg-muted); }
.ybar-col.zero .ybar { background:var(--bg-inset); }
.ybar-col.this .ct { color:var(--accent);font-weight:700; }
.ybar-col.this .yr { color:var(--accent);font-weight:700; }

/* 年柱图 tooltip */
.ybar-tip { position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--bg);border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;font-family:var(--font-sans);font-size:12px;color:var(--fg);white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,0.6);opacity:0;pointer-events:none;transition:opacity 120ms;z-index:10; }
.ybar-tip::after { content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--line-strong); }
.ybar-col:hover .ybar-tip { opacity:1; }
.ybar-tip .tip-yr { font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);margin-bottom:4px;letter-spacing:0.04em; }
.ybar-tip .tip-row { display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11.5px;color:var(--fg-dim);line-height:1.5; }
.ybar-tip .tip-row b { color:var(--fg);font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums; }
.ybar-tip .tip-row .ok { color:var(--success); }
.ybar-tip .tip-row .fail { color:var(--danger); }
.ybar-tip .tip-rate { margin-top:3px;padding-top:3px;border-top:1px dashed var(--line);color:var(--fg-faint); }
.ybar-tip .tip-empty { color:var(--fg-muted);font-style:italic; }

/* Mission table */
.mission-table { background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;overflow:hidden; }
.mission-table table { width:100%;border-collapse:collapse; }
.mission-table th { background:var(--bg-inset);text-align:left;padding:11px 18px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--fg-faint);font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap; }
.mission-table th.r { text-align:right; }
.mission-table td { padding:0;border-bottom:1px solid var(--line-faint);font-size:13px;color:var(--fg-dim);vertical-align:middle; }
.mission-table td .cell-link { display:block;padding:13px 18px;color:inherit;text-decoration:none; }
.mission-table td.r { text-align:right; }
.mission-table tr:last-child td { border-bottom:none; }
.mission-table tr.row-link:hover td { background:rgba(255,106,26,0.05);cursor:pointer; }
.mission-table tr.row-link:hover td.name { color:var(--accent); }
.mission-table td.name { color:var(--fg);font-weight:500; }
.mission-table td.mono { font-family:var(--font-mono);color:var(--fg);font-variant-numeric:tabular-nums; }
.table-foot { padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-family:var(--font-mono);font-size:11.5px;color:var(--fg-faint); }
.table-foot .tf-info b { color:var(--fg);font-weight:600; }

/* 历史发射 · 分页器 (按设计稿) */
.agency-pager{ display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11.5px; }
.agency-pager .pgo { display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 7px;border-radius:5px;background:transparent;border:1px solid var(--line);color:var(--fg-dim);cursor:pointer;letter-spacing:0.02em;font-variant-numeric:tabular-nums;transition:all 120ms;user-select:none;text-decoration:none; }
.agency-pager .pgo:hover:not(.disabled):not(.on) { border-color:var(--accent);color:var(--accent);background:var(--accent-tint-12); }
.agency-pager .pgo.on { background:var(--accent);border-color:var(--accent);color:var(--fg-strong);font-weight:700;cursor:default; }
.agency-pager .pgo.disabled { opacity:0.35;cursor:not-allowed;pointer-events:none; }
.agency-pager .pgo.edge { color:var(--fg-faint);font-size:13px;line-height:1; }
.agency-pager .pg-jump { display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding-left:12px;border-left:1px solid var(--line);color:var(--fg-faint); }
.agency-pager .pg-jump input { width:38px;height:24px;background:var(--bg-inset);border:1px solid var(--line);color:var(--fg);font-family:var(--font-mono);font-size:11.5px;text-align:center;border-radius:4px;outline:none;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield; }
.agency-pager .pg-jump input::-webkit-outer-spin-button,
.agency-pager .pg-jump input::-webkit-inner-spin-button { -webkit-appearance:none;margin:0; }
.agency-pager .pg-jump input:focus { border-color:var(--accent); }
.agency-pager .pg-jump button { background:transparent;border:1px solid var(--line);color:var(--fg-dim);height:24px;padding:0 8px;border-radius:4px;cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:0.05em;transition:all 120ms; }
.agency-pager .pg-jump button:hover { border-color:var(--accent);color:var(--accent); }
.agency-pager .pg-jump button:disabled { opacity:0.4;cursor:not-allowed; }
.agency-pager .pg-jump input:disabled { opacity:0.4;cursor:not-allowed; }
.agency-pager.is-loading .pgo:not(.on):not(.disabled) { opacity:0.5;pointer-events:none; }
.agency-pager .pg-loading { display:inline-flex;align-items:center;gap:6px;margin-right:10px;padding-right:12px;border-right:1px solid var(--line);color:var(--accent);font-size:11px;letter-spacing:0.04em; }
.agency-pager .pg-loading .spinner { width:11px;height:11px; }

/* Pads */
.pad-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:14px; }
.pad-card { background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:18px 20px; }
.pad-info { flex:1;min-width:0; }
.pad-info .pname { font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--fg);margin:0 0 3px; }
.pad-info .ploc { font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:0.04em;margin-bottom:10px; }
.pad-info .pstats { display:grid;grid-template-columns:repeat(3,1fr);gap:10px; }
.pad-info .pst .lb { font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:2px; }
.pad-info .pst .v { font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--fg);font-variant-numeric:tabular-nums; }
.pad-info .pst .v.green { color:var(--success); }
.pad-info .pst .v.muted { color:var(--fg-faint); }
.pad-info .ptag { display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:0.08em;padding:2px 7px;border-radius:3px;background:rgba(76,99,214,0.16);color:#8da3f5;text-transform:uppercase;margin-bottom:4px; }
.pad-info .ptag.inactive { background:rgba(94,99,109,0.2);color:var(--fg-dim); }

/* Social media chips */
.social-chips { display:flex;flex-wrap:wrap;gap:8px;margin-top:14px; }
.social-chip { display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);font-size:12px;color:#c5c9d0;text-decoration:none;font-family:var(--font-sans); }
.social-chip:hover { border-color:var(--accent);color:var(--accent); }

/* 横向发射节奏轴（CADENCE · 近期发射节奏） */
.acad-legend { display:inline-flex;gap:12px;align-items:center; }
.acad-lg { display:inline-flex;align-items:center;gap:5px; }
.acad-lg .dot { width:9px;height:9px;border-radius:50%;box-sizing:border-box; }
.acad-lg .dot.ok { background:var(--success); }
.acad-lg .dot.fail { background:var(--danger); }
.acad-lg .dot.future { background:var(--bg-elev);border:2px solid var(--accent); }
.acad-track { position:relative;height:56px;margin:20px 4px 8px; }
.acad-line { position:absolute;left:0;right:0;top:50%;height:2px;background:var(--line-strong);border-radius:2px;transform:translateY(-50%); }
.acad-now { position:absolute;top:16px;bottom:8px;width:2px;background:var(--accent);transform:translateX(-50%);z-index:1; }
.acad-now-lab { position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--accent);white-space:nowrap;letter-spacing:0.04em; }
.acad-dot { position:absolute;top:50%;width:13px;height:13px;border-radius:50%;transform:translate(-50%,-50%);z-index:2;box-sizing:border-box;border:2px solid var(--line-strong);background:var(--line-strong);transition:transform 120ms; }
.acad-dot:hover { transform:translate(-50%,-50%) scale(1.5);z-index:3; }
.acad-dot.past.success, .acad-dot.past.go { background:var(--success);border-color:var(--success); }
.acad-dot.past.fail, .acad-dot.past.abort { background:var(--danger);border-color:var(--danger); }
.acad-dot.past.partial, .acad-dot.past.tbc, .acad-dot.past.hold { background:var(--warn);border-color:var(--warn); }
.acad-dot.future { background:var(--bg-elev); }
.acad-dot.future.go, .acad-dot.future.success { border-color:var(--success); }
.acad-dot.future.tbc, .acad-dot.future.hold, .acad-dot.future.partial { border-color:var(--warn); }
.acad-dot.future.tbd, .acad-dot.future.sched { border-color:var(--accent); }
.acad-axis { display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:0.04em; }

@keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:0.3;} }

@media (max-width: 1100px) {
  .agency-hero { grid-template-columns:1fr; }
  .fleet { grid-template-columns:repeat(2,1fr); }
  .pad-grid { grid-template-columns:1fr; }
  .up-row { grid-template-columns:80px 90px 1fr 100px;gap:12px; }
  .up-row .up-pad, .up-row .up-status { display:none; }
}
@media (max-width: 700px) {
  .fleet { grid-template-columns:1fr; }
  .agency-title h1 { font-size:36px; }
}

/* 浅色页面主题：与首页 / 信息流 / 发射日历保持一致 */
.agency-root { background:var(--bg);color:var(--fg); }
.agency-root .topbar { background:var(--bg-elev);border-bottom-color:var(--line); }
.agency-root .agency-crumb a:hover { color:var(--accent); }
.agency-root .agency-crumb b,
.agency-root .agency-title h1,
.agency-root .agency-htag.flag,
.agency-root .agency-sub b,
.agency-root .sb-head h3,
.agency-root .sb-big .v,
.agency-root .sb-cell .v,
.agency-root .agency-section-h h2,
.agency-root .rcard-name,
.agency-root .rcard-spec .v,
.agency-root .rcard-launches b,
.agency-root .up-day .big,
.agency-root .up-time,
.agency-root .up-mission .name,
.agency-root .hs-cell .v,
.agency-root .ycw-head h4,
.agency-root .mission-table td.name,
.agency-root .mission-table td.mono,
.agency-root .table-foot .tf-info b,
.agency-root .pad-info .pname,
.agency-root .pad-info .pst .v { color:var(--fg); }
.agency-root .agency-sub,
.agency-root .agency-htag,
.agency-root .agency-btn.sec,
.agency-root .sb-cell .sub,
.agency-root .rcard-op,
.agency-root .rcard-launches,
.agency-root .up-mission .meta,
.agency-root .up-rocket,
.agency-root .up-pad,
.agency-root .social-chip { color:var(--fg-muted); }
.agency-root .agency-hero,
.agency-root .agency-section {
  border-bottom-color:var(--line);
}
.agency-root .agency-htag,
.agency-root .agency-btn.sec,
.agency-root .agency-scoreboard,
.agency-root .sb-head,
.agency-root .sb-cell,
.agency-root .rcard,
.agency-root .rcard-specs,
.agency-root .rcard-foot,
.agency-root .upcoming-grid,
.agency-root .up-row,
.agency-root .hist-summary .hs-cell,
.agency-root .year-chart-wrap,
.agency-root .mission-table,
.agency-root .mission-table th,
.agency-root .mission-table td,
.agency-root .table-foot,
.agency-root .agency-pager .pgo,
.agency-root .agency-pager .pg-jump,
.agency-root .agency-pager .pg-jump input,
.agency-root .agency-pager .pg-jump button,
.agency-root .agency-pager .pg-loading,
.agency-root .pad-card,
.agency-root .social-chip {
  border-color:var(--line);
}
.agency-root .agency-scoreboard,
.agency-root .sb-cell,
.agency-root .rcard,
.agency-root .upcoming-grid,
.agency-root .hs-cell,
.agency-root .year-chart-wrap,
.agency-root .mission-table,
.agency-root .pad-card {
  background:var(--bg-elev);
}
.agency-root .sb-cell,
.agency-root .mission-table th {
  background:var(--bg);
}
.agency-root .agency-mark { box-shadow:0 4px 16px rgba(14,13,11,0.08); }
.agency-root .agency-btn.sec:hover,
.agency-root .rcard:hover {
  border-color:var(--line-strong);
  color:var(--fg);
  box-shadow:0 6px 20px rgba(11,12,14,0.06);
}
.agency-root .up-row { border-bottom-color:var(--line-faint); }
.agency-root .up-row.next { background:linear-gradient(90deg,rgba(255,106,26,0.1),transparent 60%); }
.agency-root .up-mission .meta .sep { color:var(--fg-muted); }
.agency-root .up-pill.cd {
  background:var(--accent-soft-bg);
  color:var(--accent);
  border:1px solid var(--accent);
}
.agency-root .up-pill.sched {
  background:var(--bg-inset);
  color:var(--fg-muted);
}
.agency-root .up-pill.ok,
.agency-root .up-pill.go,
.agency-root .up-pill.success {
  background:var(--success-soft-bg);
  color:var(--success-dark);
}
.agency-root .up-pill.fail,
.agency-root .up-pill.abort {
  background:var(--danger-soft-bg);
  color:var(--danger-dark);
}
.agency-root .up-pill.partial,
.agency-root .up-pill.tbc,
.agency-root .up-pill.hold,
.agency-root .up-pill.tbd {
  background:var(--warn-soft-bg);
  color:var(--warn-dark);
}
.agency-root .hs-cell,
.agency-root .mission-table td,
.agency-root .lb-row,
.agency-root .agency-pager .pg-jump,
.agency-root .agency-pager .pg-loading,
.agency-root .pad-card {
  border-color:var(--line-faint);
}
.agency-root .ybar-col.zero .ybar { background:var(--bg-inset); }
.agency-root .mission-table tr.row-link:hover td { background:var(--accent-soft-bg); }
.agency-root .agency-pager .pgo {
  background:var(--bg-elev);
  color:var(--fg);
}
.agency-root .agency-pager .pgo:hover:not(.disabled):not(.on) {
  background:var(--accent-soft-bg);
  border-color:var(--accent);
  color:var(--accent);
}
.agency-root .agency-pager .pgo.on {
  background:var(--accent-soft-bg);
  border-color:var(--accent);
  color:var(--accent);
}
.agency-root .agency-pager .pg-jump input {
  background:var(--bg-elev);
  color:var(--fg);
}
.agency-root .agency-pager .pg-jump button {
  background:var(--bg-elev);
  color:var(--fg);
}
.agency-root .social-chip {
  background:var(--bg-elev);
  color:var(--fg-muted);
  transition:border-color 120ms,color 120ms,background 120ms;
}
.agency-root .social-chip:hover {
  border-color:var(--accent);
  color:var(--accent);
  background:var(--accent-soft-bg);
}

/* 移动端分页:只留「‹ 上页 / 下页 ›」两个按钮,隐首末页(« »)/数字/当前页/省略号/跳页/加载提示 */
@media (max-width:640px) {
  .agency-root .agency-pager { justify-content:center;gap:10px;flex-wrap:wrap; }
  .agency-root .agency-pager .pgo.edge,
  .agency-root .agency-pager .pgo:not(.edge):not([aria-label]),
  .agency-root .agency-pager .pg-jump,
  .agency-root .agency-pager .pg-loading { display:none; }
  .agency-root .agency-pager .pgo { min-width:44px;height:38px; }
}
