.workspace{--canvas:var(--background);--surface-2:var(--secondary);--surface-3:color-mix(in srgb, var(--foreground) 8%, var(--background));background:var(--background);height:100dvh;color:var(--foreground);grid-template-rows:54px minmax(0,1fr);grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.workspace .topbar,.workspace .brand,.workspace .top-actions,.workspace .segmented,.workspace .diagram-path,.workspace .editor-heading,.workspace .port-row,.workspace .json-actions,.workspace .floating,.workspace .toolbar,.workspace .zoom{align-items:center;gap:.35rem;display:flex}.workspace .topbar{border-bottom:1px solid var(--border);background:var(--card);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem;padding:0 .75rem;display:grid}.workspace .mode-center,.workspace .top-end{align-items:center;gap:.4rem;min-width:0;display:flex}.workspace .mode-center{justify-self:center}.workspace .top-end{justify-self:end}.workspace .mermaid-view{z-index:8;background:var(--canvas);flex-direction:column;gap:.5rem;padding:12px;display:flex;position:absolute;inset:0;overflow:auto}.workspace .view-bar,.workspace .view-list{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.workspace .view-bar{color:var(--foreground);font-size:12px}.workspace .view-bar span,.workspace .view-editor>span{color:var(--muted-foreground);font-size:10px}.workspace .view-canvas{flex:1;place-items:center;min-height:240px;display:grid}.workspace .view-canvas svg{max-width:100%;height:auto}.workspace .view-editor{gap:.4rem;display:grid}.workspace .view-list button{border:1px solid var(--border);color:var(--foreground);background:0 0;border-radius:999px;padding:.15rem .5rem;font-size:10px}.workspace .view-list button.active{background:var(--foreground);color:var(--background)}.workspace .view-source{border:1px solid var(--border);background:var(--surface-2);width:100%;min-height:9rem;color:var(--foreground);resize:vertical;border-radius:8px;padding:.5rem;font-family:ui-monospace,monospace;font-size:11px}.workspace .spacer{flex:1}.workspace .brand{gap:.5rem;min-width:0}.workspace .brand h1{margin:0;font-size:12.5px;line-height:1.15}.workspace .brand small,.workspace .help,.workspace .inspector small{color:var(--muted-foreground);font-size:10px;line-height:1.4}.workspace .brand small{margin-top:2px;display:block}.workspace .logo{background:var(--foreground);width:29px;height:29px;color:var(--background);border-radius:8px;flex:none;place-items:center;font-size:11px;font-weight:800;display:grid}.workspace .segmented{border:1px solid var(--border);background:var(--surface-2);border-radius:9px;padding:3px}.workspace .segmented.full{width:100%}.workspace .theme-select{border:1px solid var(--border);background:var(--surface-2);height:32px;color:var(--foreground);border-radius:8px;padding:0 .5rem;font-size:11px}.workspace .topbar button,.workspace .segmented button,.workspace .floating button,.workspace .toolbar button,.workspace .zoom button,.workspace .tabs button{height:32px}.workspace .layout{grid-template-columns:235px minmax(0,1fr) 330px;min-height:0;display:grid}.workspace .sidebar,.workspace .inspector{background:var(--card);min-height:0;overflow:auto}.workspace .sidebar{border-right:1px solid var(--border)}.workspace .inspector{border-left:1px solid var(--border)}.workspace .sidebar section,.workspace .panel{border-bottom:1px solid var(--border);gap:.55rem;padding:12px;display:grid}.workspace h2{color:var(--muted-foreground);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:9.5px}.workspace .help,.workspace .empty p{margin:0}.workspace .inventory-list{gap:.45rem;display:grid}.workspace .metric{border-bottom:1px dashed var(--border);justify-content:space-between;padding:5px 0;font-size:10px;display:flex}.workspace .metric span:last-child{font-weight:700}.workspace .full-button{width:100%}.workspace .canvas-shell{background:var(--canvas);grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;position:relative}.workspace .viewport{cursor:crosshair;touch-action:none;background-image:radial-gradient(circle, var(--border) .9px, transparent .9px);background-size:22px 22px;min-height:0;position:relative;overflow:hidden}.workspace .world{transform-origin:0 0;width:2400px;height:1800px;position:absolute;inset:0 auto auto 0}.workspace .edges{width:2400px;height:1800px;color:var(--muted-foreground);position:absolute;inset:0;overflow:visible}.workspace .edges path.edge-line{fill:none;stroke:var(--muted-foreground);stroke-width:1.7px;pointer-events:none;transition:stroke .28s,stroke-width .28s,opacity .28s}.workspace .edges path.edge-hit{fill:none;stroke:#0000;stroke-width:14px;cursor:pointer}.workspace .edges.dots .edge-label{display:none}.workspace .edges.dots path.edge-line{stroke:var(--muted-foreground);stroke-width:calc(1px * var(--link,1));opacity:.7}.workspace .edges.dots path.edge-line.hot{stroke:var(--foreground);stroke-width:1.35px;opacity:1}.workspace .edges.dots path.edge-line.dim{opacity:.12}.workspace .edge-label{fill:var(--muted-foreground);stroke:var(--canvas);stroke-width:4px;paint-order:stroke;pointer-events:none;font-size:9px}.workspace .edges path.edge-line.hot{stroke:var(--primary);stroke-width:2.8px}.workspace .edges path.edge-line.dim{opacity:.08}.workspace .edges marker path{fill:currentColor}.workspace .node{border:1px solid var(--border);background:var(--card);box-shadow:0 14px 38px var(--shadow-color);cursor:pointer;border-radius:10px;flex-direction:column;padding:8px 10px;display:flex;position:absolute;overflow:visible}.workspace .node.selected,.workspace .node.hot{outline:2px solid var(--primary);outline-offset:2px}.workspace .node.connecting{outline:2px solid var(--success);outline-offset:2px}.workspace .node.dim{opacity:.1}.workspace .node.context{border-style:dashed}.workspace .node-head{min-width:0}.workspace .node-select{text-align:left;justify-content:flex-start;width:100%;padding:0;white-space:normal!important;height:auto!important}.workspace .node-select span{gap:.15rem;min-width:0;display:grid}.workspace .node-select strong{font-size:11.5px;font-weight:750;line-height:1.25;white-space:normal!important}.workspace .node-select small{color:var(--muted-foreground);font-size:9.5px;line-height:1.3;display:block;white-space:normal!important}.workspace .node-tags{color:var(--muted-foreground);white-space:nowrap;gap:.25rem;margin-top:6px;font-size:8.5px;display:flex;overflow:hidden}.workspace .chip,.workspace .status,.workspace .mobile-card em{border:1px solid var(--border);background:var(--surface-2);color:var(--muted-foreground);border-radius:999px;padding:0 .35rem;font-size:8.5px;font-style:normal}.workspace .port-side{z-index:2;flex-direction:column;justify-content:center;gap:8px;display:flex;position:absolute;top:10px;bottom:10px}.workspace .port-side.inputs{align-items:flex-start;left:0;transform:translate(-6px)}.workspace .port-side.outputs{align-items:flex-end;right:0;transform:translate(6px)}.workspace .port{max-width:84px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:flex}.workspace .port.out{flex-direction:row-reverse}.workspace .port-label{background:var(--card);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;max-width:70px;padding:1px 3px;font-size:8px;overflow:hidden}.workspace .socket{border:2px solid var(--card);background:var(--muted-foreground);width:12px;height:12px;box-shadow:0 0 0 1px var(--border);border-radius:50%;flex:none}.workspace .port:hover .socket,.workspace .port.active .socket{background:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 35%, transparent)}.workspace .tag-check{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;align-items:center;gap:.25rem;padding:.12rem .4rem;font-size:9px;display:inline-flex}.workspace .tag-check input{margin:0}.workspace .filter-wrap{position:relative}.workspace .filter-toggle,.workspace .clear-filters,.workspace .sort-row button,.workspace .active-tags button{border:1px solid var(--border);background:var(--surface-2);color:var(--foreground);cursor:pointer;border-radius:8px}.workspace .filter-toggle{justify-content:space-between;align-items:center;width:100%;height:32px;padding:0 .55rem;font-size:11px;display:flex}.workspace .filter-backdrop{z-index:5;cursor:default;background:0 0;border:0;position:fixed;inset:0}.workspace .filter-menu{z-index:6;border:1px solid var(--border);background:var(--card);max-height:320px;box-shadow:0 16px 40px var(--shadow-color);border-radius:10px;gap:.35rem;padding:8px;display:grid;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.workspace .filter-menu strong{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;margin-top:.2rem;font-size:9px}.workspace .filter-menu .tag-check{border-radius:6px;justify-content:flex-start;width:100%}.workspace .sort-row{color:var(--muted-foreground);align-items:center;gap:.3rem;font-size:9px;display:flex}.workspace .sort-row button,.workspace .clear-filters,.workspace .active-tags button{height:22px;padding:0 .4rem;font-size:9px}.workspace .sort-row button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.workspace .clear-filters{justify-self:start}.workspace .active-tags{flex-wrap:wrap;gap:.3rem;margin-top:.4rem;display:flex}.workspace .dot{z-index:2;width:0;height:0;position:absolute;overflow:visible}.workspace .dot.dim{opacity:.16}.workspace .dot-hit{transform:translate(calc(var(--r) * -1), -50%);color:var(--muted-foreground);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:flex;position:absolute;top:0;left:0}.workspace .dot.dragging .dot-hit,.workspace .node.dragging{cursor:grabbing}.workspace .marquee{z-index:6;pointer-events:none;position:absolute}.workspace .marquee.window{border:1.5px solid var(--ring);background:color-mix(in srgb, var(--ring) 16%, transparent)}.workspace .marquee.crossing{border:1.5px dashed var(--success);background:color-mix(in srgb, var(--success) 16%, transparent)}.workspace .forces{z-index:5;border:1px solid var(--border);background:color-mix(in srgb, var(--card) 92%, transparent);width:220px;color:var(--foreground);border-radius:10px;gap:6px;padding:10px;font-size:11px;display:grid;position:absolute;top:12px;left:12px}.workspace .forces p,.workspace .forces label{gap:2px;margin:0;display:grid}.workspace .force-layouts,.workspace .force-actions{gap:4px;display:flex}.workspace .forces button{border:1px solid var(--border);height:26px;color:inherit;font:inherit;background:0 0;border-radius:6px;flex:1}.workspace .forces button[aria-pressed=true]{background:var(--accent);color:var(--accent-foreground)}.workspace .forces input[type=range]{width:100%}.workspace .dot-mark{width:calc(var(--r) * 2);height:calc(var(--r) * 2);background:var(--dot);border-radius:50%;flex:none;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s}.workspace .dot.selected .dot-mark,.workspace .dot.hot .dot-mark{box-shadow:0 0 0 4px color-mix(in srgb, var(--dot) 42%, transparent);transform:scale(1.45)}.workspace .dot-label{white-space:nowrap;font-size:11px;font-weight:450;line-height:1;transition:color .22s,opacity .22s}.workspace .dot.selected .dot-label,.workspace .dot.hot .dot-label{color:var(--foreground);font-weight:600}.workspace .panel .theme-select{width:100%}.workspace .floating,.workspace .toolbar,.workspace .status,.workspace .zoom{z-index:4;border:1px solid var(--border);background:var(--card);box-shadow:0 10px 28px var(--shadow-color);border-radius:10px;position:absolute}.workspace .toolbar{padding:4px;bottom:10px;left:50%;transform:translate(-50%)}.workspace .toolbar span{min-width:40px;color:var(--muted-foreground);text-align:center;font-size:9px}.workspace .status{color:var(--muted-foreground);padding:6px 8px;font-size:9.5px;bottom:10px;left:10px}.workspace .zoom{padding:4px;bottom:10px;right:10px}.workspace .zoom span{min-width:40px;color:var(--muted-foreground);text-align:center;font-size:9px}.workspace .edge-strip{border-top:1px solid var(--border);background:var(--card);flex-wrap:nowrap;gap:.35rem;max-width:100%;height:40px;padding:.35rem;display:flex;overflow-x:auto}.workspace .edge-strip button{white-space:nowrap;height:auto;min-height:1.75rem}.workspace .tabs{z-index:2;border-bottom:1px solid var(--border);background:var(--card);display:flex;position:sticky;top:0}.workspace .tabs button{color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;font-size:10.5px}.workspace .tabs button.active{border-bottom-color:var(--primary);color:var(--foreground)}.workspace label{color:var(--muted-foreground);gap:4px;font-size:9px;display:grid}.workspace textarea,.workspace .json{resize:vertical;border:1px solid var(--border);background:var(--surface-2);width:100%;min-height:4.5rem;color:var(--foreground);border-radius:8px;padding:8px;font:9px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.workspace .json{min-height:520px}.workspace .port-editor{grid-template-columns:1fr 1fr;gap:8px;display:grid}.workspace .port-row input{min-width:0}.workspace .inventory-item{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:7px;display:grid}.workspace .inventory-item div{gap:.15rem;min-width:0;display:grid}.workspace .inventory-item strong{word-break:break-word;font-size:10px}.workspace .empty{color:var(--muted-foreground);text-align:center;padding:25px 6px;font-size:10px}.workspace .empty b{color:var(--foreground);margin-bottom:.4rem;display:block}.workspace .toast{pointer-events:none;z-index:40;background:var(--foreground);max-width:min(28rem,100% - 1.5rem);color:var(--background);border-radius:10px;padding:.65rem .85rem;font-size:.85rem;position:fixed;bottom:.75rem;right:.75rem}.workspace .empty-map{z-index:3;text-align:center;background:color-mix(in srgb, var(--canvas) 88%, transparent);place-content:center;justify-items:center;gap:.75rem;padding:1.5rem;display:grid;position:absolute;inset:0}.workspace .empty-map p{max-width:22rem;margin:0}.workspace .mobile-map{gap:.65rem;margin:0;padding:.75rem;list-style:none;display:none}.workspace .mobile-card{border:1px solid var(--border);background:var(--card);width:100%;min-height:44px;color:inherit;text-align:left;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.8rem .85rem;display:flex}.workspace .mobile-card span{gap:.15rem;min-width:0;display:grid}.workspace .mobile-card.selected{outline:2px solid var(--primary)}.workspace .mobile-card.hot,.workspace .mobile-edge.hot{border-color:var(--primary)}.workspace .mobile-edge{border:1px solid var(--border);background:var(--surface-2);text-align:left;width:100%;color:var(--muted-foreground);border-radius:8px;margin:.35rem 0 0 .2rem;padding:.5rem;font-size:.8rem;display:block}.workspace .mobile-edge[aria-pressed=true]{outline:2px solid var(--primary)}.workspace .mobile-tools,.workspace .mobile-help,.workspace .mobile-inspect,.workspace .mobile-port-action,.workspace .mobile-physics{display:none}.workspace .count{opacity:.7;margin-left:.25rem}.workspace .diagram-path{flex-wrap:wrap;min-width:0}@media (width<=64rem){.workspace{grid-template-rows:auto auto;height:auto;min-height:100dvh;overflow:visible}.workspace .topbar{flex-wrap:wrap;height:auto;padding:.65rem;display:flex}.workspace .mode-center,.workspace .top-end,.workspace .top-actions{flex-wrap:wrap;max-width:100%}.workspace .top-end{width:100%}.workspace .top-actions{flex:12rem}.workspace .brand>div,.workspace .layout,.workspace .sidebar,.workspace .inspector,.workspace .mobile-map>li{min-width:0}.workspace .brand small,.workspace .diagram-path,.workspace .panel,.workspace .mobile-card,.workspace .mobile-edge,.workspace .mobile-inspect,.workspace .mobile-tools{overflow-wrap:anywhere}.workspace button,.workspace select,.workspace input:not([type=checkbox]),.workspace .tag-check{min-height:44px}.workspace button{white-space:normal;min-width:44px;height:auto}.workspace input:not([type=checkbox]),.workspace textarea,.workspace select{max-width:100%;font-size:16px}.workspace .help,.workspace label,.workspace h2,.workspace .metric,.workspace .tabs button,.workspace .tag-check,.workspace .filter-toggle{font-size:14px}.workspace .filter-menu{max-height:50dvh;margin-top:.5rem;position:relative;top:auto}.workspace .filter-backdrop{display:none}.workspace .brand{flex:12rem}.workspace .spacer{display:none}.workspace .layout{flex-direction:column;display:flex}.workspace .sidebar{border-right:0;order:1;overflow:visible}.workspace .search-section{border-bottom:1px solid var(--border);background:var(--card);order:1}.workspace .canvas-shell{order:2;height:auto;min-height:0;display:block}.workspace .inspector{border-left:0;border-top:1px solid var(--border);order:3;width:auto}.workspace .viewport{cursor:default;touch-action:pan-y;background-image:none;height:auto;min-height:0;overflow:visible}.workspace .empty-map{min-height:12rem;position:relative}.workspace .mobile-tools{z-index:9;background:var(--card);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.65rem;display:flex;position:sticky;top:0}.workspace .mobile-tools a{flex:8rem;min-width:0}.workspace .mobile-inspect,.workspace .mobile-tools a{min-height:44px;color:var(--primary);align-items:center;padding:.5rem;text-decoration:underline;display:flex}.workspace .mobile-help{margin:0;padding:.65rem;font-size:14px;display:block}.workspace .mobile-port-action{display:inline-flex}.workspace .port-editor>.mobile-help{padding:0}.workspace #diagram-inspector,.workspace #diagram-map{scroll-margin-top:6rem}.workspace .world,.workspace .floating,.workspace .toolbar,.workspace .forces,.workspace .status,.workspace .zoom,.workspace .edge-strip{display:none}.workspace .mobile-map{display:grid}.workspace .mobile-card{flex-wrap:wrap}.workspace .mobile-card>span:first-child{flex:10rem}.workspace .mobile-edge{margin-left:0}.workspace .mermaid-view{min-width:0;position:relative}.workspace .viewport.has-view .mobile-map{display:none}.workspace.phone-canvas .viewport:not(.has-view){touch-action:none;height:max(26rem,65dvh);overflow:hidden}.workspace.phone-canvas .world{display:block}.workspace.phone-canvas .mobile-map{display:none}.workspace.phone-canvas .toolbar{flex-wrap:wrap;display:flex;bottom:.5rem;left:.5rem;right:.5rem;transform:none}.workspace.phone-canvas .mobile-physics{display:inline-flex}.workspace.phone-canvas .forces.phone-open{width:auto;max-height:calc(100% - 8rem);font-size:14px;display:grid;top:.5rem;left:.5rem;right:.5rem;overflow:auto}.workspace.phone-canvas .forces label,.workspace.phone-canvas .forces button{font-size:14px}.workspace .viewport.has-view .world,.workspace .viewport.has-view .toolbar,.workspace .viewport.has-view .forces{display:none}.workspace .port-editor,.workspace .json{min-height:12rem}.workspace .port-editor{grid-template-columns:1fr}}
