/* Atlas Next 的低亮度阅读主题。置于 atlas-theme.css 之后；不改变布局或数据。 */
:root {
  --bg:#EEF1F5; --surface:#FAFBFD; --surface-raised:#E4EAF2; --surface-tint:#DEE7F4;
  --ink:#243348; --muted:#58677B; --line:#CDD6E1; --action:#385DCE; --blue:#3659BF;
  --white:var(--surface); --on-color:var(--ink); --on-action:#FFFFFF;
  --hero-bg:#DCE7F8; --hero-ink:#243348; --hero-muted:#4C6281;
  --track-asset-bg:#D9E5FA; --track-asset-ink:#284B84;
  --track-spatial-bg:#D5EAE2; --track-spatial-ink:#265C4D;
  --track-interactive-bg:#ECDFF0; --track-interactive-ink:#754B7E;
  --track-physical-bg:#EEE4C9; --track-physical-ink:#735B2D;
  --status-confirmed-bg:#DFEEE7; --status-confirmed-ink:#2E6654;
  --status-partial-bg:#F2EAD7; --status-partial-ink:#755C25;
  --status-unknown-bg:#E6EBF1; --status-unknown-ink:#59677A;
  --flow-in:#326E59; --flow-in-bg:#DDEDE5;
  --flow-out:#9C5144; --flow-out-bg:#F1E0DA;
  --chart-grid:#AFBECE; --chart-axis:#5D708B; --panel-shadow:0 5px 18px #2433480A;
}
:root[data-theme="dark"] {
  --bg:#141B24; --surface:#1D2733; --surface-raised:#243140; --surface-tint:#2B3A4E;
  --ink:#E6EBF2; --muted:#A3B1C3; --line:#3B495C; --action:#5570C4; --blue:#A4B9F3;
  --white:var(--surface); --on-color:var(--ink);
  --hero-bg:#1C2A42; --hero-ink:#E6EBF2; --hero-muted:#B2C0D5;
  --track-asset-bg:#283B59; --track-asset-ink:#BAD0F6;
  --track-spatial-bg:#263F3A; --track-spatial-ink:#ADD2C2;
  --track-interactive-bg:#403248; --track-interactive-ink:#D9C0E2;
  --track-physical-bg:#403C2D; --track-physical-ink:#DACE9E;
  --status-confirmed-bg:#2B4038; --status-confirmed-ink:#B8DACB;
  --status-partial-bg:#443D2D; --status-partial-ink:#E0CDA1;
  --status-unknown-bg:#2B3645; --status-unknown-ink:#B8C3D2;
  --flow-in:#A5CDBD; --flow-in-bg:#293D37;
  --flow-out:#D9B0A4; --flow-out-bg:#443532;
  --chart-grid:#4D5F75; --chart-axis:#99ADC6; --panel-shadow:0 5px 18px #00000016;
}

