.wrap{flex-direction:column;gap:14px;max-width:1600px;margin:0 auto;padding:18px 16px 28px;display:flex}header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:10px 24px;display:flex}h1{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:clamp(22px,3.4vw,32px);font-weight:800}.sub{color:var(--muted);max-width:68ch;margin:4px 0 0}.note{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:10px;max-width:46ch;padding:8px 12px;font-size:12.5px}.note b{color:var(--fg)}.note code,.mono{font-family:var(--font-mono);font-size:11.5px}.bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip,.ctl,.btn{color:var(--fg);background:var(--panel);border:1px solid var(--line);cursor:pointer;font-size:13px;font-weight:700}.chip{border-radius:999px;align-items:center;gap:8px;padding:7px 13px;display:inline-flex}.ctl{border-radius:10px;height:34px;padding:0 12px;font-weight:800}.btn{border-radius:10px;padding:8px 12px}.btn.ghost{background:0 0}.chip:hover,.ctl:hover,.btn:hover{background:var(--panel-2)}.chip:focus-visible,.ctl:focus-visible,.btn:focus-visible,.scn:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.ctl[aria-pressed=true]{background:var(--panel-2);border-color:var(--fg)}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.spacer{flex:1}.conn{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.conn .dot{background:#7d86b3}.conn.open .dot{background:#3ddc97;box-shadow:0 0 8px #3ddc97}.conn.error .dot{background:#ff5d6c}.main{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:14px;display:grid}.stage{border:1px solid var(--line);background:#2a2f4a;border-radius:16px;height:clamp(440px,76vh,860px);position:relative;overflow:hidden}.stage canvas{touch-action:none}.loading{color:var(--muted);place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.loading.err{color:#ff8a95;background:#0d1123d9}.capbar{pointer-events:none;justify-content:center;display:flex;position:absolute;top:10px;left:10px;right:10px}.capin{border:1px solid var(--line);background:#0d1123e6;border-radius:12px;flex-direction:column;gap:2px;max-width:780px;padding:9px 14px;display:flex}.capin .k{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-size:11px;font-weight:800}.capin .t{text-wrap:pretty;font-size:14.5px;font-weight:700}.legend{max-width:calc(100% - 20px);color:var(--muted);pointer-events:none;background:#0d1123e0;border-radius:10px;flex-direction:column;gap:3px;padding:7px 11px;font-size:12px;display:flex;position:absolute;bottom:10px;left:10px}.lg{flex-wrap:wrap;align-items:center;gap:3px 12px;display:flex}.lg b{color:var(--fg);margin-right:2px}.lg span{align-items:center;gap:5px;display:inline-flex}aside{flex-direction:column;gap:14px;min-width:0;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-width:0;padding:14px}.card h2{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:800}.card h3{color:var(--muted);margin:8px 0 0;font-size:12px}.muted{color:var(--muted);margin:0}.row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.scns{flex-direction:column;gap:6px;display:flex}.scn{text-align:left;color:var(--fg);background:var(--panel-2);cursor:pointer;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:1px;padding:8px 10px;display:flex}.scn:hover{border-color:var(--line)}.scn[aria-pressed=true]{border-color:var(--gold)}.scn b{font-size:13.5px}.scn span{color:var(--muted);font-size:12px}.who{flex-direction:column;gap:8px;display:flex}.who .nm{align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.pills{flex-wrap:wrap;gap:6px;display:flex}.pill{background:var(--panel-2);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.who ul{margin:0;padding-left:18px}.who li{margin:2px 0}.mini li{color:var(--muted);font-size:12.5px}.note-line{color:#ff8a95;margin:0;font-weight:700}.mono{color:var(--muted);overflow-wrap:anywhere}.aichip{background:var(--ai);color:#fff;border-radius:5px;padding:1px 6px;font-size:10px;font-style:normal;font-weight:800}.log{font-family:var(--font-mono);flex-direction:column;gap:4px;min-height:120px;font-size:11.5px;display:flex}.log div{color:var(--muted);overflow-wrap:anywhere}.log div:first-child{color:var(--fg)}.log time{color:#7d86b3;margin-right:6px}.o3d-stack{font-family:var(--font-ui);white-space:nowrap;flex-direction:column;align-items:center;gap:4px;display:flex}.o3d-tag{color:#fff;background:#0e1224e6;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:13px;font-weight:800;display:inline-flex}.o3d-tag i{border-radius:50%;width:9px;height:9px;display:inline-block}.o3d-tag b{background:var(--ai);border-radius:4px;padding:1px 5px;font-size:9px}.o3d-tag b.sys{background:#6b7399}.o3d-tag.is-selected{color:#151a30;background:#fff}.o3d-bubble{color:#fff;white-space:normal;text-align:center;background:#0e1224f5;border-radius:10px;max-width:260px;padding:5px 10px;font-size:13px;font-weight:700}.o3d-item{color:#0d1123;white-space:nowrap;font-size:12px;font-weight:800;font-family:var(--font-ui);border-radius:999px;padding:2px 9px}.o3d-zone{color:#fff;font-family:var(--font-ui);white-space:nowrap;background:#0e1224eb;border-left:4px solid;border-radius:8px;flex-direction:column;padding:6px 12px;display:flex}.o3d-zone strong{font-size:15px;font-weight:800}.o3d-zone span{color:#aab3dc;font-size:11.5px;font-weight:700}.seg{display:inline-flex}.seg .ctl{border-radius:0}.seg .ctl:first-child{border-radius:10px 0 0 10px}.seg .ctl:last-child{border-left:0;border-radius:0 10px 10px 0}.note.warn{border-color:var(--gold)}.note.warn b{color:var(--gold)}.small{font-size:12px}.acts,.srcs{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.acts li{flex-direction:column;gap:1px;font-size:13px;display:flex}.acts time{color:var(--gold);font-family:var(--font-mono);font-size:11px}.srow{align-items:center;gap:8px;font-size:13px;display:flex}.srow span{color:var(--muted);margin-left:auto;font-size:12px;font-weight:700}.srcs p{margin:2px 0 0 18px}.btn:disabled{opacity:.5;cursor:default}@media (max-width:1040px){.main{grid-template-columns:minmax(0,1fr)}.stage{height:clamp(400px,66vh,640px)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
