/* 本体可视化（view-ontology）：整文件 @scope 隔离，避免 .card/.btn/.tab/select/svg 等
   通用选择器泄漏到工作台全局（此前 .view{display:none} 泄漏曾干扰全部视图显隐） */
@scope (#view-ontology) {

  :scope {
    --bg:#0b1020; --bg2:#111a33; --card:#141d36; --card2:#1a2548;
    --border:#26315a; --text:#e6ecff; --muted:#8a98c8; --accent:#7c8cff;
    --green:#10b981; --sky:#0ea5e9; --amber:#f59e0b; --red:#ef4444;
    --purple:#8b5cf6; --indigo:#6366f1;
  }
  *{box-sizing:border-box}
  .wrap{max-width:1180px;margin:0 auto;padding:24px 20px 64px}
  header.hero{padding:28px 26px;border:1px solid var(--border);border-radius:18px;
    background:linear-gradient(135deg,rgba(124,140,255,.16),rgba(16,185,129,.08));
    box-shadow:0 10px 40px rgba(0,0,0,.35);}
  header.hero h1{margin:0 0 8px;font-size:26px;letter-spacing:.5px}
  header.hero p{margin:6px 0;color:var(--muted);font-size:14px;line-height:1.7}
  .pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;
    border:1px solid var(--border);background:var(--card);color:var(--text);margin-right:8px}
  .tabs{display:flex;gap:8px;margin:22px 0 14px;flex-wrap:wrap}
  .tab{padding:10px 16px;border-radius:12px;border:1px solid var(--border);
    background:var(--card);cursor:pointer;font-size:14px;color:var(--muted);transition:.2s}
  .tab:hover{color:var(--text)}
  .tab.active{background:linear-gradient(135deg,var(--accent),var(--indigo));color:#fff;border-color:transparent;
    box-shadow:0 6px 18px rgba(124,140,255,.35)}
  /* 本体系列 tab 面板（原误用顶层 .view 类导致嵌套面板被 navigateTo 误激活/误清活） */
  .onto-pane{display:none;animation:fade .25s ease}
  .onto-pane.active{display:block}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .grid2{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}
  @media(max-width:880px){.grid2{grid-template-columns:1fr}}
  .card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px}
  .card h3{margin:0 0 12px;font-size:15px;color:var(--text)}
  .card .sub{color:var(--muted);font-size:12.5px;line-height:1.7;margin-bottom:12px}
  .graphWrap{position:relative;width:100%;height:72vh;min-height:520px;
    background:linear-gradient(180deg,#0d1430,#0a0f22);border-radius:14px;border:1px solid var(--border);overflow:hidden}
  svg{width:100%;height:100%;display:block}
  .legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
  .legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
  .dot{width:11px;height:11px;border-radius:50%;display:inline-block}
  .node-circle{cursor:pointer;transition:.2s}
  .node-circle:hover{filter:brightness(1.25)}
  .edge-line{stroke:#3a4a82;stroke-width:1.4}
  .edge-label{fill:var(--muted);font-size:10px}
  .detail h4{margin:0 0 8px;font-size:14px}
  .kv{font-size:12.5px;line-height:1.9;color:var(--muted)}
  .kv b{color:var(--text)}
  .rel{font-size:12px;color:var(--sky);margin:3px 0}
  input[type=text]{width:100%;padding:11px 13px;border-radius:11px;border:1px solid var(--border);
    background:var(--bg2);color:var(--text);font-size:14px;outline:none}
  input[type=text]:focus{border-color:var(--accent)}
  .btn{margin-top:12px;padding:10px 16px;border-radius:11px;border:1px solid var(--border);
    background:var(--card2);color:var(--text);cursor:pointer;font-size:13.5px;transition:.2s}
  .btn:hover{border-color:var(--accent)}
  .btn.primary{background:linear-gradient(135deg,var(--accent),var(--indigo));border-color:transparent;color:#fff}
  .examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
  .ex{padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg2);
    cursor:pointer;font-size:12.5px;color:var(--muted)}
  .ex:hover{color:var(--text);border-color:var(--accent)}
  .out{margin-top:14px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;
    padding:14px;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;
    font-family:"SFMono-Regular",Consolas,Menlo,monospace;max-height:360px;overflow:auto}
  .out .ok{color:var(--green)} .out .warn{color:var(--amber)} .out .key{color:var(--accent)}
  .step{margin:10px 0;padding:12px 14px;border-radius:12px;background:var(--bg2);border:1px solid var(--border)}
  .step .t{font-size:13px;color:var(--text);font-weight:600;margin-bottom:6px}
  .step .b{font-size:12.5px;color:var(--muted);line-height:1.7}
  .tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;margin:2px 3px;
    background:var(--card2);border:1px solid var(--border);color:var(--sky)}
  .api-box{margin-top:10px;padding:12px 14px;border-radius:12px;background:#0a1a14;
    border:1px solid #1e4d3a;color:var(--green);font-family:Consolas,monospace;font-size:12.5px;white-space:pre-wrap}
  .api-box .m{color:var(--amber)}
  select{margin-top:12px;padding:9px 12px;border-radius:10px;border:1px solid var(--border);
    background:var(--bg2);color:var(--text);font-size:13px}
  .note{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.6}
  .badge-live{font-size:11px;color:var(--green);border:1px solid #1e4d3a;border-radius:6px;padding:1px 7px}
  .badge-local{font-size:11px;color:var(--sky);border:1px solid #1e3a5a;border-radius:6px;padding:1px 7px}
  .cap-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
  .cap-table th,.cap-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
  .cap-table th{color:var(--muted);font-weight:600;font-size:12px}
  .cap-table tr:hover td{background:var(--bg2)}
  .cap-table .ok{color:var(--green);font-weight:700}
  .cap-table .warn{color:var(--amber);font-weight:700}
  .cap-table code{background:var(--bg2);padding:1px 5px;border-radius:5px;font-size:12px}

}