/* 页面底色与阅读层级；顶栏布局和控件由 atlas-chrome.css 维护。 */
body { background:var(--bg); color:var(--ink); }
:root :is(.nx-rail,.nx-toolbar) { background:var(--surface); border-color:var(--line); }
:root .nx-rail nav a:hover { background:var(--surface-raised); }
:root .nx-rail nav a[aria-current], :root .nx-rail nav a[aria-current]:hover { background:var(--action); color:var(--on-action); }
:root .nx-rail-mark { color:var(--muted); opacity:.7; }
:root :is(.nx-featured-item,.nx-company-roster,.nx-company-detail,.nx-compare,.nx-about-intro,.nx-contact-card,.nx-company-flow) { background:var(--surface); border-color:var(--line); }
:root :is(.nx-connections,.nx-company-team,.nx-contact,.nx-method) { background:var(--surface-raised); border-color:var(--line); }
:root :is(.nx-roster-item:hover,.nx-roster-item[aria-pressed=true]) { background:var(--surface-tint); }
:root .nx-company-roster>label, :root .nx-company-roster input { background:var(--surface-raised); color:var(--ink); border-color:var(--line); }
:root .nx-button { background:var(--action); color:var(--on-action); }
:root .nx-button:hover { background:color-mix(in srgb,var(--action) 88%,#172A48); }
:root .nx-button-white { background:var(--surface); color:var(--blue); }
:root .nx-button-white:hover { background:var(--surface-raised); }
:root :is(.nx-author-roles span,.nx-section-icon,.nx-product-glyph) { background:var(--surface-tint); color:var(--blue); }
:root .nx-author-mark { background:var(--hero-bg); color:var(--blue); }
:root .nx-author-mark small { color:var(--track-spatial-ink); }
:root .nx-contact>div>div { border-color:var(--line); }
:root .nx-key-grid article { box-shadow:var(--panel-shadow); }
:root .nx-compare-bar { background:var(--surface-tint); color:var(--ink); border:1px solid var(--line); box-shadow:var(--panel-shadow); }
:root .nx-compare-bar button { color:var(--ink); border-color:var(--line); }
:root .nx-compare-bar>span b { color:var(--muted); }
:root .nx-compare-bar>button { background:var(--action); color:var(--on-action); }

/* 首页：让官网案例承担视觉焦点，文本与工具保持克制。 */
:root .nx-hero { background:var(--hero-bg); color:var(--hero-ink); border:1px solid var(--line); }
:root .nx-hero-label { color:var(--hero-muted); border-color:color-mix(in srgb,var(--hero-muted) 35%,transparent); }
:root :is(.nx-hero-copy>p,.nx-hero-index,.nx-scene-top,.nx-scene-caption) { color:var(--hero-muted); }
:root :is(.nx-hero-index b,.nx-hero-link,.nx-scene-caption a) { color:var(--hero-ink); }
:root .nx-hero .nx-button-white { background:var(--action); color:var(--on-action); }
:root .nx-scene { background-image:linear-gradient(color-mix(in srgb,var(--chart-axis) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--chart-axis) 9%,transparent) 1px,transparent 1px); }
:root .nx-scene:after { border-color:color-mix(in srgb,var(--chart-axis) 18%,transparent); }
:root .nx-scene-stack { z-index:1; box-shadow:10px 16px 25px #182A421C; }
:root .nx-scene-layer { pointer-events:none; }
:root :is(.nx-scene-layer,.nx-scene-stack>img) { border-color:var(--line); }
:root .nx-scene-stack .layer-back { background:var(--surface-tint); }
:root .nx-scene-stack figcaption { background:var(--surface); color:var(--ink); }
:root .nx-scene-top>span:first-child { color:var(--ink); border:1px solid color-mix(in srgb,var(--ink) 12%,transparent); }
:root .nx-scene-tabs button { background:var(--surface); color:var(--muted); border-color:var(--line); }
:root .nx-scene-tabs button[aria-pressed=true] { background:var(--tab-color); color:var(--ink); border-color:color-mix(in srgb,var(--ink) 35%,transparent); }
:root .nx-display-switch { position:relative; z-index:2; flex-shrink:0; background:var(--surface-raised); border-color:var(--line); }
/* 倾斜装饰层会伸出案例边界；为其预留空间，避免遮挡模式切换。 */
:root .nx-display-switch:has(+ .nx-scene-stack) { margin-bottom:64px; }
@media(max-width:620px) {
  :root .nx-display-switch:has(+ .nx-scene-stack) { margin-bottom:44px; }
}
:root .nx-display-switch button { color:var(--muted); }
:root .nx-display-switch button[aria-pressed=true] { background:var(--surface); color:var(--blue); box-shadow:0 1px 3px #142C5412; }
:root .nx-path { box-shadow:0 1px 0 color-mix(in srgb,var(--path-ink) 13%,transparent); border:1px solid color-mix(in srgb,var(--path-ink) 12%,transparent); }
:root .path-asset { --path-bg:var(--track-asset-bg); --path-ink:var(--track-asset-ink); }
:root .path-spatial { --path-bg:var(--track-spatial-bg); --path-ink:var(--track-spatial-ink); }
:root .path-interactive { --path-bg:var(--track-interactive-bg); --path-ink:var(--track-interactive-ink); }
:root .path-physical { --path-bg:var(--track-physical-bg); --path-ink:var(--track-physical-ink); }
:root .nx-path:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--path-ink) 38%,transparent); }
:root .nx-company-visual .nx-chips { box-shadow:0 3px 10px #142C5418; }

/* 公司封面、证据状态：文字和底色始终成对切换。 */
:root .nx-company-cover { background:var(--company-color); color:var(--company-ink,var(--ink)); }
:root .nx-company-cover :is(h1,.nx-inline) { color:var(--company-ink,var(--ink)); }
:root .nx-company-cover .nx-chips { filter:none; }
:root .nx-company-cover figure { background:var(--surface); }
:root .nx-company-cover figure figcaption { background:var(--surface); color:var(--ink); }
:root .nx-company-cover figure.nx-depth { box-shadow:5px 6px 0 color-mix(in srgb,var(--company-ink) 15%,var(--company-color)),10px 14px 24px #142C5418; }
:root .nx-company-actions>button { background:var(--surface); color:var(--ink); border-color:var(--line); }
:root .nx-company-actions>button[aria-pressed=true] { background:var(--action); color:var(--on-action); }
:root .nx-company-filters button { background:var(--filter-color,var(--surface)); color:var(--filter-ink,var(--ink)); border-color:transparent; }
:root .nx-company-filters button[aria-pressed=true] { background:var(--filter-color,var(--surface-tint)); color:var(--filter-ink,var(--ink)); border-color:currentColor; }
:root .nx-status { background:var(--status-unknown-bg); color:var(--status-unknown-ink); }
:root .nx-status.confirmed { background:var(--status-confirmed-bg); color:var(--status-confirmed-ink); }
:root .nx-status.partial { background:var(--status-partial-bg); color:var(--status-partial-ink); }
:root .nx-status.unknown { background:var(--status-unknown-bg); color:var(--status-unknown-ink); }
:root .nx-table-scroll .confirmed { color:var(--status-confirmed-ink); }
:root .nx-table-scroll .partial { color:var(--status-partial-ink); }
:root .nx-table-scroll .unknown { color:var(--status-unknown-ink); }
:root .nx-table-scroll th { background:var(--surface-raised); }
:root .nx-company-flow strong { color:var(--flow-in); }
:root .nx-company-out strong { color:var(--flow-out); }
:root .nx-flow-connector { background:var(--flow-in); }
:root .nx-flow-connector:after { border-color:var(--flow-in); }
:root .nx-flow-connector.out { background:var(--flow-out); }
:root .nx-flow-connector.out:after { border-color:var(--flow-out); }

/* 技术页保留原有坐标；只将历史内联色值映射到语义 token。 */
:root .at-page { color:var(--ink); }
:root :is(.at-heading p,.at-heading-note,.at-search label,.at-result-line,.at-canvas-head p,.at-map-bottom p,.at-unplaced small,.at-evidence>p,.at-evidence summary>span:last-child,.at-capability-row dd p,.at-source-missing,.at-table caption,.at-mobile-guide,.at-empty p) { color:var(--muted); }
:root :is(.at-heading-note strong,.at-result-line a,.at-source-list a,.at-method-tag) { color:var(--blue); }
:root :is(.at-search,.at-canvas,.at-matrix,.at-table tbody th,.at-cell:hover) { background:var(--surface); border-color:var(--line); }
:root :is(.at-search input,.at-table tbody th>button) { color:var(--ink); }
:root :is(.at-mode,.at-unplaced,.at-empty,.at-table thead th,.at-table tbody tr.is-selected>*) { background:var(--surface-raised); color:var(--ink); }
:root :is(.at-mode button,.at-direction-filters button) { color:var(--muted); }
:root .at-direction-filters button { background:var(--surface); border-color:var(--line); }
:root .at-direction-filters button[aria-pressed=true] { background:var(--at-filter-bg); color:var(--at-filter-ink); border-color:color-mix(in srgb,var(--at-filter-ink) 30%,transparent); }
:root .at-direction-filters [data-at-track="all"] { --at-filter-bg:var(--action); --at-filter-ink:var(--on-action); }
:root .at-direction-filters [data-at-track="asset"] { --at-filter-bg:var(--track-asset-bg)!important; --at-filter-ink:var(--track-asset-ink)!important; }
:root .at-direction-filters [data-at-track="spatial"] { --at-filter-bg:var(--track-spatial-bg)!important; --at-filter-ink:var(--track-spatial-ink)!important; }
:root .at-direction-filters [data-at-track="interactive"] { --at-filter-bg:var(--track-interactive-bg)!important; --at-filter-ink:var(--track-interactive-ink)!important; }
:root .at-direction-filters [data-at-track="physical"] { --at-filter-bg:var(--track-physical-bg)!important; --at-filter-ink:var(--track-physical-ink)!important; }
:root .at-search button { background:var(--surface-tint); color:var(--blue); }
:root .at-mode button[aria-pressed=true], :root .at-unplaced button[aria-pressed=true], :root .at-empty button { background:var(--action); color:var(--on-action); box-shadow:none; }
:root .at-unplaced button { background:var(--surface); color:var(--ink); border-color:var(--chart-axis); }
:root :is(.at-map-bottom,.at-unplaced,.at-capability-row,.at-table tbody td,.at-table tbody th,.at-table caption,.at-evidence,.at-method-tag) { border-color:var(--line); }
:root .at-table tr>th:first-child { box-shadow:1px 0 var(--line); }
:root .at-map-scroll, :root .at-table-scroll { scrollbar-color:var(--chart-axis) var(--surface-raised); }
:root :is(.at-axis,.at-axis-connector), :root #at-arrow path { stroke:var(--chart-axis); }
:root :is(.at-axis-title,.at-axis-end) { fill:var(--ink); }
:root :is(.at-axis-label,.at-label-title,.at-node-label) { fill:var(--muted); }
:root .at-axis-end { fill:var(--ink); }
:root .at-zone { fill:var(--muted); opacity:.92; }
:root .at-midline { stroke:var(--chart-axis); opacity:.55; }
:root #at-map-dots circle { fill:var(--chart-grid); }
:root .at-coordinate-guide { stroke:var(--blue); opacity:.8; }
:root .at-map>rect[fill="#F6B8D6"] { fill:var(--track-interactive-bg); fill-opacity:.8; }
:root .at-map>rect[fill="#A9E9D1"] { fill:var(--track-spatial-bg); fill-opacity:.8; }
:root .at-map>rect[fill="#8FB8FF"] { fill:var(--track-asset-bg); fill-opacity:.8; }
:root .at-map>rect[fill="#E5EDF8"] { fill:var(--surface-raised); fill-opacity:1; }
:root .at-map>rect[height="31"] { fill-opacity:1; }
:root .at-node[style*="#8FB8FF"] { --at-dot:var(--track-asset-ink)!important; --at-dot-bg:var(--track-asset-bg)!important; }
:root .at-node[style*="#A9E9D1"] { --at-dot:var(--track-spatial-ink)!important; --at-dot-bg:var(--track-spatial-bg)!important; }
:root .at-node[style*="#F6B8D6"] { --at-dot:var(--track-interactive-ink)!important; --at-dot-bg:var(--track-interactive-bg)!important; }
:root .at-node[style*="#F3D55B"] { --at-dot:var(--track-physical-ink)!important; --at-dot-bg:var(--track-physical-bg)!important; }
:root :is(.at-node-dot,.at-label-dot) { fill:var(--at-dot); }
:root .at-node-dot { stroke:var(--surface); }
:root .at-node-ring { fill:var(--at-dot-bg); stroke:var(--at-dot); }
:root .at-node-line { stroke:var(--at-dot); stroke-width:1.6; }
:root .at-node:is(.is-selected,:hover,:focus-visible) .at-node-line { opacity:.95; }
:root .at-node:is(.is-selected,:hover,:focus-visible) .at-node-label { fill:var(--ink); }
:root .at-node:is(.is-selected,:hover,:focus-visible) .at-label-bg { fill:var(--at-dot-bg); fill-opacity:1; }
:root .at-node:focus-visible .at-label-bg { stroke:var(--blue); }
:root .at-legend span:nth-child(1) i { background:var(--track-asset-ink)!important; }
:root .at-legend span:nth-child(2) i { background:var(--track-spatial-ink)!important; }
:root .at-legend span:nth-child(3) i { background:var(--track-interactive-ink)!important; }
:root .at-legend span:nth-child(4) i { background:var(--track-physical-ink)!important; }
:root .at-chip[style*="#8FB8FF"] { background:var(--track-asset-bg); color:var(--track-asset-ink); }
:root .at-chip[style*="#A9E9D1"] { background:var(--track-spatial-bg); color:var(--track-spatial-ink); }
:root .at-chip[style*="#F6B8D6"] { background:var(--track-interactive-bg); color:var(--track-interactive-ink); }
:root .at-chip[style*="#F3D55B"] { background:var(--track-physical-bg); color:var(--track-physical-ink); }
:root .at-chip { border-color:color-mix(in srgb,currentColor 20%,transparent); }
:root .at-detail { background:var(--surface); color:var(--ink); border:1px solid var(--line); }
:root .at-detail[style*="#8FB8FF"] { --detail-bg:var(--track-asset-bg); --detail-ink:var(--track-asset-ink); }
:root .at-detail[style*="#A9E9D1"] { --detail-bg:var(--track-spatial-bg); --detail-ink:var(--track-spatial-ink); }
:root .at-detail[style*="#F6B8D6"] { --detail-bg:var(--track-interactive-bg); --detail-ink:var(--track-interactive-ink); }
:root .at-detail[style*="#F3D55B"] { --detail-bg:var(--track-physical-bg); --detail-ink:var(--track-physical-ink); }
:root .at-detail-title { background:var(--detail-bg,var(--surface-tint)); color:var(--detail-ink,var(--ink)); }
:root .at-detail :is(.at-description,.at-rationale span,.at-verified,.at-source-missing) { color:var(--muted); }
:root .at-detail .at-source-list a { color:var(--blue); }
:root .at-rationale { border-color:var(--line); }
:root .at-detail-actions button { color:var(--ink); border-color:var(--line); }
:root .at-detail-actions button:first-child { background:var(--action); color:var(--on-action); border-color:var(--action); }
:root .at-status-confirmed { color:var(--status-confirmed-ink); }
:root .at-status-partial { color:var(--status-partial-ink); }
:root :is(.at-status-unknown,.at-status-na) { color:var(--status-unknown-ink); }
:root .at-page :is(button,a,input,summary,[tabindex]):focus-visible { outline-color:var(--blue); }

/* 人才页：进、出两种语义贯穿连线、数量、年份和明细。 */
:root .af-page {
  --af-ink:var(--ink); --af-blue:var(--blue); --af-muted:var(--muted); --af-line:var(--line); --af-bg:var(--bg);
  --af-in:var(--flow-in); --af-in-bg:var(--flow-in-bg); --af-out:var(--flow-out); --af-out-bg:var(--flow-out-bg);
}
:root :is(.af-company-select select,.af-company-chips>button,.af-search,.af-filters select,.af-graph-panel,.af-record-list,.af-role-panel,.af-person-card,.af-more,.af-drawer,.af-empty,.af-network-panel,.af-graph,.af-annual,.af-graph-canvas) { background:var(--surface); border-color:var(--line); color:var(--ink); }
:root :is(.af-person-card:hover,.af-record:hover,.af-role-guide,.af-detail-meta>span,.af-drawer-top button,.af-role-row>div,.af-direction,.af-person-avatar,.af-sample-note) { background:var(--surface-raised); }
:root .af-company-chips>button[aria-pressed=true] { background:var(--surface-tint); border-color:var(--blue); color:var(--ink); box-shadow:inset 0 -2px var(--blue); }
:root .af-company-chips>button[aria-pressed=true] small { color:var(--muted); }
:root .af-direction button { color:var(--muted); }
:root .af-direction button[aria-pressed=true] { background:var(--surface); color:var(--ink); box-shadow:0 1px 3px #142C5412; }
:root :is(.af-search input,.af-node-label) { color:var(--ink); fill:var(--ink); }
:root :is(.af-node-count,.af-node-small,.af-no-edge) { fill:var(--muted); }
:root .af-edge-line { opacity:.52; }
:root .af-graph-edge:is(:hover,:focus,.is-selected) .af-edge-line { opacity:1; }
:root .af-graph-edge:focus .af-edge-hit { stroke:color-mix(in srgb,var(--blue) 16%,transparent); }
:root #af-grid circle { fill:var(--chart-grid); }
:root :is(.af-hub,.af-leader-card) { background:var(--surface-tint); color:var(--ink); border:1px solid var(--line); box-shadow:var(--panel-shadow); }
:root .af-hub>span:not(.af-hub-mark), :root .af-hub>div>span { color:var(--muted); }
:root .af-hub>div strong { color:var(--flow-in); }
:root .af-hub>div>span:last-child strong { color:var(--flow-out); }
:root .af-hub>div i { background:var(--line); }
:root .af-year:hover, :root .af-year[aria-pressed=true] { background:var(--surface-tint); color:var(--ink); }
:root .af-year[aria-pressed=true] { box-shadow:inset 0 0 0 1px var(--blue); }
:root :is(.af-record,.af-person-bottom,.af-annual,.af-panel-intro,.af-sample-note,.af-role-guide,.af-leader-card>div,.af-career li) { border-color:var(--line); }
:root .af-leader-card>strong, :root .af-leader-card a { color:var(--blue); }
:root .af-leader-card p { color:var(--muted); }
:root .af-leader-monogram { background:var(--surface-raised); color:var(--blue); border-color:var(--line); }
:root .af-detail-avatar, :root .af-empty button { background:var(--action); color:var(--on-action); }
:root .af-career li.is-focus::before { box-shadow:0 0 0 4px var(--surface-tint); }
:root .af-experience-excluded { background:var(--status-partial-bg); color:var(--status-partial-ink); }

/* 官方 logo、照片和二维码不做滤镜；沿用原有触屏与 reduced-motion 行为。 */
@media (prefers-reduced-motion:reduce), (hover:none) {
  :root .nx-path:hover { transform:none; }
}
