:root{color-scheme:dark;--bg-0: #020710;--bg-1: #071521;--panel: rgba(8, 22, 30, .78);--panel-2: rgba(10, 29, 41, .72);--line: rgba(66, 179, 202, .25);--line-soft: rgba(80, 190, 220, .12);--text-0: #e8fdff;--text-1: #8bc2d0;--text-2: #5f8796;--cyan: #30e0f0;--green: #4ee68e;--orange: #ff9f5a;--magenta: #ce6dff;--danger: #ff5f72;--font-ui: "Space Grotesk", "Noto Sans TC", sans-serif;--font-body: "Noto Sans TC", "PingFang TC", sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--text-0);background:radial-gradient(circle at 20% 10%,rgba(47,157,193,.16),transparent 38%),radial-gradient(circle at 80% 80%,rgba(86,231,173,.1),transparent 36%),linear-gradient(160deg,var(--bg-0),var(--bg-1) 45%,#011017);letter-spacing:.015em}a{color:inherit}.background-grid{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(79,164,184,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(79,164,184,.05) 1px,transparent 1px);background-size:44px 44px;opacity:.4;z-index:0}.app-shell{position:relative;z-index:1;display:grid;grid-template-columns:248px minmax(0,1fr);gap:12px;min-height:100vh;padding:12px}.glass{border:1px solid var(--line);background:linear-gradient(160deg,#081a23d9,#040e17b8),var(--panel);box-shadow:0 0 0 1px #35c6ee0a,0 22px 42px #02060a6b;backdrop-filter:blur(10px)}.sidebar{display:flex;flex-direction:column;border-radius:20px;overflow:hidden}.brand-block{padding:22px 16px 14px;border-bottom:1px solid var(--line-soft)}.logo-badge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;margin-bottom:10px;color:var(--cyan);background:#2bbce92e;border:1px solid rgba(67,201,239,.4)}.brand-title{margin:0;font-family:var(--font-ui);font-weight:700;letter-spacing:.08em;font-size:1.1rem}.brand-sub{margin:6px 0 0;color:var(--text-2);font-size:.76rem}.status-pill{margin-top:12px;display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:999px;font-size:.72rem;color:var(--text-1);border:1px solid rgba(82,208,235,.28);background:#0c2b3a75}.status-dot{width:8px;height:8px;border-radius:99px;background:var(--green);box-shadow:0 0 #64ffb873}.status-dot.is-pulse{animation:pulse .9s ease-in-out}.nav-list{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:0}.nav-item{width:100%;display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;text-align:left;border:1px solid transparent;color:var(--text-1);background:transparent;border-radius:12px;padding:11px 10px;cursor:pointer}.nav-item:hover{border-color:var(--line-soft);background:#0e2c3b99}.nav-item.is-active{color:var(--text-0);border-color:#48d9f561;background:linear-gradient(90deg,#174c618c,#0c26362e)}.nav-icon{font-size:.95rem;padding-top:2px}.nav-title{display:block;font-family:var(--font-ui);font-size:.95rem;letter-spacing:.02em}.nav-sub{display:block;margin-top:2px;color:var(--text-2);font-size:.74rem}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line-soft);padding:12px 14px 16px;color:var(--text-2);font-size:.74rem}.main-panel{min-width:0;display:flex;flex-direction:column;gap:12px}.topbar{border-radius:20px;padding:18px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center}.mini-label{margin:0;color:var(--text-2);font-family:var(--font-ui);letter-spacing:.12em;font-size:.68rem}.page-title{margin:8px 0 0;font-family:var(--font-ui);font-size:clamp(1.5rem,2.2vw,2rem);letter-spacing:.03em}.page-subtitle{margin:4px 0 0;font-size:.86rem;color:var(--text-1)}.top-actions{display:flex;align-items:center;gap:10px}.action-btn{border:1px solid rgba(78,221,255,.4);color:var(--text-0);background:#0c33458f;border-radius:11px;padding:9px 12px;font-family:var(--font-ui);font-size:.8rem;letter-spacing:.04em;cursor:pointer}.action-btn:hover{filter:brightness(1.08)}.action-btn.is-running{opacity:.75;pointer-events:none}.sync-badge{border-radius:999px;border:1px solid rgba(82,208,235,.33);background:#0c2b3a75;color:var(--text-1);font-size:.74rem;padding:8px 10px}.content-section{display:none;flex-direction:column;gap:12px}.content-section.is-active{display:flex}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px}.hero-card,.signal-panel,.panel-card{border-radius:20px;padding:16px}.hero-card h2{margin:0;font-size:clamp(1.5rem,2.2vw,2rem)}.hero-meta{margin:6px 0 10px;color:var(--text-1);font-size:.86rem}.hero-text{margin:10px 0;color:#aedbe8;line-height:1.85;font-size:.9rem}.tag-row{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}.tag{border:1px solid rgba(83,192,230,.28);color:var(--text-1);border-radius:999px;padding:5px 10px;font-size:.75rem;background:#102f409e}.signal-title{margin:0 0 12px;color:var(--text-2);font-family:var(--font-ui);font-size:.76rem;letter-spacing:.08em}.signal-list{display:flex;flex-direction:column;gap:9px}.signal-item{border:1px solid var(--line-soft);background:#0b2533a3;border-radius:12px;padding:8px 9px}.signal-item strong{display:block;font-size:.85rem;font-family:var(--font-ui)}.signal-item span{display:block;margin-top:4px;color:var(--text-1);font-size:.72rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{border-radius:16px;padding:12px 14px;border:1px solid var(--line-soft);background:var(--panel-2)}.metric-label{margin:0;color:var(--text-2);font-family:var(--font-ui);font-size:.72rem;letter-spacing:.08em}.metric-value{margin:8px 0 0;font-family:var(--font-ui);font-weight:700;font-size:1.6rem}.metric-value.tone-cyan{color:var(--cyan)}.metric-value.tone-purple{color:var(--magenta)}.metric-value.tone-orange{color:var(--orange)}.metric-value.tone-green{color:var(--green)}.split-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px}.panel-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}.panel-title-row h3{margin:0;font-family:var(--font-ui);font-size:.95rem;color:#7dd6eb;letter-spacing:.08em}.panel-note{color:var(--text-2);font-size:.76rem}.graph-board{position:relative;min-height:360px;border:1px dashed rgba(77,190,222,.28);border-radius:16px;overflow:hidden;background:radial-gradient(circle at 15% 20%,rgba(56,229,212,.2),transparent 30%),radial-gradient(circle at 70% 72%,rgba(197,92,255,.16),transparent 28%),#03121ab8}.graph-links{position:absolute;inset:0;width:100%;height:100%}.graph-links line{stroke-width:.38;stroke-linecap:round;opacity:.8}.graph-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);border:1px solid color-mix(in srgb,var(--node-color) 68%,#fff 8%);background:color-mix(in srgb,var(--node-color) 20%,#071927 80%);color:#e9fcff;min-width:calc(var(--size) + 34px);padding:10px 12px;border-radius:999px;font-size:.82rem;font-family:var(--font-ui);white-space:nowrap;box-shadow:0 0 24px color-mix(in srgb,var(--node-color) 45%,transparent);cursor:pointer}.graph-node:before{content:"";position:absolute;inset:2px;border-radius:999px;border:1px solid color-mix(in srgb,var(--node-color) 46%,transparent);opacity:.85}.graph-node:hover,.graph-node:focus-visible{transform:translate(-50%,-50%) scale(1.06);outline:none}.node-inspector{margin-top:10px;border:1px solid var(--line-soft);border-radius:12px;padding:10px 12px;background:#0a243180}.node-inspector h4{margin:0;font-family:var(--font-ui);color:var(--cyan);font-size:.9rem}.node-inspector p{margin:6px 0 0;color:var(--text-1);font-size:.82rem;line-height:1.7}.ref-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ref-card{display:block;border:1px solid var(--line-soft);border-radius:12px;padding:10px;background:#09222fa3;transition:.16s ease}.ref-card:hover{transform:translateY(-2px);border-color:#5bdeff73;background:#0b2b3bc7}.ref-type{display:inline-block;color:#00141d;background:#65e5ffe6;border-radius:999px;font-size:.66rem;font-family:var(--font-ui);padding:2px 7px}.ref-card h4{margin:7px 0 0;font-size:.86rem;line-height:1.3}.ref-card p{margin:5px 0 0;color:var(--text-1);font-size:.74rem;line-height:1.55}.table-wrap{border-radius:16px;border:1px solid var(--line-soft);overflow:hidden}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{border-bottom:1px solid rgba(74,174,201,.17);padding:10px;font-size:.78rem;text-align:left}.table-wrap th{color:var(--text-2);font-family:var(--font-ui);font-size:.72rem;letter-spacing:.08em;background:#081f2bbf}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:.68rem;border:1px solid transparent}.status-badge.ok{color:#76f6c1;border-color:#63f8bd80;background:#24644a59}.status-badge.warn{color:#ffd29f;border-color:#ffb45a80;background:#5e3e1759}.status-badge.wait{color:#9dd8ff;border-color:#67b6ff7a;background:#123c6652}.ops-log{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.ops-log li{border:1px solid var(--line-soft);border-radius:10px;background:#0a27358c;padding:8px 10px;display:flex;justify-content:space-between;gap:10px;font-size:.76rem}.ops-log .time{color:var(--text-2);white-space:nowrap}.ops-log li.tone-ok{border-color:#58e8ae57}.ops-log li.tone-warn{border-color:#ffb15d59}.timeline-filter{display:flex;flex-wrap:wrap;gap:8px}.chip{border-radius:999px;border:1px solid rgba(87,190,220,.3);color:var(--text-1);background:#0e2d3d70;font-size:.75rem;padding:6px 10px;cursor:pointer}.chip.is-active{color:#02141a;border-color:#66ecff99;background:#53dcf6}.timeline-wrap{margin-top:12px;position:relative;padding-left:24px}.timeline-wrap:before{content:"";position:absolute;left:9px;top:6px;bottom:8px;width:2px;background:linear-gradient(#53dcf6,#53dcf60d)}.timeline-group{margin-bottom:14px}.timeline-date{margin:0 0 8px;color:#76deef;font-family:var(--font-ui);font-size:.9rem}.timeline-entry{display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line-soft);border-radius:10px;background:#0a2331b3;padding:8px 10px;margin-bottom:8px}.timeline-entry.is-hidden{display:none}.timeline-dot{width:8px;height:8px;border-radius:99px;background:var(--cyan);box-shadow:0 0 12px #44d9ffb3}.timeline-title{margin:0;font-size:.84rem}.timeline-meta{margin:3px 0 0;color:var(--text-2);font-size:.72rem}.entry-kind{border-radius:999px;border:1px solid var(--line-soft);color:var(--text-1);font-size:.67rem;padding:2px 7px}.search-row{display:flex;align-items:center;gap:10px;margin-top:8px}.search-input{flex:1;min-width:200px;border-radius:12px;border:1px solid var(--line-soft);color:var(--text-0);background:#09212eb8;padding:10px;font-size:.84rem}.search-input:focus-visible{outline:1px solid rgba(88,222,255,.75)}.knowledge-grid{margin-top:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.knowledge-card{border:1px solid var(--line-soft);border-radius:14px;padding:12px;background:#08202cb3}.knowledge-card.is-hidden{display:none}.knowledge-card h4{margin:0;font-size:.9rem}.knowledge-meta{margin:4px 0 0;color:var(--text-2);font-size:.72rem}.knowledge-card p{margin:8px 0 0;color:var(--text-1);line-height:1.6;font-size:.76rem}.health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.health-card{border:1px solid var(--line-soft);border-radius:14px;padding:12px;background:#08202cb3}.health-card h4{margin:0;font-size:.84rem}.health-card p{margin:6px 0 0;color:var(--text-1);font-size:.75rem;line-height:1.6}.health-card .health-state{margin-top:8px;font-family:var(--font-ui);font-size:.8rem}.code-note{margin-top:8px;padding:10px;border:1px solid var(--line-soft);border-radius:12px;font-family:JetBrains Mono,SFMono-Regular,Menlo,monospace;color:#94d6e8;background:#06161fe6;font-size:.73rem;overflow-x:auto}@keyframes pulse{0%{box-shadow:0 0 #64ffb873}to{box-shadow:0 0 0 10px #64ffb800}}@media(max-width:1240px){.split-grid{grid-template-columns:1fr}.knowledge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{border-radius:16px}.nav-list{flex-direction:row;overflow-x:auto}.nav-item{min-width:180px}.hero-grid{grid-template-columns:1fr}.metric-grid,.knowledge-grid,.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.app-shell{padding:8px;gap:8px}.topbar{padding:14px}.metric-grid,.knowledge-grid,.health-grid,.ref-grid{grid-template-columns:1fr}.top-actions{width:100%}.action-btn{flex:1}}
