:root{
  --ink:#f4f7fb;--muted:#aab8ca;--bg:#030408;--panel:#0b1521;--line:#26344a;
  --cyan:#74bfe8;--amber:#edb76c;--gray:#63758a;--titanium:#c4d0dc;--action:#aec8e2;
  --dos-paper:#07121c;--dos-card:#142033;--dos-card-2:#1b3042;
  --dos-ink:#f4f7fb;--dos-ink-2:#d7e2ed;--dos-muted:#aab8ca;
  --dos-line:#26344a;--dos-hairline:#1e2d40;
  --dos-accent:#8adac4;--dos-accent-wash:#12293e;
  --dos-brass:#aec8e2;--dos-brass-ink:#e3ebf5;--dos-brass-wash:#142332;
  --dos-rust:#f19b9b;--dos-rust-ink:#f5b5b5;--dos-rust-wash:#352326;
  --dos-direct:#8adac4;--dos-partial:#edb76c;--dos-gap:#f19b9b;--dos-candidate:#74bfe8;
  --dos-portrait-ring:#396397;--dos-portrait-keyline:#aec8e2;
  --dos-serif:Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  --dos-mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;overflow:hidden;
  font-family:Arial,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.55}
.topbar{display:flex;align-items:center;gap:10px;padding:10px 18px;background:rgba(3,4,8,0.94);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);z-index:10}
.brand{display:flex;align-items:center;gap:9px;white-space:nowrap}
.mark{display:grid;place-items:center;width:26px;height:26px;background:linear-gradient(145deg,#396397,#1b3042);color:#f4f7fb;border:1px solid #aec8e266;border-radius:8px;font-weight:700}
.brand strong{font-size:15px;letter-spacing:1.2px;color:#f4f7fb}
.banner{flex:1;text-align:center;font-size:12px;color:#d7e2ed;background:#142033;border:1px solid #26344a;border-radius:999px;padding:4px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
nav{display:flex;gap:6px}
nav button,#toggle-rotate,#closeup-btn,#pilot3d-btn{font:inherit;font-size:12px;padding:6px 12px;border:1px solid var(--line);background:#142033;color:var(--muted);border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .16s ease}
nav button:hover,#toggle-rotate:hover,#closeup-btn:hover,#pilot3d-btn:hover{border-color:#aec8e2;color:#f4f7fb}
nav button.active,#toggle-rotate.active,#closeup-btn.active{background:#396397;border-color:#aec8e2;color:#ffffff;box-shadow:0 0 16px rgba(116,191,232,0.28)}
#pilot3d-btn.active{background:#1b3042;border-color:#edb76c;color:#edb76c;box-shadow:0 0 16px rgba(237,183,108,0.25)}
main{flex:1;display:flex;min-height:0}
#stage{position:relative;flex:1;min-width:0;overflow:hidden;cursor:grab;touch-action:none;
  background:radial-gradient(ellipse at 72% 18%,rgba(37,66,104,0.24),transparent 48%),
             radial-gradient(ellipse at 34% 78%,rgba(37,53,82,0.22),transparent 52%),#030408}
#gl{display:block;width:100%;height:100%}
#labels3d{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lbl{position:absolute;left:0;top:0;font-size:12px;line-height:1;color:#d7e2ed;
  background:rgba(11,21,33,0.88);backdrop-filter:blur(8px);border:1px solid #2b4256;border-radius:8px;padding:4px 8px;
  white-space:nowrap;transform:translate(-50%,-50%);box-shadow:0 4px 16px rgba(3,4,8,0.55)}
.lbl.band{font-size:13px;font-weight:700;color:#f4f7fb;background:rgba(20,32,51,0.92);border-color:#74bfe8;box-shadow:0 0 14px rgba(116,191,232,0.22)}
.lbl.sub{font-size:12px;color:#aab8ca;background:rgba(11,21,33,0.78);padding:2px 7px;border-color:#26344a}
.lbl.gov{font-size:12px;color:#edb76c;background:rgba(20,32,51,0.92);border-color:#edb76c88}
.lbl.node{font-size:12px;color:#f4f7fb;background:rgba(20,32,51,0.90);border-color:#74bfe888}
.lbl.holo,.lbl.gov,.lbl.node,.lbl.seat{pointer-events:auto;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.lbl.holo:hover,.lbl.gov:hover,.lbl.node:hover,.lbl.seat:hover{border-color:#aec8e2;box-shadow:0 0 16px rgba(116,191,232,0.38)}
.lbl.seat{display:flex;align-items:center;gap:6px;font-size:12px;color:#f4f7fb;
  background:rgba(11,21,33,0.90);padding:3px 9px 3px 4px;border-color:#396397;border-radius:999px;
  box-shadow:0 4px 14px rgba(3,4,8,0.6),0 0 10px rgba(116,191,232,0.14)}
.lbl.seat svg,.lbl.seat .seat-avatar{width:24px;height:24px;flex:0 0 24px;display:block;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #aec8e2}
.lbl.seat small{font-size:12px;color:#aab8ca}
.lbl.seat .sig-dot{width:6px;height:6px;border-radius:50%;background:#e9f4fc;
  box-shadow:0 0 6px 1px rgba(220,239,252,0.55),0 0 14px 4px rgba(116,191,232,0.28);flex-shrink:0}
.lbl.seat .sig-dot.partial{background:#edb76c;box-shadow:0 0 6px 1px rgba(237,183,108,0.65)}
.lbl.pilot-pin{border-color:#edb76c;box-shadow:0 0 0 1.5px rgba(237,183,108,0.65),0 0 18px rgba(237,183,108,0.28);background:rgba(27,48,66,0.95);color:#ffffff}
#side{width:320px;border-left:1px solid var(--line);background:var(--panel);padding:16px;overflow-y:auto;overflow-x:hidden}
#side h2{font-size:15px;margin:0 0 4px;font-weight:700;letter-spacing:-.02em}
#side h3{font-size:13px;margin:14px 0 6px;font-weight:700;color:#f4f7fb}
#side p{font-size:12px;color:var(--muted);margin:6px 0}
#side strong{color:#f4f7fb}
.tag{display:inline-block;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:1px 8px;margin:2px 4px 2px 0;color:var(--muted);background:#142033}
.tag.warn{border-color:#edb76c66;background:#1c2536;color:#edb76c}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:12px;margin-top:14px}
.facts dt{color:var(--muted)}.facts dd{margin:0}
.jump{cursor:pointer;color:#74bfe8;padding:4px 0;border-top:1px solid #1e2d40;font-size:12px}
.jump:hover{color:#aec8e2}
.statusbar{display:flex;gap:16px;align-items:center;padding:5px 16px;border-top:1px solid var(--line);
  background:#030408;font-size:12px;color:var(--muted)}
#legend3d{display:flex;align-items:center;gap:4px}
.sw{display:inline-block;width:16px;height:3px;border-radius:2px;margin-left:8px}
.sw.baseline{background:var(--cyan)}.sw.feedback{background:var(--amber)}.sw.plain{background:var(--gray)}
.statusbar a{color:#74bfe8}
code{font-size:12px;color:#b8cce3}
.stg-bar{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
.stg-btn{font:inherit;font-size:12px;padding:3px 7px;border:1px solid var(--line);border-radius:8px;background:#142033;color:var(--muted);cursor:pointer}
.stg-btn.active{background:#396397;border-color:#aec8e2;color:#fff}
.art-box{font-size:12px;background:#142033;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:6px;white-space:pre-wrap;word-break:break-all}

/* ---------- 3D 深空主题 · 数字员工四维档案卡 (Sagegogo Hero Dark) ---------- */
.dossier-card{display:flex;flex-direction:column;gap:14px;font-size:12px;color:var(--dos-ink);max-width:100%}
.dos-top-strip{font-family:var(--dos-mono);font-size:12px;color:var(--dos-brass-ink);background:var(--dos-brass-wash);
  border:1px solid #2b4256;border-radius:8px;padding:4px 8px;text-align:center}
.dos-masthead{display:flex;flex-direction:column;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--dos-line)}
.dos-eyebrow{font-family:var(--dos-mono);font-size:12px;letter-spacing:.05em;color:var(--dos-muted);font-weight:600}
.dos-portrait-frame{position:relative;width:236px;height:236px;margin:2px auto;padding:6px;background:var(--dos-card);
  border:1px solid var(--dos-line);border-radius:12px;box-shadow:4px 4px 0 var(--dos-portrait-keyline)}
.dos-portrait-img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block;background:var(--dos-accent-wash)}
.dos-tier-badge{position:absolute;right:12px;bottom:12px;font-family:var(--dos-mono);font-size:12px;font-weight:700;
  background:var(--dos-card);color:var(--dos-brass-ink);border:1px solid var(--dos-portrait-keyline);padding:1px 7px;border-radius:6px}
.dos-plaque-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;background:var(--dos-brass-wash);
  border:1px dashed var(--dos-brass);border-radius:12px;text-align:center}
.dos-plaque-caption{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--dos-brass-ink)}
.dos-title-block{display:flex;flex-direction:column;gap:4px}
.dos-name-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.dos-name{font-family:var(--dos-serif);font-size:22px !important;font-weight:700 !important;letter-spacing:-.03em;line-height:1.2;margin:0 !important;color:var(--dos-ink)}
.dos-stamp{font-family:var(--dos-mono);font-size:12px;padding:1px 6px;border-radius:6px}
.dos-stamp.stamp-unverified{border:1px dashed var(--dos-brass);color:var(--dos-brass-ink);background:var(--dos-brass-wash)}
.dos-stamp.stamp-partial{border:1px dotted var(--dos-accent);color:var(--dos-accent);background:var(--dos-accent-wash)}
.dos-role-title{font-size:14px;font-weight:600;color:var(--dos-ink-2)}
.dos-id-line{font-size:12px;color:var(--dos-muted);overflow-wrap:anywhere}
.dos-pilot-tag{font-size:12px;color:var(--dos-accent);background:var(--dos-accent-wash);border:1px solid #2b4256;border-radius:8px;padding:3px 7px}
.dos-subnav{position:sticky;top:-16px;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;
  padding:6px 0;background:rgba(11,21,33,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--dos-line)}
.dos-subnav a{font-size:12px;text-align:center;padding:4px 2px;border:1px solid var(--dos-line);border-radius:8px;
  color:var(--dos-ink-2);text-decoration:none;background:var(--dos-card)}
.dos-subnav a:hover{border-color:var(--dos-brass);color:#fff}
.dos-sec{display:flex;flex-direction:column;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--dos-line);scroll-margin-top:38px}
.dos-sec-head{display:flex;align-items:baseline;gap:6px}
.dos-sec-num{font-family:var(--dos-mono);font-size:12px;color:var(--dos-brass);font-weight:700}
.dos-sec-head h3{margin:0 !important;font-size:13px !important;letter-spacing:.02em}
.dos-row-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.dos-mini-lbl{font-family:var(--dos-mono);font-size:12px;color:var(--dos-muted);margin-right:4px}
.dos-chip{display:inline-block;font-size:12px;padding:1px 7px;background:var(--dos-card);border:1px solid var(--dos-line);border-radius:6px;color:var(--dos-ink-2)}
.dos-quote-card{padding:8px 10px;background:var(--dos-card);border-left:3px solid var(--dos-brass);border-radius:0 8px 8px 0}
.dos-quote{font-size:14px;line-height:1.5;font-weight:700;margin:4px 0;color:var(--dos-ink)}
.dos-fold summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--dos-ink-2);padding:3px 0}
.dos-List{margin:4px 0 0;padding-left:16px;font-size:12px;color:var(--dos-ink-2);line-height:1.55}
.dos-List li{margin-bottom:3px}
.dos-subbox{padding:7px 9px;background:var(--dos-card);border:1px solid var(--dos-hairline);border-radius:8px}
.dos-subbox p{margin:3px 0 0 !important;color:var(--dos-ink-2) !important;font-size:12px !important;line-height:1.55}
.dos-stop-rail{padding:8px 10px;background:#1c2536;border:1px dashed #edb76c;border-left:3px solid #edb76c;border-radius:8px}
.dos-stop-rail p{margin:4px 0 0 !important;color:#edb76c !important;font-size:12px !important;line-height:1.55}
.dos-slot-line{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}
.dos-mission-box{padding:8px 10px;background:var(--dos-card);border-left:3px solid var(--dos-accent);border-radius:0 8px 8px 0}
.dos-mission-box p{margin:3px 0 0 !important;color:var(--dos-ink) !important;font-size:13px !important;font-weight:600}
.dos-specimen{position:relative;padding:9px 11px;background:var(--dos-card);border:1px solid var(--dos-portrait-keyline);border-radius:8px}
.dos-artifact-title{font-size:15px;font-weight:700;color:var(--dos-ink);margin-top:3px}
.dos-rider{padding:8px 10px;background:var(--dos-brass-wash);border:1px dashed var(--dos-brass);border-left:3px solid var(--dos-brass);border-radius:8px}
.dos-rider-head{display:flex;justify-content:space-between;align-items:center;gap:4px;flex-wrap:wrap;font-weight:600;color:var(--dos-brass-ink)}
.dos-stamp-req{font-style:normal;font-family:var(--dos-mono);font-size:12px;border:1px solid var(--dos-brass);padding:0 5px;border-radius:4px}
.dos-rider p{margin:4px 0 !important;color:var(--dos-ink) !important;font-size:12px !important}
.dos-rider small{display:block;font-size:12px;color:var(--dos-muted)}
.dos-timeline{display:flex;flex-direction:column;gap:4px}
.dos-step{padding:5px 8px;background:var(--dos-card);border:1px solid var(--dos-hairline);border-radius:8px}
.dos-step summary{cursor:pointer;display:flex;align-items:center;gap:6px;font-size:12px;list-style:none}
.dos-step summary::-webkit-details-marker{display:none}
.dos-step-idx{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--dos-accent-wash);
  color:var(--dos-accent);font-family:var(--dos-mono);font-size:12px;font-weight:700;flex-shrink:0}
.dos-step[open] .dos-step-idx{background:var(--dos-accent);color:#030408}
.dos-step p{margin:5px 0 2px 24px !important;font-size:12px !important;color:var(--dos-muted) !important;line-height:1.55}
.dos-sk-bar{display:flex;height:5px;border-radius:3px;overflow:hidden;background:var(--dos-line);gap:1px}
.dos-sk-summary{font-size:12px;color:var(--dos-muted)}
.dos-pilot-ribbon{font-size:12px;color:var(--dos-accent);background:var(--dos-accent-wash);border:1px solid #2b4256;border-radius:8px;padding:4px 8px;font-weight:600}
.dos-skill-card{padding:8px 9px;background:var(--dos-card);border:1px solid var(--dos-line);border-left:3px solid var(--dos-direct);border-radius:8px;display:flex;flex-direction:column;gap:5px}
.dos-skill-card.st-partial,.dos-skill-card.st-cand{border-left-color:var(--dos-partial)}
.dos-skill-card.st-gap{border-left-color:var(--dos-rust)}
.dos-skill-top{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.dos-sk-badge{font-family:var(--dos-mono);font-size:12px;padding:1px 6px;border-radius:6px;border:1px solid var(--dos-line)}
.dos-sk-badge.st-direct{color:var(--dos-direct);background:var(--dos-accent-wash);border-color:#2b4256}
.dos-sk-badge.st-partial,.dos-sk-badge.st-cand{color:var(--dos-partial);background:#1c2536;border-color:#edb76c66}
.dos-sk-badge.st-gap{color:var(--dos-rust-ink);background:var(--dos-rust-wash);border-color:#5c3438}
.dos-skill-id{font-size:12px;color:var(--dos-muted)}
.dos-supply-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.dos-code-chip{font-family:var(--dos-mono);font-size:12px;padding:1px 5px;background:var(--dos-paper);border:1px solid var(--dos-line);border-radius:6px;overflow-wrap:anywhere}
.dos-deny-chip{color:var(--dos-rust-ink);background:var(--dos-rust-wash);border-color:#5c3438}
.dos-no-supply{font-size:12px;color:var(--dos-rust-ink)}
.dos-sk-note{font-size:12px;color:var(--dos-muted);line-height:1.45}
.dos-contract{border-top:1px dashed var(--dos-line);padding-top:4px;margin-top:2px}
.dos-contract summary{cursor:pointer;font-size:12px;color:var(--dos-accent);font-weight:600}
.dos-contract-body{display:flex;flex-direction:column;gap:4px;margin-top:5px;font-size:12px;overflow-wrap:anywhere}
.dos-fail-code{color:var(--dos-rust-ink);background:var(--dos-rust-wash);padding:1px 4px;border-radius:4px}
.dos-peers-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.dos-peer-chip{display:flex;align-items:center;gap:5px;padding:4px 6px;background:var(--dos-card);border:1px solid var(--dos-line);
  border-radius:8px;cursor:pointer;font:inherit;font-size:12px;color:var(--dos-ink);text-align:left;min-width:0}
.dos-peer-chip:hover{border-color:var(--dos-brass);background:var(--dos-brass-wash)}
.dos-peer-chip .seat-avatar{width:20px;height:20px;flex:0 0 20px;border-radius:50%;object-fit:cover}
.dos-peer-chip small{font-size:12px;color:var(--dos-muted);margin-left:auto;overflow:hidden;text-overflow:ellipsis}
.dos-ledger{display:grid;grid-template-columns:64px minmax(0,1fr);gap:5px 8px;margin:4px 0;font-size:12px}
.dos-ledger dt{color:var(--dos-muted);font-family:var(--dos-mono);font-size:12px}
.dos-ledger dd{margin:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0;overflow-wrap:anywhere}
.dos-more summary{cursor:pointer;font-size:12px;color:var(--dos-accent)}
.dos-mode-pair{display:flex;flex-direction:column;gap:5px}
.dos-mode-pair > div{padding:6px 8px;background:var(--dos-card);border:1px solid var(--dos-hairline);border-radius:8px}
.dos-mode-pair p{margin:2px 0 0 !important;font-size:12px !important;color:var(--dos-ink-2) !important}
.dos-envelope{padding:8px 9px;background:var(--dos-card);border:1px dashed var(--dos-line);border-radius:8px}
.dos-env-grid{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.dos-env-grid span{font-family:var(--dos-mono);font-size:12px;padding:1px 6px;background:var(--dos-paper);border:1px solid var(--dos-line);border-radius:6px}
.dos-boundary-box p{margin:4px 0 0 !important;color:var(--dos-ink) !important;font-size:12px !important;line-height:1.55}
.dos-never-fold{padding:7px 9px;background:var(--dos-rust-wash);border:1px solid #5c3438;border-radius:8px}
.dos-never-fold summary{color:var(--dos-rust-ink)}
.dos-never-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dos-ink)}
.dos-never-list li{display:flex;gap:6px;align-items:flex-start;line-height:1.5}
.dos-x{color:var(--dos-rust-ink);font-weight:700;flex-shrink:0}
.dos-net-item{padding:7px 8px;background:var(--dos-card);border:1px solid var(--dos-line);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:3px}
.dos-net-item:hover{background:#1b3042;border-color:var(--dos-brass)}
.dos-net-top{display:flex;justify-content:space-between;align-items:center;gap:4px;flex-wrap:wrap}
.dos-net-note{font-size:12px;color:var(--dos-muted)}
.dos-empty-note{font-size:12px;color:var(--dos-muted);font-style:italic}
.dos-colophon{display:flex;flex-direction:column;gap:8px;padding-top:4px}
.dos-colophon-dl code{font-size:12px;overflow-wrap:anywhere}
.dos-final-stamp{font-family:var(--dos-mono);font-size:12px;text-align:center;padding:4px 8px;border:1px solid var(--dos-brass);
  color:var(--dos-brass-ink);background:var(--dos-brass-wash);border-radius:8px}

/* ---------- 3D 区域快捷导览栏 (#zone-dock) ---------- */
#zone-dock{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:6px;padding:5px 8px;
  background:rgba(3,4,8,0.86);backdrop-filter:blur(14px);border:1px solid #26344a;border-radius:999px;z-index:12;
  box-shadow:0 10px 28px rgba(0,0,0,0.55)}
.dock-btn{font:inherit;font-size:12px;padding:4px 11px;border:1px solid transparent;border-radius:999px;
  background:transparent;color:#aab8ca;cursor:pointer;white-space:nowrap;transition:all .15s ease}
.dock-btn:hover{color:#f4f7fb;background:rgba(57,99,151,0.28);border-color:#396397}
.dock-btn.active{background:#396397;color:#ffffff;border-color:#aec8e2;box-shadow:0 0 12px rgba(116,191,232,0.32)}

/* ---------- 批次 25-27：极昼冰蓝 3D 主题切换 + 全局搜索 + 页内卡片预览舱 ---------- */
body[data-theme="light"]{
  --ink:#202b38;--muted:#526171;--bg:#eef3f9;--panel:#f4f7fb;--line:#dce5ef;
  --cyan:#396397;--amber:#935011;--gray:#63758a;--titanium:#396397;--action:#396397;
  --dos-paper:#edf3f9;--dos-card:#ffffff;--dos-card-2:#f4f7fb;
  --dos-ink:#202b38;--dos-ink-2:#26384d;--dos-muted:#526171;
  --dos-line:#dce5ef;--dos-hairline:#e4e9ef;
  --dos-accent:#246b50;--dos-accent-wash:#eaf5ee;
  --dos-brass:#396397;--dos-brass-ink:#14243a;--dos-brass-wash:#e7f1fb;
  --dos-rust:#b44949;--dos-rust-ink:#8f3232;--dos-rust-wash:#fbeded;
  --dos-direct:#246b50;--dos-partial:#935011;--dos-gap:#b44949;--dos-candidate:#396397;
  --dos-portrait-ring:#aec8e2;--dos-portrait-keyline:#396397;
}
body[data-theme="light"] .topbar{background:rgba(255,255,255,0.94);border-bottom-color:#dce5ef}
body[data-theme="light"] .brand strong{color:#202b38}
body[data-theme="light"] nav button,body[data-theme="light"] #toggle-rotate,body[data-theme="light"] #closeup-btn,body[data-theme="light"] #pilot3d-btn,body[data-theme="light"] #theme-btn{background:#ffffff;color:#526171;border-color:#dce5ef}
body[data-theme="light"] nav button.active,body[data-theme="light"] #toggle-rotate.active,body[data-theme="light"] #closeup-btn.active{background:#396397;color:#ffffff;border-color:#396397}
body[data-theme="light"] #stage{background:radial-gradient(ellipse at 70% 20%,rgba(174,200,226,0.45),transparent 55%),#dfe9f5}
body[data-theme="light"] .lbl{background:rgba(255,255,255,0.92);color:#202b38;border-color:#c2d8ec;box-shadow:0 4px 14px rgba(20,36,58,0.12)}
body[data-theme="light"] .lbl.band{background:#e7f1fb;color:#14243a;border-color:#396397}
body[data-theme="light"] .lbl.seat{background:rgba(255,255,255,0.95);color:#202b38;border-color:#396397}
body[data-theme="light"] .lbl.seat small{color:#526171}
body[data-theme="light"] #zone-dock{background:rgba(255,255,255,0.90);border-color:#dce5ef;box-shadow:0 8px 24px rgba(20,36,58,0.12)}
body[data-theme="light"] .dock-btn{color:#526171}
body[data-theme="light"] .dock-btn.active{background:#396397;color:#ffffff}
body[data-theme="light"] .statusbar{background:#ffffff;border-top-color:#dce5ef}
body[data-theme="light"] #side h3,body[data-theme="light"] #side strong{color:#202b38}
body[data-theme="light"] .dos-subnav{background:rgba(244,247,251,0.94)}

#theme-btn{font:inherit;font-size:12px;padding:6px 11px;border:1px solid var(--line);background:#142033;color:var(--muted);border-radius:8px;cursor:pointer;white-space:nowrap}
#theme-btn:hover{border-color:#aec8e2;color:#f4f7fb}
.search-wrap{position:relative;flex:1;max-width:310px;min-width:180px}
#q3d{width:100%;font:inherit;font-size:12px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--dos-card);color:var(--ink)}
#q3d:focus{outline:2px solid rgba(116,191,232,0.35);border-color:#74bfe8}
.q-results{position:absolute;left:0;right:0;top:calc(100% + 4px);max-height:320px;overflow:auto;
  background:var(--dos-card);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,0.45);z-index:40}
.q-item{padding:7px 10px;font-size:12px;border-bottom:1px solid var(--dos-hairline);cursor:pointer;display:flex;justify-content:space-between;gap:8px;color:var(--ink)}
.q-item:last-child{border-bottom:0}
.q-item:hover{background:var(--dos-accent-wash)}
.q-item small{color:var(--muted);white-space:nowrap}
.tag.c-link{cursor:pointer;color:#74bfe8;border-color:#396397}
.tag.c-link:hover{background:#1b3042;color:#fff}
.sw.beam{background:linear-gradient(90deg,#74bfe8,#8adac4)}
.rel{font-size:12px;border-top:1px solid var(--dos-hairline);padding:7px 4px;cursor:pointer}
.rel:hover{background:var(--dos-accent-wash)}
.rel .obj{color:var(--ink)}
.rel .meta{color:var(--muted);font-size:12px}

/* 页内毛玻璃卡片预览舱 */
.card-lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.card-lightbox[hidden]{display:none !important}
.clb-backdrop{position:absolute;inset:0;background:rgba(3,4,8,0.72);backdrop-filter:blur(8px)}
.clb-dialog{position:relative;z-index:1;width:min(1260px,94vw);height:min(840px,90vh);display:flex;flex-direction:column;
  background:var(--dos-card);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,0.65);overflow:hidden}
.clb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}
.clb-badge{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--dos-accent-wash);color:var(--dos-accent);margin-right:8px;border:1px solid var(--line)}
.clb-actions{display:flex;gap:8px;align-items:center}
.clb-btn{font:inherit;font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--dos-card);color:var(--ink);cursor:pointer;text-decoration:none}
.clb-btn:hover{border-color:#74bfe8}
.clb-body{flex:1;background:#ffffff}
#clb-frame{width:100%;height:100%;border:0;display:block}

/* ---------- 批次 29-31：键盘无障碍焦点环 + 卡片兜底面板 + 辉光按钮 + 3 档响应式断点 ---------- */
.lbl[tabindex="0"]:focus-visible,
nav button:focus-visible,
.dock-btn:focus-visible,
#closeup-btn:focus-visible,
#pilot3d-btn:focus-visible,
#theme-btn:focus-visible,
#bloom-btn:focus-visible,
#toggle-rotate:focus-visible {
  outline: 2px solid #8adac4;
  outline-offset: 2px;
  border-color: #8adac4 !important;
  box-shadow: 0 0 0 3px rgba(138, 218, 196, 0.35), 0 0 18px rgba(116, 191, 232, 0.55) !important;
  z-index: 30;
}

#bloom-btn, #side-toggle-btn {
  font: inherit;
  font-size: 12px;
  padding: 6px 11px;
  border: 1px solid var(--line);
  background: #142033;
  color: var(--muted);
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
}
#bloom-btn.active {
  background: #1b3042;
  border-color: #8adac4;
  color: #8adac4;
  box-shadow: 0 0 14px rgba(138, 218, 196, 0.28);
}
body[data-theme="light"] #bloom-btn,
body[data-theme="light"] #side-toggle-btn {
  background: #ffffff;
  color: #526171;
  border-color: #dce5ef;
}
body[data-theme="light"] #bloom-btn.active {
  background: #eaf5ee;
  color: #246b50;
  border-color: #246b50;
}
#side-toggle-btn { display: none; }

.clb-fallback {
  height: 100%;
  padding: 28px;
  background: var(--dos-paper);
  color: var(--dos-ink);
  overflow-y: auto;
}
.clb-fb-card {
  max-width: 720px;
  margin: 12px auto;
  padding: 22px 24px;
  background: var(--dos-card);
  border: 1px solid var(--dos-line);
  border-radius: 12px;
}
.clb-fb-badge {
  display: inline-block;
  font-size: 12px;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--dos-accent-wash);
  color: var(--dos-accent);
  border: 1px solid var(--dos-line);
  margin-bottom: 8px;
}
.clb-fb-card h3 {
  margin: 4px 0 10px;
  font-size: 18px;
  color: var(--dos-ink);
}
.clb-fb-dl {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 8px 12px;
  margin: 14px 0;
  font-size: 12px;
}
.clb-fb-dl dt { color: var(--dos-muted); }
.clb-fb-dl dd { margin: 0; color: var(--dos-ink); }
.clb-fb-hint {
  font-size: 12px;
  color: var(--dos-muted);
  border-top: 1px dashed var(--dos-line);
  padding-top: 10px;
}

.audit3d {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 35;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 12px;
  white-space: pre-wrap;
  background: rgba(11, 21, 33, 0.94);
  border: 1px solid #246b50;
  color: #f4f7fb;
}
.audit3d.fail {
  border-color: #b44949;
  background: rgba(53, 35, 38, 0.95);
}

/* 3 档响应式断点：≥1280 宽屏 / 768–1279 平板与小笔电 / <768 手机窄屏 */
@media (max-width: 1279px) {
  .topbar {
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 12px;
  }
  .search-wrap {
    order: 2;
    max-width: none;
    flex: 1 1 220px;
  }
  #views {
    order: 3;
    overflow-x: auto;
    max-width: 100%;
  }
  #side {
    width: 288px;
  }
  #zone-dock {
    max-width: calc(100% - 20px);
    overflow-x: auto;
  }
}

@media (max-width: 767px) {
  .topbar {
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 10px;
  }
  .brand strong {
    font-size: 13px;
  }
  .search-wrap {
    flex: 1 1 100%;
    max-width: 100%;
    order: 2;
  }
  #views {
    flex: 1 1 100%;
    overflow-x: auto;
    padding-bottom: 2px;
    order: 3;
  }
  #closeup-btn, #toggle-rotate {
    display: none;
  }
  #side-toggle-btn {
    display: inline-block;
  }
  main {
    position: relative;
  }
  #side {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-height: 58vh;
    border-left: 0;
    border-top: 1px solid var(--line);
    border-radius: 14px 14px 0 0;
    z-index: 25;
    transform: translateY(calc(100% - 38px));
    transition: transform .22s ease;
    box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.55);
  }
  #side.drawer-open {
    transform: translateY(0);
  }
  #zone-dock {
    bottom: 46px;
    left: 8px;
    right: 8px;
    transform: none;
    max-width: none;
    overflow-x: auto;
    border-radius: 12px;
  }
  .statusbar {
    flex-wrap: wrap;
    gap: 6px 12px;
    padding: 4px 10px;
  }
}

/* ---------- 批次 37-39：深链分享栏与云端三画布互联 ---------- */
.share-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  margin-bottom: 10px;
  background: var(--dos-card);
  border: 1px solid var(--dos-line);
  border-radius: 8px;
}
.share-bar code {
  font-size: 12px;
  color: var(--dos-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.canvas-links {
  display: flex;
  gap: 10px;
  align-items: center;
}
.canvas-links a {
  color: #74bfe8;
  text-decoration: none;
  font-size: 12px;
}
.canvas-links a:hover {
  text-decoration: underline;
}
body[data-theme="light"] .canvas-links a {
  color: #396397;
}
