:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Noto Sans TC,sans-serif;color:#18231d;background:#edf0e8;font-synthesis:none}*{box-sizing:border-box}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #d97842;outline-offset:2px}html,body,#root{width:100%;min-width:320px;min-height:100vh;margin:0}.workspace{min-height:100vh;padding:28px;background:radial-gradient(circle at 83% 0%,#d6e1cd 0,transparent 32rem),#edf0e8}.topbar{max-width:1480px;margin:auto;display:flex;align-items:end;justify-content:space-between;gap:24px;padding:8px 0 23px;border-bottom:1px solid #b9c1b6}.eyebrow{color:#68756b;font:700 11px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;margin:0 0 8px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,"Noto Serif TC",serif;font-weight:500}h1{font-size:clamp(26px,4vw,43px);letter-spacing:-.04em;margin-bottom:0}h2{font-size:21px;letter-spacing:-.025em;margin-bottom:8px}h3{font-size:14px;margin:20px 0 9px}.connection,.draft{border:1px solid #b9c1b6;border-radius:99px;padding:8px 11px;color:#59675d;font:700 11px ui-monospace,monospace;white-space:nowrap}.connection.live{background:#193f30;color:#ecf4e8;border-color:#193f30}.notice{max-width:1480px;margin:16px auto;padding:12px 15px;display:flex;gap:14px;background:#fffdf8b8;border-left:4px solid #d97842;color:#405046;font-size:13px}.notice strong{white-space:nowrap}.layout{max-width:1480px;margin:auto;display:grid;grid-template-columns:270px minmax(0,1fr) 310px;gap:1px;background:#b9c1b6;border:1px solid #b9c1b6}.sidebar,.content,.detail,.review-card{background:#fffdf8}.sidebar,.detail{padding:20px}.sidebar label{display:grid;gap:8px;color:#526058;font-size:12px;font-weight:700}input{width:100%;padding:10px;border:1px solid #bcc5ba;border-radius:3px;background:#fffdf8}.connection-panel{margin-top:18px;padding:12px;border:1px solid #dde2d9;background:#f8f8f1}.connection-panel label{margin-top:9px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.connect-button{width:100%;margin-top:10px;padding:10px 11px;border:1px solid #193f30;background:#193f30;color:#f4f5ec;font-size:12px;font-weight:700}.connect-button:disabled{opacity:.6;cursor:default}.secondary-button{width:100%;margin-top:7px;padding:9px 11px;border:1px solid #abb8ac;background:#fffdf8;color:#244031;font-size:12px}.filter-list{display:grid;gap:2px;margin:18px 0}.filter-list button{border:0;text-align:left;padding:9px 8px;color:#47564d;background:transparent}.filter-list button.selected,.filter-list button:hover{background:#e7eee4;color:#183e30}.muted{color:#718078;font-size:13px;line-height:1.55}.content{min-height:580px;padding:22px}.graph-heading{display:flex;justify-content:space-between;gap:15px;align-items:start}.graph-heading span{color:#68756b;font:11px ui-monospace,monospace}.status-line{margin-bottom:14px;padding:10px 12px;border:1px solid #dfe4da;background:#f8f8f1;color:#53635a;font-size:13px;line-height:1.45}.graph-canvas{margin-top:15px;height:365px;overflow:hidden;background:linear-gradient(#f6f7f1 1px,transparent 1px),linear-gradient(90deg,#f6f7f1 1px,transparent 1px),#fdfdf9;background-size:22px 22px;border:1px solid #dde2d9}.graph-canvas svg{width:100%;height:100%}.graph-edge{stroke:#bbcabd;stroke-width:1.2}.graph-node{cursor:pointer}.graph-node circle{fill:#557d63;stroke:#fffdf8;stroke-width:3;transition:r .15s,fill .15s}.graph-node circle.active{fill:#d97842}.graph-node text{fill:#183e30;font:600 13px Inter,sans-serif;paint-order:stroke;stroke:#fffdf8;stroke-width:5px;stroke-linejoin:round}.node-list{display:flex;gap:7px;overflow:auto;padding-top:14px}.node-list button{flex:0 0 140px;padding:10px;border:1px solid #d9dfd6;text-align:left;background:#fffdf8;color:#253a2d}.node-list button:hover{background:#e7eee4}.node-list small{display:block;margin-top:5px;color:#738078;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail{overflow:auto}.path{font:11px ui-monospace,monospace;color:#6d796f;word-break:break-word}.provenance{border-top:1px solid #dde2d9;border-bottom:1px solid #dde2d9;padding:11px 0;color:#59675d;font-size:12px}.markdown{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.markdown pre{overflow:auto;padding:10px;background:#f1f3ed}.markdown a{color:#ad4d26}.tag{display:inline-block;margin:0 5px 5px 0;padding:4px 6px;background:#e7eee4;color:#345140;font-size:11px}.error{color:#a33b27;font-size:13px}.empty-state{max-width:550px;margin:110px auto;padding:25px;border:1px dashed #a9b7aa;color:#53635a}.review-grid{max-width:1480px;margin:18px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:18px}.review-card{padding:21px;border-top:3px solid #193f30;box-shadow:0 8px 22px #4050460b}.card-title{display:flex;gap:12px;justify-content:space-between}.review-card>p{color:#5d6c63;font-size:13px;line-height:1.55}.review-card ul{padding:0;margin:16px 0;list-style:none;border-top:1px solid #e2e5de}.review-card li{padding:11px 0;border-bottom:1px solid #e2e5de;font-size:13px}.review-card li b{display:inline-block;min-width:57px;color:#a64c2b;font:700 11px ui-monospace,monospace;text-transform:uppercase}.review-card li span{color:#405046}.inline-actions{display:inline-flex;gap:5px;margin:7px 0 0 57px}.review-card small{display:block;margin:6px 0 0 57px;color:#557d63}.actions{display:flex;gap:9px;flex-wrap:wrap}.actions button,.inline-actions button{padding:9px 11px;border:1px solid #abb8ac;background:#fffdf8;color:#244031;font-size:12px}.actions .primary,.inline-actions button:first-child{background:#193f30;border-color:#193f30;color:#f4f5ec}.actions button:disabled,.inline-actions button:disabled{opacity:.55;cursor:default}@media (max-width: 960px){.workspace{padding:16px}.layout{grid-template-columns:180px minmax(0,1fr)}.detail{grid-column:1 / -1;border-top:1px solid #b9c1b6}.review-grid{grid-template-columns:1fr}}@media (max-width: 650px){.topbar,.notice{align-items:start;flex-direction:column}.layout{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #b9c1b6}.filter-list{grid-template-columns:repeat(2,1fr)}.graph-canvas{height:300px}.content{min-height:0}.detail{grid-column:auto}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important}}
