/* Portal design system v2 — shared by the homepage and research workbench. */
:root{
  --bg:#050b12;
  --bg-2:#08111b;
  --panel:#0c1723;
  --panel-2:#111e2b;
  --border:#213447;
  --border-2:#2c4960;
  --text:#edf4f8;
  --muted:#a8b6c2;
  --faint:#7d8e9e;
  --accent:#63d6e4;
  --accent-2:#8d7cff;
  --accent-3:#f2b66d;
  --accent-soft:rgba(99,214,228,.12);
  --r:12px;
}
html,body{font-size:14px}
button,input,select,textarea{font-size:13px}
.app{grid-template-columns:280px minmax(0,1fr);transition:grid-template-columns .24s var(--ease)}
.sidebar{width:auto;min-width:0}
.sidebar-collapse{
  position:absolute;z-index:8;right:-15px;top:72px;width:30px;height:30px;
  border:1px solid var(--border);border-radius:50%;background:var(--panel);
  color:var(--accent);font:20px/1 var(--sans);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.3)
}
.sidebar-collapse:hover{border-color:var(--accent);background:var(--panel-2)}
.route-group-label{
  padding:13px 10px 5px;color:var(--faint);font:600 12px var(--mono);
  letter-spacing:.12em
}
.global-search-results{display:none;margin:0 10px 8px;border:1px solid var(--border);border-radius:10px;background:rgba(8,17,27,.98);box-shadow:0 14px 40px rgba(0,0,0,.4);overflow:hidden}
.global-search-results.open{display:block}
.global-search-head{padding:9px 11px;border-bottom:1px solid var(--border);color:var(--faint);font:12px var(--mono)}
.global-search-results button,.global-search-results a{display:block;width:100%;padding:9px 11px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;text-decoration:none;cursor:pointer}
.global-search-results button:hover,.global-search-results a:hover{background:var(--accent-soft)}
.global-search-results span,.global-search-results b{display:block}.global-search-results span{color:var(--accent);font-size:12px}.global-search-results b{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.global-search-results p{padding:12px;color:var(--muted);font-size:12px}
.route-btn{height:42px;font-size:14px;padding-inline:12px}
.route-btn,.cat-head,.topic{min-height:40px}
.route-ico{font-size:15px}
.route-index{font-size:12px}
.library-label{font-size:12px;padding-top:14px}
.site-service-nav{margin:14px 10px 20px;padding:10px;border:1px solid var(--border);border-radius:10px;background:rgba(12,23,35,.58)}
.site-service-nav-title{margin:0 2px 5px;color:var(--faint);font:600 11px var(--mono);letter-spacing:.12em}
.site-service-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 2px;color:var(--muted);font-size:12px;text-decoration:none}
.site-service-nav a:hover,.site-service-nav a:focus-visible{color:var(--accent)}
.site-service-nav a span{color:var(--accent);font-family:var(--mono)}
.cat-head{font-size:13px;padding:9px 10px}
.cat-head .cnt,.topic .tnum{font-size:12px}
.topic{font-size:13px;padding:8px 10px 8px 29px}
.brand .sub,.crumb,.live-pill,.atlas-version{font-size:12px}
.topbar{min-height:58px}
.screen-head{margin-bottom:18px}
.screen-head .overline,.panel-kicker{font-size:12px}
.screen-head h1{font-size:34px}
.screen-head p{font-size:14px;line-height:1.65}
.head-metric span,.panel-title small{font-size:12px}
.panel-title{font-size:14px;padding:13px 15px}
.filter-chip,.sort-select{font-size:13px;min-height:38px}
.topic-toolbar{
  position:sticky;z-index:12;top:0;padding:10px 0;
  background:linear-gradient(var(--bg),rgba(5,11,18,.93));backdrop-filter:blur(14px)
}
.topic-table th{font-size:12px;padding:12px}
.topic-table td{font-size:13px;padding:13px 12px}
.topic-title-cell b{font-size:14px;line-height:1.45}
.topic-title-cell span,.tag-mini{font-size:12px}
.heat-score{font-size:14px}
.info-line{font-size:13px}
.tech-panel{border-radius:12px}
.finding strong{font-size:13px}.finding p{font-size:12px;line-height:1.6}
.stack-module,.stack-module b{font-size:13px}.stack-module small{font-size:12px}
.compare-table th,.compare-table td{font-size:12px}
.resource-item b{font-size:14px}.resource-item p,.verify{font-size:12px}
.resource-item{min-height:64px;align-items:center}
.case-summary-card .case-type,.case-summary-card .case-meta,.case-summary-card a{font-size:12px}
.case-summary-card p{font-size:14px}
.case-summary-card .case-tags span{font-size:12px}
.prose{max-width:72ch;margin-inline:auto;font-size:16px;line-height:1.85}
.prose p,.prose li{font-size:16px}
.prose code{font-size:13px}
.prose table{font-size:14px}
.reader-head{max-width:72ch;margin-inline:auto}
.reader-head .rc,.rmeta,.doc-source{font-size:12px}
.rail-label,.panel-title small,.screen-head .overline,.resource-icon,.history-kind,.history-link{font-size:12px}
.history-roadmap-intro p,.history-stage-head p,.history-body p{font-size:13px}
.history-stage-head>b{font-size:12px}
.history-body h3{font-size:15px}
.network-filterbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px;
  border:1px solid var(--border);border-radius:10px;background:var(--panel)
}
.network-filterbar label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}
.network-filterbar select{height:38px;border:1px solid var(--border);border-radius:7px;background:var(--panel-2);color:var(--text);padding:0 28px 0 10px}
.relation-legend{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.relation-legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.relation-legend i{width:9px;height:9px;border-radius:50%;background:var(--legend-color)}
.relation-evidence{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}
.relation-evidence b{display:block;margin-bottom:6px;font-size:13px}
.relation-evidence p{color:var(--muted);font-size:12px;line-height:1.65}
.case-section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:20px 2px 10px}
.case-section-title h2{font:22px var(--serif)}
.case-section-title span{color:var(--muted);font-size:13px}
.resource-trust-label{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid var(--border);border-radius:999px;color:var(--accent);font-size:12px}
.sidebar-collapsed .app{grid-template-columns:72px minmax(0,1fr)}
.sidebar-collapsed .sidebar{overflow:visible}
.sidebar-collapsed .brand{padding-inline:10px}
.sidebar-collapsed .brand .logo>div:last-child,
.sidebar-collapsed .search,
.sidebar-collapsed .global-search-results,
.sidebar-collapsed .route-btn:not(.active) .route-index,
.sidebar-collapsed .route-btn .route-index,
.sidebar-collapsed .route-btn{font-size:0}
.sidebar-collapsed .route-btn{justify-content:center;padding:0}
.sidebar-collapsed .route-ico{font-size:18px}
.sidebar-collapsed .search,.sidebar-collapsed .global-search-results{display:none}
.sidebar-collapsed .route-group-label,
.sidebar-collapsed .library-label,
.sidebar-collapsed .site-service-nav,
.sidebar-collapsed #vizBtn,
.sidebar-collapsed .tree{display:none}
.sidebar-collapsed .sidebar-collapse{transform:rotate(180deg)}
.sidebar-collapsed .brand .mark{width:44px;height:44px}

