*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
 background:#0f1115;color:#e8e9ed;font:16px/1.7 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}
.card{width:100%;max-width:520px;background:#171a21;border:1px solid #242833;border-radius:20px;padding:34px}
h1{margin:0 0 6px;font-size:24px;font-weight:600;letter-spacing:-.02em}
.sub{margin:0 0 26px;color:#8b91a1;font-size:15px}
label{display:block;margin:16px 0 6px;font-size:15px;color:#b9bfcd}
input,textarea{width:100%;min-height:48px;padding:12px 14px;font:16px/1.5 inherit;color:#e8e9ed;
 background:#0f1115;border:1px solid #2b3040;border-radius:12px}
textarea{min-height:96px;resize:vertical}
input:focus,textarea:focus{outline:2px solid #4c8bf5;outline-offset:1px}
button{width:100%;min-height:52px;margin-top:22px;font:600 17px/1 inherit;color:#fff;cursor:pointer;
 background:#e5484d;border:none;border-radius:26px}
button:disabled{opacity:.5;cursor:default}
.msg{margin-top:18px;padding:14px 16px;border-radius:12px;font-size:15px;line-height:1.6;display:none}
.ok{background:#12301d;color:#7ee2a8;display:block}
.err{background:#31161a;color:#ff9a9a;display:block}
.note{margin-top:22px;padding-top:18px;border-top:1px solid #242833;color:#6f7688;font-size:14px;line-height:1.7}
a{color:#7fa9f5}
.lang-switch{position:fixed;z-index:10000;right:18px;top:14px;display:flex;align-items:center;gap:4px;
 padding:4px;background:#171a21e8;border:1px solid #343a49;border-radius:999px;box-shadow:0 8px 24px #0006}
.lang-switch button{width:auto;min-height:32px;margin:0;padding:0 10px;border-radius:999px;background:transparent;
 color:#8b91a1;font-size:13px}.lang-switch button.on{background:#2b3f66;color:#fff}.lang-switch span{color:#4b5262}
.safety-bi{margin:16px 0;padding:14px 16px;border:1px solid #74383c;border-left:4px solid #e5484d;
 border-radius:12px;background:#24171b;color:#ffc1c1;font-size:14px;line-height:1.65}
.safety-bi strong{color:#fff}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0 14px}
.small-btn{width:auto;min-height:38px;margin:0;padding:0 14px;border-radius:10px;background:#2b3f66;font-size:13px}
.small-btn.secondary{background:#2a2e39;color:#cbd1dc}.small-btn:disabled{opacity:.45}
.metric{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border:1px solid #303647;border-radius:999px;color:#aab2c2;font-size:12px}
.warn{color:#f0bd58}

/* ── 宽页(行为流查询)。横屏优先:左名册右轨迹,窄屏才上下堆叠 ── */
body.wide{display:block;padding:0}
.wrap{max-width:1500px;margin:0 auto;padding:20px 24px 60px}
.top{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;justify-content:space-between;
 padding:16px 0 14px;border-bottom:1px solid #242833;margin-bottom:20px}
.top h1{font-size:21px;margin:0}
.cols{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:22px;align-items:start}
@media (max-width:900px){.cols{grid-template-columns:1fr}}
.panel{background:#171a21;border:1px solid #242833;border-radius:16px;padding:18px 20px}
.panel h2{margin:0 0 4px;font-size:16px;font-weight:600}
.panel .hint{margin:0 0 14px;color:#6f7688;font-size:13px;line-height:1.6}
.scroll{max-height:70vh;overflow:auto;overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
th{position:sticky;top:0;background:#171a21;text-align:left;font-weight:600;color:#8b91a1;
 padding:8px 10px;border-bottom:1px solid #242833;white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid #1e222c;vertical-align:top}
tr.pick{cursor:pointer}
tr.pick:hover td{background:#1c202a}
tr.on td{background:#1f2839}
.k{font-family:ui-monospace,Menlo,Consolas,monospace;color:#9ec7ff}
.dim{color:#6f7688}
.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;
 background:#232838;color:#a8b2c8;white-space:nowrap}
.gap{color:#e0b341;font-size:12px}
.empty{padding:28px 4px;color:#6f7688;font-size:14px;line-height:1.8}
.search{min-height:44px;margin:0 0 12px}
.pill{display:inline-block;min-height:36px;padding:7px 14px;margin:0 8px 8px 0;border-radius:999px;
 background:#232838;color:#c8cfdd;border:1px solid #2b3040;cursor:pointer;font-size:14px}
.pill.on{background:#2b3f66;color:#fff;border-color:#3a5a9e}
pre.pl{margin:6px 0 0;padding:8px 10px;background:#0f1115;border-radius:8px;
 font:12px/1.6 ui-monospace,Menlo,Consolas,monospace;color:#9aa3b5;white-space:pre-wrap;word-break:break-word}

/* Diagram catalog pages contain navigation only; every actual diagram is an Archify deliverable. */
.catalog{max-width:1180px;margin:0 auto;padding:26px 24px 70px}.catalog .top{margin-bottom:16px}
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.catalog-card{display:block;padding:20px;border:1px solid #2b3040;border-radius:16px;background:#171a21;text-decoration:none}
.catalog-card:hover{border-color:#4c8bf5;background:#1b202a}.catalog-card b{display:block;color:#eef2f8;font-size:17px}
.catalog-card span{display:block;color:#8b91a1;font-size:13px;margin-top:5px}.level{color:#79a8ff;font:12px ui-monospace,monospace}
details.layer{margin:16px 0;border:1px solid #2b3040;border-radius:14px;background:#171a21}
details.layer>summary{cursor:pointer;padding:15px 18px;font-weight:600}details.layer>.inside{padding:0 18px 18px}
.diagram-body{display:block;padding:0;background:#0f1115}.diagram-shell{height:100vh;display:flex;flex-direction:column}
.diagram-bar{min-height:58px;display:flex;align-items:center;gap:14px;padding:8px 120px 8px 18px;border-bottom:1px solid #242833}
.diagram-bar a{text-decoration:none}.diagram-frame{width:100%;flex:1;border:0;background:#fff}