@media(max-width:1120px){
  .app{grid-template-columns:240px minmax(0,1fr)}
  .sidebar-collapse{display:none}
}
@media(max-width:860px){
  html,body{font-size:14px}
  .app,.sidebar-collapsed .app{grid-template-columns:1fr}
  .sidebar{width:min(88vw,320px);max-width:320px}
  .sidebar-collapsed .sidebar{overflow:auto}
  .sidebar-collapsed .brand .logo>div:last-child,
  .sidebar-collapsed .search,
  .sidebar-collapsed .route-btn{font-size:14px}
  .sidebar-collapsed .search{display:flex}
  .sidebar-collapsed .route-btn{justify-content:flex-start;padding:0 12px}
  .sidebar-collapsed .route-btn .route-index{font-size:12px}
  .sidebar-collapsed .route-group-label,
  .sidebar-collapsed .library-label,
  .sidebar-collapsed .site-service-nav,
  .sidebar-collapsed #vizBtn,
  .sidebar-collapsed .tree{display:block}
  .screen-head h1{font-size:28px}
  .screen-head p{font-size:14px}
  .prose,.prose p,.prose li{font-size:14px}
  .topic-table td,.topic-title-cell b{font-size:14px}
  .topic-title-cell span{font-size:12px}
}
/* Observatory refresh: shared surfaces, hierarchy and restrained motion. */
.atlas-live-home{padding:28px 28px 80px;background:linear-gradient(145deg,#080f1c,#11101a 54%,#10150f)}
.atlas-live-home::before{background-size:68px 68px;opacity:.18;animation:observatory-grid 18s linear infinite}
.atlas-hero-grid{gap:20px}
.atlas-brief,.atlas-star-panel,.atlas-panel,.atlas-entry{border-color:rgba(151,181,222,.18);border-radius:12px;background:linear-gradient(145deg,rgba(20,34,54,.88),rgba(9,18,32,.94));box-shadow:0 12px 36px #00000020}
.atlas-brief{padding:38px 28px;position:relative;overflow:hidden}
.atlas-brief::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,#80e5dd,#f2b66d,#adabff,transparent);opacity:.86;animation:observatory-scan 8s ease-in-out infinite}
.atlas-brief h1{line-height:1.16;letter-spacing:0;margin:24px 0}
.atlas-brief h1 em{background-image:linear-gradient(110deg,#8ee9dd,#f2b66d 48%,#c7b6ff);background-size:180% 100%;animation:observatory-spectrum 12s ease-in-out infinite alternate}
.atlas-brief p{line-height:1.95;color:#adbed3}
.atlas-overline{letter-spacing:.18em;color:#9be9dc}
.atlas-actions{gap:10px}
.atlas-actions button{border-radius:8px;transition:transform .2s,box-shadow .2s}
.atlas-actions button.primary{background:linear-gradient(110deg,#8be4d7,#f2b66d);color:#071322;box-shadow:0 6px 24px #73d4df22}
.atlas-actions button:hover{transform:translateY(-2px);box-shadow:0 8px 28px #73d4df33}
.atlas-kpi{border-radius:8px;background:rgba(5,13,25,.42);border-color:rgba(151,181,222,.14);padding:16px}
.atlas-kpi b{font-variant-numeric:tabular-nums;letter-spacing:0}
.atlas-home-section{margin-top:32px}
.atlas-section-head{padding:0 2px 6px}
.atlas-section-head h2{letter-spacing:0}
.atlas-panel,.atlas-entry{transition:border-color .25s,box-shadow .25s,transform .25s}
.atlas-panel:hover,.atlas-entry:hover{border-color:rgba(139,228,215,.4);box-shadow:0 14px 40px #00000030}
.atlas-entry:hover{transform:translateY(-3px)}
.atlas-feed-item{border-radius:8px;transition:background .2s}
.atlas-feed-item:hover{background:rgba(138,185,244,.09)}
.route-btn{border-radius:8px;transition:background .2s,color .2s}
.route-btn.active{background:linear-gradient(90deg,rgba(120,224,215,.12),rgba(242,182,109,.08));box-shadow:inset 3px 0 #91e5d8}
.topbar{background:rgba(8,16,28,.94)}
.screen-head{padding-bottom:12px}
.tech-panel,.rt-card,.rt-result{border-radius:10px}
:where(button,a,input,select):focus-visible{outline:2px solid #93dcd9;outline-offset:4px}
.ui-view-enter{animation:observatory-enter .42s ease-out both}
.atlas-star-panel{position:relative;isolation:isolate}
.atlas-star-panel::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 0%,rgba(139,228,215,.08) 42%,rgba(242,182,109,.08) 50%,transparent 62%);opacity:0;transform:translateX(calc(var(--glow-x,50%) * .02 - 16px));transition:opacity .3s,transform .3s}
.atlas-star-panel.ui-glow::after{opacity:1}
@keyframes observatory-enter{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes observatory-grid{to{background-position:68px 68px}}
@keyframes observatory-scan{0%,100%{opacity:.35}45%,55%{opacity:.95}}
@keyframes observatory-spectrum{to{background-position:100% 50%}}
[data-theme="light"] .atlas-live-home{background:linear-gradient(145deg,#f3f6fa,#fff7ec 58%,#eef7f4)}
[data-theme="light"] :is(.atlas-brief,.atlas-star-panel,.atlas-panel,.atlas-entry){background:linear-gradient(145deg,#ffffff,#f0f5fc);border-color:#cbd8e9;box-shadow:0 10px 30px #223c6410}
[data-theme="light"] .atlas-brief h1 span{color:#18304b}
[data-theme="light"] .atlas-brief h1 em{background-image:linear-gradient(110deg,#187e83,#b86b18,#7553ad)}
[data-theme="light"] .atlas-brief p{color:#4b6179}
[data-theme="light"] .atlas-overline{color:#217f82}
[data-theme="light"] .atlas-kpi{background:#eaf1fa;border-color:#cbd8e9}
[data-theme="light"] .topbar{background:#f7faff}
@media(max-width:860px){
  .atlas-live-home{padding:18px 14px 88px}
  .atlas-hero-grid{gap:16px}
  .atlas-brief{padding:26px 22px;min-height:auto}
  .atlas-brief h1{font-size:34px}
  .atlas-brief,.atlas-star-panel,.atlas-panel,.atlas-entry{border-radius:10px}
  .atlas-home-section{margin-top:26px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ===== 前端优化 2026-09-14：搜索分组/高亮/键盘导航 + 阅读器目录 + 关联主题 chip ===== */
.global-search-group{padding:7px 11px 3px;color:var(--faint);font:600 10px var(--mono);letter-spacing:.14em}
.global-search-results mark{background:rgba(242,182,109,.28);color:#ffd9a0;border-radius:2px;padding:0 1px}
[data-theme="light"] .global-search-results mark{background:rgba(184,107,24,.22);color:#8a4d0b}
.global-search-results button.gs-active,.global-search-results a.gs-active{background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent)}
/* 阅读器目录：窄屏为折叠面板；≥1440px 固定于视口右侧留白，避免与 72ch 正文重叠 */
.reader-toc{margin:0 0 14px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:rgba(12,23,35,.6)}
.reader-toc summary{cursor:pointer;color:var(--muted);font:600 12px var(--mono);letter-spacing:.1em}
.reader-toc summary::marker{color:var(--accent)}
.reader-toc-list{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.reader-toc button{display:block;width:100%;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;line-height:1.5;text-align:left;cursor:pointer}
.reader-toc button:hover{color:var(--accent);background:var(--accent-soft)}
.reader-toc button.active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent)}
.reader-toc button.toc-lv3{padding-left:20px;color:var(--faint);font-size:11px}
@media(min-width:1440px){
  .reader-toc{position:fixed;right:24px;top:84px;width:238px;max-height:calc(100vh - 120px);overflow:auto;margin:0;box-shadow:0 12px 36px rgba(0,0,0,.28)}
  .reader-toc summary{display:none}
}
@media(max-width:860px){.reader-toc{margin:0 0 12px}}
.prose h2,.prose h3{scroll-margin-top:56px}
/* 关联主题 chip：blockquote 元数据中的 #N 编号变为可点击跳转 */
.xref{display:inline-block;padding:1px 7px;margin:0 2px;border:1px solid rgba(99,214,228,.4);border-radius:999px;background:transparent;color:var(--accent);font:500 12px var(--mono);cursor:pointer;vertical-align:baseline}
.xref:hover{background:var(--accent-soft);border-color:var(--accent)}
/* 移动端长表：保留横向滚动并给出滑动提示 */
@media(max-width:640px){
  .prose table::after{content:"← 左右滑动查看 →";display:block;padding:6px 2px;color:var(--faint);font:11px var(--mono);text-align:center}
}

/* ===== 动效升级 2026-09-14（Apple 风格）：环境光晕 · 滚动显现 · 毛玻璃 · 微交互 ===== */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-fast:.5s;--motion-slow:.9s}
/* 环境光晕：三团大半径色斑缓慢漂移，GPU 合成，零依赖 */
.atlas-live-home{position:relative;z-index:0;overflow:hidden}
.atlas-aurora{position:absolute;inset:-12% -6%;z-index:-1;pointer-events:none;filter:blur(72px);opacity:.55;transform:translateZ(0)}
.atlas-aurora i{position:absolute;display:block;border-radius:50%;will-change:transform}
.atlas-aurora i:nth-child(1){width:44vw;height:44vw;left:2%;top:-18%;background:radial-gradient(circle at 35% 35%,rgba(99,214,228,.5),rgba(99,214,228,0) 66%);animation:aurora-a 26s var(--motion-ease) infinite alternate}
.atlas-aurora i:nth-child(2){width:36vw;height:36vw;right:0%;top:6%;background:radial-gradient(circle at 55% 45%,rgba(141,124,255,.42),rgba(141,124,255,0) 68%);animation:aurora-b 32s var(--motion-ease) infinite alternate}
.atlas-aurora i:nth-child(3){width:30vw;height:30vw;left:34%;bottom:-22%;background:radial-gradient(circle at 50% 50%,rgba(242,182,109,.34),rgba(242,182,109,0) 66%);animation:aurora-c 38s var(--motion-ease) infinite alternate}
@keyframes aurora-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(6vw,4vh,0) scale(1.14)}}
@keyframes aurora-b{from{transform:translate3d(0,2vh,0) scale(1.06)}to{transform:translate3d(-5vw,-3vh,0) scale(.94)}}
@keyframes aurora-c{from{transform:translate3d(2vw,0,0) scale(.96)}to{transform:translate3d(-4vw,-4vh,0) scale(1.12)}}
/* 滚动显现：JS 加 .motion-ready 后才隐藏，无 JS / file:// 永不丢内容 */
.motion-ready .motion{opacity:0;transform:translate3d(0,20px,0) scale(.995);transition:opacity var(--motion-slow) var(--motion-ease) var(--motion-delay,0ms),transform var(--motion-slow) var(--motion-ease) var(--motion-delay,0ms)}
.motion-ready .motion.in{opacity:1;transform:none}
/* 毛玻璃顶栏（Apple 导航质感） */
.topbar{background:rgba(8,16,28,.72)!important;backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}
[data-theme="light"] .topbar{background:rgba(247,250,255,.78)!important}
/* 主按钮：按压回弹 + 高光扫过 */
.atlas-actions button{position:relative;overflow:hidden}
.atlas-actions button:active,.atlas-entry:active,.route-btn:active{transform:scale(.965)}
.atlas-actions button.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.5) 48%,transparent 62%);transform:translateX(-120%);pointer-events:none}
.atlas-actions button.primary:hover::after{transition:transform .8s var(--motion-ease);transform:translateX(120%)}
/* hero 排版微调：大标题更收（Apple 负字距） */
.atlas-brief h1{letter-spacing:-.015em}
.atlas-hero-grid{will-change:transform}
/* KPI 数字滚动用等宽字避免跳动（已有 tabular-nums，此处强化） */
.atlas-kpi b{display:inline-block;min-width:2ch}
/* 减少动态：光晕关闭、显现直出 */
@media(prefers-reduced-motion:reduce){
  .atlas-aurora{display:none}
  .motion-ready .motion{opacity:1!important;transform:none!important;transition:none!important}
}
@media(max-width:860px){
  .atlas-aurora{filter:blur(52px);opacity:.42;inset:-8% -10%}
  .atlas-aurora i:nth-child(1){width:70vw;height:70vw}
  .atlas-aurora i:nth-child(2){width:56vw;height:56vw}
  .atlas-aurora i:nth-child(3){width:48vw;height:48vw}
}

/* ===== 分端重设计 v2（2026-09-14）：桌面影院式编辑排版 / 移动卡片流 ===== */
/* ---------- 桌面 ≥1121px ---------- */
.atlas-live-home{padding:34px 40px 96px}
.atlas-statusbar{margin:0 0 22px}
.atlas-status[data-state="live"] i{animation:atlas-pulse 2.2s ease-in-out infinite}
@keyframes atlas-pulse{0%,100%{box-shadow:0 0 0 0 rgba(94,198,168,.45)}55%{box-shadow:0 0 0 6px rgba(94,198,168,0)}}
.atlas-hero{display:grid;grid-template-columns:minmax(0,10fr) minmax(0,11fr);gap:26px;align-items:stretch;min-height:540px}
.atlas-hero-copy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:42px 34px 42px 40px;border:1px solid rgba(151,181,222,.18);border-radius:16px;background:linear-gradient(145deg,rgba(20,34,54,.88),rgba(9,18,32,.94));box-shadow:0 12px 36px #00000020;overflow:hidden}
.atlas-hero-copy::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,#80e5dd,#f2b66d,#adabff,transparent);opacity:.85;animation:observatory-scan 8s ease-in-out infinite}
.atlas-hero-copy h1{font-family:var(--serif);font-size:clamp(44px,4.4vw,72px);line-height:1.1;margin:20px 0 18px;letter-spacing:-.015em}
.atlas-hero-copy p{font-size:15.5px;line-height:1.95;color:#adbed3;max-width:52ch;margin:0 0 26px}
.atlas-actions{gap:12px}
.atlas-actions button{min-height:48px;padding:0 22px;font-size:15px;border-radius:10px}
.atlas-actions button.primary{font-weight:600}
.atlas-kpi-band{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(151,181,222,.18);border-radius:14px;background:rgba(9,18,32,.62);backdrop-filter:blur(10px);overflow:hidden}
.atlas-kpi-band .atlas-kpi{border:0;border-right:1px solid rgba(151,181,222,.12);border-radius:0;background:transparent;box-shadow:none;padding:26px 26px 22px;transition:background .3s var(--motion-ease)}
.atlas-kpi-band .atlas-kpi:last-child{border-right:0}
.atlas-kpi-band .atlas-kpi:hover{background:rgba(138,185,244,.06)}
.atlas-kpi-band .atlas-kpi b{display:block;font:600 42px/1 var(--serif);letter-spacing:-.01em}
.atlas-kpi-band .atlas-kpi span{display:block;margin-top:10px}
.atlas-home-section{margin-top:58px}
.atlas-section-head{padding:0 2px 14px}
.atlas-section-head h2{font-size:27px}
.atlas-entry-grid{display:grid;grid-template-columns:2.1fr 1fr 1fr;grid-template-rows:158px 158px;gap:14px}
.atlas-entry-grid .atlas-entry{min-height:0}
.atlas-entry-grid .atlas-entry.featured{grid-row:1/3}
[data-theme="light"] .atlas-hero-copy{background:linear-gradient(145deg,#ffffff,#eef4fb);border-color:#cbd8e9;box-shadow:0 10px 30px #223c6410}
[data-theme="light"] .atlas-hero-copy p{color:#4b6179}
[data-theme="light"] .atlas-kpi-band{background:rgba(255,255,255,.8);border-color:#cbd8e9}
[data-theme="light"] .atlas-kpi-band .atlas-kpi{border-color:#d8e3f0}
/* ---------- 平板 861–1120px ---------- */
@media(min-width:861px) and (max-width:1120px){
  .atlas-hero{grid-template-columns:1fr;min-height:0}
  .atlas-hero-copy{padding:34px 30px}
  .atlas-hero-copy h1{font-size:clamp(38px,5vw,54px)}
  .atlas-kpi-band{grid-template-columns:repeat(2,1fr)}
  .atlas-kpi-band .atlas-kpi:nth-child(2n){border-right:0}
  .atlas-kpi-band .atlas-kpi:nth-child(n+3){border-top:1px solid rgba(151,181,222,.12)}
  .atlas-entry-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .atlas-entry-grid .atlas-entry.featured{grid-row:auto;grid-column:1/3}
  .atlas-entry-grid .atlas-entry{min-height:132px}
}
/* ---------- 移动 ≤860px：卡片流 ---------- */
@media(max-width:860px){
  .atlas-live-home{padding:14px 14px 96px}
  .atlas-statusbar{margin-bottom:14px}
  .atlas-hero{display:flex;flex-direction:column;gap:14px;min-height:0}
  .atlas-hero-copy{padding:30px 20px 26px;border-radius:14px}
  .atlas-hero-copy h1{font-size:clamp(34px,10.5vw,44px);margin:14px 0 12px}
  .atlas-hero-copy p{font-size:14px;line-height:1.8;margin-bottom:20px}
  .atlas-actions{gap:10px}
  .atlas-actions button{flex:1;min-height:48px;font-size:14px;padding:0 10px}
  .atlas-kpi-band{margin-top:14px;grid-template-columns:1fr 1fr;backdrop-filter:none}
  .atlas-kpi-band .atlas-kpi{padding:18px 16px 14px;border-right:1px solid rgba(151,181,222,.12)}
  .atlas-kpi-band .atlas-kpi:nth-child(2n){border-right:0}
  .atlas-kpi-band .atlas-kpi:nth-child(n+3){border-top:1px solid rgba(151,181,222,.12)}
  .atlas-kpi-band .atlas-kpi b{font-size:30px}
  .atlas-kpi-band .atlas-kpi span{font-size:11px;margin-top:6px}
  .atlas-home-section{margin-top:40px}
  .atlas-section-head{padding:0 2px 10px}
  .atlas-section-head h2{font-size:22px}
  .atlas-entry-grid{grid-template-columns:1fr;grid-template-rows:none;gap:12px}
  .atlas-entry-grid .atlas-entry{min-height:118px}
  .atlas-entry-grid .atlas-entry.featured{grid-row:auto}
  .atlas-star-panel{min-height:440px}
  .atlas-map-filterbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .atlas-map-filterbar::-webkit-scrollbar{display:none}
}
.atlas-hero-copy h1 em{font-style:normal;background-image:linear-gradient(110deg,#8ee9dd,#f2b66d 48%,#c7b6ff);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:observatory-spectrum 12s ease-in-out infinite alternate}
[data-theme="light"] .atlas-hero-copy h1 em{background-image:linear-gradient(110deg,#187e83,#b86b18,#7553ad)}
[data-theme="light"] .atlas-hero-copy h1 span{color:#18304b}
@media(max-width:860px){
  .atlas-actions{flex-direction:column}
  .atlas-actions button{width:100%;white-space:nowrap}
}
/* 移动端星图筛选条：单行横向滚动（内联样式优先级高，需 !important 覆盖） */
@media(max-width:860px){
  /* 基础 CSS 在移动端是 display:grid 两列堆叠（约 173px）压在画布上 → 强制单行滚动浮层 */
  .atlas-map-filterbar{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none;left:12px!important;right:12px!important;top:56px!important}
  .atlas-map-filterbar::-webkit-scrollbar{display:none}
  .atlas-map-filterbar .atlas-mode-tabs{flex:none}
  .atlas-map-filterbar input,.atlas-map-filterbar select{flex:none;min-width:0;width:auto}
  .atlas-map-filterbar input{flex:1 1 140px}
}
