:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light;font-synthesis:none;--color-canvas:#f7f9fc;--color-panel:#fff;--color-panel-muted:#f1f5f9;--color-border:#748299;--color-border-strong:#526078;--color-text:#172033;--color-text-muted:#526078;--color-primary:#1d4ed8;--color-primary-strong:#1e40af;--color-primary-soft:#dbeafe;--color-focus:#b45309;--shadow-panel:0 8px 28px #0f172a1a;--radius-sm:6px;--radius-md:10px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{overflow:hidden;width:100%;min-width:0;height:100%;margin:0}body{color:var(--color-text);background:var(--color-canvas);font-size:14px;line-height:1.45}button,textarea{font:inherit}button,a,textarea,[tabindex]{outline:none}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}button{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-panel);cursor:pointer;min-height:34px;padding:6px 11px;font-weight:650}button:hover{border-color:var(--color-border-strong);background:var(--color-panel-muted)}button[aria-disabled=true]{color:#59657a;background:#f8fafc}h1,h2,h3,p{margin-block-start:0}h1,h2{margin-block-end:0;font-size:1rem}.visually-hidden{position:absolute;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0}.eyebrow{color:var(--color-text-muted);letter-spacing:.09em;text-transform:uppercase;margin-block-end:2px;font-size:.68rem;font-weight:800}.app-shell{--rail-width:44px;--properties-panel-width:232px;--study-panel-width:300px;position:relative;display:grid;grid-template:"header header header header" auto "pool canvas properties study" minmax(0,1fr)"status status status status" auto/218px minmax(320px,1fr)var(--rail-width)var(--rail-width);width:100vw;min-width:0;height:100vh}.app-header{z-index:10;grid-area:header;display:flex;border-bottom:1px solid var(--color-border);background:var(--color-panel);align-items: center;gap:18px;min-width:0;padding:8px 12px;box-shadow:0 1px 8px #0f172a0f}.brand{display:inline-flex;color:var(--color-text);text-decoration:none;flex:none;align-items: center;gap:8px;font-weight:800}.header-actions{display:flex;flex:auto;align-items: center;gap:6px;min-width:0}.canvas-tool-header-slot{display:none}.action-divider{background:var(--color-border);width:1px;height:24px;margin-inline-start:2px;margin-inline-end:2px}.button-secondary{color:var(--color-primary-strong);background:#eff6ff;border-color:#2563eb;margin-left:auto}.header-icon-action{display:inline-grid;flex:none;place-items: center;width:34px;min-height:34px;padding:0}.button-icon{display:inline-grid;flex:none;place-items: center;width:34px;padding:0;font-size:1rem}.header-icon-action svg{fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:19px;height:19px}.header-action-tooltip{position:fixed;z-index:100;color:#fff;pointer-events:none;white-space:nowrap;background:#172033;border-radius:4px;max-width:min(220px,100vw - 16px);padding:4px 7px;font-size:.72rem;font-weight:700;line-height:1.25;transform:translate(-50%);box-shadow:0 2px 8px #0f172a3d}.header-action-tooltip[hidden],.phone-panel-launchers,.phone-drawer-close,.phone-drawer-backdrop{display:none}.object-pool,.properties-panel,.study-panel{overflow:hidden;background:var(--color-panel);min-width:0;min-height:0}.object-pool{grid-area:pool;display:flex;border-right:1px solid var(--color-border);flex-direction:column}.properties-dock,.study-dock{position:relative;z-index:26;min-width:0;min-height:0}.properties-dock{grid-area:properties}.study-dock{grid-area:study}.properties-panel,.study-panel{position:absolute;z-index:1;overflow-y:auto;border-left:1px solid var(--color-border);box-shadow:var(--shadow-panel);top:0;bottom:0}.properties-panel{right:var(--rail-width);width:var(--properties-panel-width)}.study-panel{right:calc(var(--rail-width)*2);width:var(--study-panel-width)}.app-shell[data-properties-expanded=true][data-study-expanded=true] .properties-panel{right:calc(var(--rail-width) + var(--study-panel-width))}.properties-toggle,.study-toggle{position:absolute;z-index:2;border-color:var(--color-border);color:var(--color-primary-strong);background:var(--color-panel);letter-spacing:.06em;writing-mode:vertical-rl;border-radius:0;place-self:stretch;min-width:0;padding:10px 8px;font-weight:800;inset:0}.properties-toggle:hover,.study-toggle:hover{background:#eff6ff}.app-shell[data-properties-expanded=true] .properties-toggle,.app-shell[data-study-expanded=true] .study-toggle{color:var(--color-primary-strong);box-shadow:inset 3px 0 var(--color-primary);background:#dbeafe}.app-shell[data-properties-expanded=true] .properties-toggle:before,.app-shell[data-study-expanded=true] .study-toggle:before{content:"›";position:absolute;display:grid;writing-mode:horizontal-tb;border:1px solid;border-radius:999px;place-items: center;width:24px;height:24px;font-size:1.25rem;line-height:1;top:12px;left:50%;transform:translate(-50%)}@media (forced-colors:active){.app-shell[data-properties-expanded=true] .properties-toggle,.app-shell[data-study-expanded=true] .study-toggle{outline:2px solid highlight;outline-offset:-3px;color:highlight;box-shadow:none;background:canvas;border-color:highlight}}.properties-panel[hidden],.study-panel[hidden]{display:none}.app-shell[data-properties-expanded=true][data-study-expanded=false] .canvas-surface{--canvas-occlusion-inline-end:min(var(--properties-panel-width),max(0px,calc(100% - 96px)))}.app-shell[data-properties-expanded=false][data-study-expanded=true] .canvas-surface{--canvas-occlusion-inline-end:min(var(--study-panel-width),max(0px,calc(100% - 96px)))}.app-shell[data-properties-expanded=true][data-study-expanded=true] .canvas-surface{--canvas-occlusion-inline-end:min(calc(var(--properties-panel-width) + var(--study-panel-width)),max(0px,calc(100% - 96px)))}.panel-heading{display:flex;border-bottom:1px solid var(--color-border);flex:none;justify-content:space-between;align-items: center;gap:10px;padding:14px}.canvas-tool-section{border-bottom:1px solid var(--color-border);background:linear-gradient(#eff6ffb8,#f8fafcc2);flex:none;padding:12px 10px 10px}.canvas-tool-heading{display:flex;justify-content:space-between;align-items: center;gap:8px;margin-bottom:8px}.canvas-tool-heading .eyebrow{margin:0}.canvas-tool-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.canvas-tool-button{display:grid;color:var(--color-text-muted);background:#ffffffd1;border-color:#cbd5e1;border-radius:8px;place-items: center;gap:3px;min-width:0;min-height:54px;padding:7px 3px 6px;font-size:.68rem;font-weight:750;line-height:1}.canvas-tool-button:hover{color:var(--color-primary-strong);background:#eff6ff;border-color:#93c5fd}.canvas-tool-button[aria-pressed=true]{color:#1e3a8a;background:#dbeafe;border-color:#2563eb;box-shadow:inset 0 -3px #2563eb}.canvas-tool-button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.canvas-tool-icon{position:relative;display:grid;place-items: center;width:1.55rem;height:1.32rem;line-height:1}.canvas-tool-icon svg{overflow:visible;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:1.25rem;height:1.25rem}.canvas-tool-keycap{position:absolute;color:inherit;text-align:center;background:canvas;border:1px solid;border-radius:3px;min-width:.7rem;padding:1px 2px;font-family:inherit;font-size:.52rem;font-weight:850;line-height:1;top:-.2rem;right:-.2rem}.count-badge{color:var(--color-primary-strong);background:var(--color-primary-soft);text-align:center;border-radius:999px;min-width:25px;padding:3px 7px;font-size:.72rem;font-weight:800}.component-list{display:flex;overflow-y:auto;flex-direction:column;flex:auto;gap:5px;min-height:0;padding:8px}.component-pool-guidance{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-panel-muted);text-align:center;flex:none;margin:0;padding:7px 10px;font-size:.72rem;font-weight:700}.component-button{display:flex;text-align:left;touch-action:pan-y;flex:none;align-items: center;gap:9px;width:100%;min-width:0}.component-button>span:nth-child(2){min-width:0}.component-drag-affordance{display:inline-grid;color:var(--color-text-muted);touch-action:none;flex:0 0 44px;place-items: center;width:44px;min-height:44px;margin-left:auto;font-size:1rem;line-height:1}.component-icon{display:inline-grid;color:var(--color-primary-strong);background:#eff6ff;border:1px solid #93c5fd;border-radius:5px;flex:0 0 28px;place-items: center;width:28px;height:28px}.component-icon-svg{display:block;overflow:visible;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.component-button:hover .component-icon{border-color:var(--color-primary);background:#dbeafe}.component-button:focus-visible .component-icon{border-color:var(--color-primary);background:#dbeafe}.component-button[data-dragging=true],.component-button[data-touch-dragging=true]{border-style:dashed;border-color:var(--color-primary);opacity:.72;background:#dbeafe}.component-touch-drag-preview{position:fixed;z-index:100;box-sizing:border-box;border-color:var(--color-primary);background:var(--color-panel);box-shadow:var(--shadow-panel);opacity:.92;pointer-events:none;max-width:min(240px,100vw - 24px);top:0;left:0;transform:translate(-50%,calc(-100% - 12px))}.component-touch-drag-preview[data-placement=below]{transform:translate(-50%,12px)}.canvas-workspace{grid-area:canvas;overflow:hidden;min-width:0;min-height:0}.canvas-surface{position:relative;isolation:isolate;--canvas-occlusion-inline-end:0px;overflow:hidden;background:var(--color-canvas);cursor:default;user-select:none;touch-action:none;width:100%;height:100%;min-height:260px}.canvas-surface:focus-visible{outline:0}.canvas-surface[data-component-drop-target=true],.canvas-surface[data-component-touch-drop-target=true]{outline:4px dashed var(--color-primary);outline-offset:-8px}.canvas-surface[data-component-drop-target=true]:before,.canvas-surface[data-component-touch-drop-target=true]:before{position:absolute;z-index:5;color:#1e3a8a;content:"Drop to add component";pointer-events:none;background:#eff6ff;border:1px solid #2563eb;border-radius:999px;padding:6px 12px;font-size:.75rem;font-weight:800;top:14px;left:50%;transform:translate(-50%)}.canvas-surface[data-pan-available=true]{cursor:grab}.canvas-grid{position:absolute;z-index:0;pointer-events:none;opacity:.65;background-image:radial-gradient(circle,#a8b4c5 1px,#0000 1px);background-position:0 0;background-size:20px 20px;inset:0}.canvas-world{position:absolute;z-index:1;overflow:visible;transform-origin:0 0;width:0;height:0;top:0;left:0;transform:translate(0)scale(1)}.canvas-connections{position:absolute;z-index:0;overflow:visible;pointer-events:none;width:1px;height:1px;top:0;left:0}.canvas-connection{--connection-color:#334155;pointer-events:none}.canvas-connection__line{stroke:var(--connection-color);stroke-width:2;stroke-linecap:round;pointer-events:none}.canvas-connection[data-line-style=dashed] .canvas-connection__line{stroke-dasharray:8 6}.canvas-connection__arrowhead{fill:var(--connection-color);stroke:none;pointer-events:none}.canvas-connection__hit{stroke:#0f172a00;stroke-width:16;stroke-linecap:round;pointer-events:stroke;cursor:pointer}.canvas-connection:hover .canvas-connection__line,.canvas-connection[data-selected=true] .canvas-connection__line{stroke:var(--connection-color);stroke-width:3}.canvas-connection:hover .canvas-connection__arrowhead,.canvas-connection[data-selected=true] .canvas-connection__arrowhead{fill:var(--connection-color);stroke:none}.canvas-connection:hover .canvas-connection__line{filter:drop-shadow(0 0 calc(1px*var(--connection-inverse-zoom,1))#fff)drop-shadow(0 0 calc(1px*var(--connection-inverse-zoom,1))#60a5fa)}.canvas-connection[data-selected=true] .canvas-connection__line{filter:none}.canvas-connection[data-selected=true]:hover .canvas-connection__line{stroke-width:3.5;filter:none}.canvas-connection-label-visuals,.canvas-connection-label-hits{pointer-events:none}.canvas-connection-label{--connection-color:#334155;pointer-events:none}.canvas-connection-label__text{fill:#0f172a;pointer-events:none;user-select:none;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;font-weight:700}.canvas-connection-label__hit{fill:transparent;stroke:none;pointer-events:all;cursor:pointer;forced-color-adjust:none}.canvas-connection-label[data-selected=true] .canvas-connection-label__text{fill:#1d4ed8;font-weight:800}.canvas-connection-label[data-editing=true] .canvas-connection-label__text{text-decoration:underline;text-decoration-thickness:1.5px}.canvas-connection-preview{pointer-events:none}.canvas-connection-preview__line{stroke:#2563eb;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:7 5;pointer-events:none;filter:drop-shadow(0 0 calc(1.5px*var(--connection-inverse-zoom,1))#fff)}.canvas-connection-preview__arrowhead{fill:#2563eb;stroke:#fff;stroke-width:calc(1.5px*var(--connection-inverse-zoom,1));pointer-events:none}.canvas-label-editor-layer{position:absolute;z-index:4;overflow:hidden;pointer-events:none;inset:0}.canvas-label-editor-layer[hidden]{display:none}.object-label-editor{position:absolute;z-index:1;box-sizing:border-box;overflow:hidden;outline:0;color:var(--object-label-color,#172033);box-shadow:none;text-align:center;resize:none;white-space:pre;pointer-events:auto;user-select:text;background:0 0;border:0;border-radius:0;margin:0;font-family:inherit;font-weight:750}.object-label-editor[data-component-type=text-note]{text-align:left;font-weight:650}.object-label-editor:focus{outline:0;box-shadow:none;border:0}.connection-label-editor{position:absolute;z-index:1;box-sizing:border-box;overflow:hidden;outline:3px solid #fff;color:#0f172a;box-shadow:0 0 0 5px color-mix(in srgb,var(--editor-accent),#1d4ed8 35%),0 10px 24px #0f172a47;text-align:center;white-space:pre;pointer-events:auto;user-select:text;background:#fff;border:2px solid #0f172a;border-radius:7px;min-width:140px;height:38px;margin:0;padding:7px 10px;font-family:inherit;font-size:.875rem;font-weight:700;line-height:1.2}.canvas-marquee{position:absolute;z-index:2;box-sizing:border-box;pointer-events:none;background:#3b82f62e;border:2px solid #1d4ed8;border-radius:3px;box-shadow:inset 0 0 0 1px #ffffffb3}.canvas-marquee[hidden]{display:none}.canvas-object{position:absolute;display:grid;grid-template-columns:62px minmax(0,1fr);overflow:hidden;border:2px solid var(--object-accent);color:var(--object-text);background:var(--object-tint);cursor:default;border-radius:12px;align-items:stretch;transition:box-shadow .12s,outline-color .12s,filter .12s;box-shadow:0 3px 10px #0f172a1f}.canvas-object:hover{outline:calc(2px*var(--viewport-inverse-zoom,1))solid #334155;outline-offset:calc(1px*var(--viewport-inverse-zoom,1));filter:brightness(.97);box-shadow:0 7px 17px #0f172a3d}.canvas-object[data-visual-state=selected]{z-index:1;outline:calc(2px*var(--viewport-inverse-zoom,1))solid #334155;outline-offset:calc(1px*var(--viewport-inverse-zoom,1));box-shadow:none;filter:brightness(.97)}.canvas-object[data-visual-state=selected]{cursor:grab}.canvas-object[data-visual-state=moving]{z-index:1;cursor:grabbing;border-color:var(--object-accent);outline:calc(3px*var(--viewport-inverse-zoom,1))solid var(--object-accent);outline-offset:calc(3px*var(--viewport-inverse-zoom,1));box-shadow:none;transition:none}.canvas-object[data-visual-state=resizing]{z-index:1;outline:calc(3px*var(--viewport-inverse-zoom,1))solid #1d4ed8;outline-offset:calc(3px*var(--viewport-inverse-zoom,1));box-shadow:none;transition:none}.canvas-object[data-visual-state=editing]{z-index:2;outline:calc(2px*var(--viewport-inverse-zoom,1))solid var(--object-accent);outline-offset:calc(2px*var(--viewport-inverse-zoom,1));box-shadow:none;cursor:text;transition:none}.canvas-object[data-visual-state=editing]:hover{filter:none}.canvas-surface[data-move-group=true] .canvas-object[data-visual-state=moving]{filter:saturate(1.08)}.canvas-surface[data-move-active=true]{cursor:grabbing}.canvas-object[data-visual-state=selected]:hover{outline-color:#0f172a;box-shadow:none;filter:brightness(.94)}.canvas-object[data-connection-target=true]{outline:calc(3px*var(--viewport-inverse-zoom,1))dashed #2563eb;outline-offset:calc(5px*var(--viewport-inverse-zoom,1));box-shadow:0 0 0 calc(7px*var(--viewport-inverse-zoom,1))#ffffffe6,0 0 0 calc(10px*var(--viewport-inverse-zoom,1))#2563eb73}.canvas-surface[data-interaction-kind=creating-connection]{cursor:crosshair}.canvas-surface[data-interaction-kind=creating-connection] .canvas-object,.canvas-surface[data-interaction-kind=creating-connection] .canvas-resize-handle{cursor:not-allowed}.canvas-surface[data-interaction-kind=creating-connection] .canvas-object[data-connection-target=true]{cursor:pointer}.canvas-surface[data-interaction-kind=creating-connection]:after{content:"Choose a target · Empty clicks keep connecting · Esc cancels";position:absolute;z-index:7;right:calc(12px + var(--canvas-occlusion-inline-end));color:#1e3a8a;pointer-events:none;background:#eff6fff5;border:1px solid #93c5fd;border-radius:6px;padding:6px 10px;font-size:.75rem;font-weight:700;bottom:48px}@media (forced-colors:active){.component-touch-drag-preview{color:canvastext;forced-color-adjust:none;background:canvas;border:2px solid highlight}.canvas-surface[data-component-touch-drop-target=true]{outline-color:highlight}.header-icon-action{color:buttontext;background:buttonface;border-color:buttontext}.header-icon-action[aria-disabled=true]{color:graytext;border-color:graytext}.header-icon-action:focus-visible{outline-color:highlight}.header-action-tooltip{color:canvas;forced-color-adjust:none;background:canvastext;border:1px solid canvastext}.canvas-tool-button[aria-pressed=true]{outline:3px solid highlight;outline-offset:-4px;box-shadow:none;border-color:highlight}.canvas-connection-label__text{fill:CanvasText}.canvas-connection-label[data-selected=true] .canvas-connection-label__text,.canvas-connection-label[data-editing=true] .canvas-connection-label__text{fill:Highlight}.canvas-connection-preview__line{stroke:Highlight;filter:none}.canvas-connection-preview__arrowhead{fill:Highlight;stroke:Canvas}.canvas-object[data-connection-target=true],.canvas-object[data-visual-state=editing]{outline-color:highlight;box-shadow:none}}.canvas-object__icon{display:grid;border-right:1px solid color-mix(in srgb,var(--object-accent),transparent 55%);color:var(--object-accent);background:color-mix(in srgb,var(--object-accent),transparent 92%);place-items: center;min-width:0;padding:12px 8px}.canvas-object__svg{display:block;overflow:visible;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;width:min(42px,100%);min-width:24px;height:min(42px,100%);min-height:24px}.canvas-object__label{overflow:hidden;overflow-wrap:normal;text-align:center;white-space:pre;align-content: center;min-width:0;min-height:0;padding:12px 10px;font-size:14px;font-weight:750;line-height:1.25}.canvas-object__label[data-suppressed=true]{visibility:hidden}.canvas-resize-overlay{position:absolute;z-index:3;box-sizing:border-box;border:calc(1px*var(--viewport-inverse-zoom,1))solid transparent;forced-color-adjust:none;pointer-events:none}.canvas-resize-handle{--handle-hit:calc(20px*var(--viewport-inverse-zoom,1));--handle-grip:calc(7px*var(--viewport-inverse-zoom,1));position:absolute;width:var(--handle-hit);height:var(--handle-hit);forced-color-adjust:auto;pointer-events:none;transform:translate(-50%,-50%)}.canvas-resize-handle[data-interactive=true]{pointer-events:auto}.canvas-resize-handle:after{position:absolute;width:var(--handle-grip);height:var(--handle-grip);box-sizing:border-box;border:calc(1px*var(--viewport-inverse-zoom,1))solid #64748b;border-radius:calc(1px*var(--viewport-inverse-zoom,1));content:"";background:#f8fafc;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.canvas-resize-handle:-webkit-any([data-resize-handle=top],[data-resize-handle=right],[data-resize-handle=bottom],[data-resize-handle=left]):after{visibility:hidden}.canvas-resize-handle:-moz-any([data-resize-handle=top],[data-resize-handle=right],[data-resize-handle=bottom],[data-resize-handle=left]):after{visibility:hidden}.canvas-resize-handle:is([data-resize-handle=top],[data-resize-handle=right],[data-resize-handle=bottom],[data-resize-handle=left]):after{visibility:hidden}.canvas-resize-handle:hover:after,.canvas-resize-handle[data-active=true]:after{width:calc(9px*var(--viewport-inverse-zoom,1));height:calc(9px*var(--viewport-inverse-zoom,1));visibility:visible;border:calc(2px*var(--viewport-inverse-zoom,1))solid #fff;border-radius:calc(2px*var(--viewport-inverse-zoom,1));box-shadow:0 0 0 calc(1px*var(--viewport-inverse-zoom,1))#0f172a;background:#1d4ed8}@media (pointer:coarse){.canvas-resize-handle{--handle-hit:calc(44px*var(--viewport-inverse-zoom,1));--handle-grip:calc(12px*var(--viewport-inverse-zoom,1))}.canvas-resize-handle[data-interactive=true]:after{visibility:visible;border:calc(2px*var(--viewport-inverse-zoom,1))solid #fff;box-shadow:0 0 0 calc(1px*var(--viewport-inverse-zoom,1))#0f172a;background:#1d4ed8}}.canvas-surface[data-resize-active=true] .canvas-resize-handle:not([data-active=true]):after{opacity:.45;box-shadow:none}.canvas-resize-handle[data-active=true]:after{width:calc(11px*var(--viewport-inverse-zoom,1));height:calc(11px*var(--viewport-inverse-zoom,1));box-shadow:0 0 0 calc(2px*var(--viewport-inverse-zoom,1))#0f172a;background:#1e40af;border-color:#fff}.canvas-resize-handle[data-resize-handle=top]{cursor:ns-resize}.canvas-resize-handle[data-resize-handle=top-right]{cursor:nesw-resize}.canvas-resize-handle[data-resize-handle=right]{cursor:ew-resize}.canvas-resize-handle[data-resize-handle=bottom-right]{cursor:nwse-resize}.canvas-resize-handle[data-resize-handle=bottom]{cursor:ns-resize}.canvas-resize-handle[data-resize-handle=bottom-left]{cursor:nesw-resize}.canvas-resize-handle[data-resize-handle=left]{cursor:ew-resize}.canvas-resize-handle[data-resize-handle=top-left]{cursor:nwse-resize}.canvas-surface[data-resize-active=true]{cursor:default}.canvas-surface[data-resize-active=true][data-resize-handle=top],.canvas-surface[data-resize-active=true][data-resize-handle=bottom]{cursor:ns-resize}.canvas-surface[data-resize-active=true][data-resize-handle=left],.canvas-surface[data-resize-active=true][data-resize-handle=right]{cursor:ew-resize}.canvas-surface[data-resize-active=true][data-resize-handle=top-right],.canvas-surface[data-resize-active=true][data-resize-handle=bottom-left]{cursor:nesw-resize}.canvas-surface[data-resize-active=true][data-resize-handle=top-left],.canvas-surface[data-resize-active=true][data-resize-handle=bottom-right]{cursor:nwse-resize}@media (forced-colors:active){.canvas-object[data-visual-state=selected],.canvas-object[data-visual-state=selected]:hover,.canvas-object[data-visual-state=moving],.canvas-object[data-visual-state=resizing],.canvas-object[data-visual-state=editing],.canvas-object[data-connection-target=true]{outline-color:highlight;box-shadow:none;filter:none}.canvas-object[data-visual-state=moving]{outline-style:dashed}.canvas-object[data-visual-state=resizing]{outline-style:double}.canvas-object[data-visual-state=editing]{outline-style:dotted}.canvas-resize-handle:after{box-shadow:none;background:canvas;border-color:buttontext}.canvas-resize-handle:hover:after,.canvas-resize-handle[data-active=true]:after{visibility:visible;box-shadow:0 0 0 calc(1px*var(--viewport-inverse-zoom,1))ButtonText;background:highlight;border-color:canvas}.canvas-surface[data-resize-active=true] .canvas-resize-handle:not([data-active=true]):after{opacity:1;box-shadow:none}.canvas-resize-handle[data-active=true]:after{box-shadow:0 0 0 calc(2px*var(--viewport-inverse-zoom,1))ButtonText;background:highlight;border-color:highlighttext}}@media (prefers-reduced-motion:reduce){.canvas-object{transition:none}}.canvas-object[data-component-type=database],.canvas-object[data-component-type=cache]{border-radius:22px/12px}.canvas-object[data-component-type=text-note]{grid-template-columns:52px minmax(0,1fr);border-style:dashed;border-radius:4px 16px 4px 4px}.canvas-object[data-component-type=text-note] .canvas-object__label{text-align:left;font-weight:650}.canvas-surface[data-interaction-kind=panning]{cursor:grabbing}.canvas-surface[data-canvas-tool=pan]:not([data-interaction-kind=panning]),.canvas-surface[data-canvas-tool=pan]:not([data-interaction-kind=panning]) *{cursor:grab}.canvas-surface[data-canvas-tool=pan][data-interaction-kind=panning],.canvas-surface[data-canvas-tool=pan][data-interaction-kind=panning] *{cursor:grabbing}.canvas-surface[data-canvas-tool=connect]:not([data-interaction-kind=panning]){cursor:crosshair}.canvas-surface[data-canvas-tool=connect]:not([data-interaction-kind=panning]) :-webkit-any(.canvas-object,.canvas-resize-handle){cursor:pointer}.canvas-surface[data-canvas-tool=connect]:not([data-interaction-kind=panning]) :-moz-any(.canvas-object,.canvas-resize-handle){cursor:pointer}.canvas-surface[data-canvas-tool=connect]:not([data-interaction-kind=panning]) :is(.canvas-object,.canvas-resize-handle){cursor:pointer}.canvas-surface[data-pan-available=true]:not([data-interaction-kind=panning]):after,.canvas-surface[data-interaction-kind=panning]:after{position:absolute;z-index:4;right:calc(12px + var(--canvas-occlusion-inline-end));color:var(--color-primary-strong);pointer-events:none;background:#eff6ff;border:1px solid #93c5fd;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:750;bottom:48px}.canvas-surface[data-pan-available=true]:not([data-interaction-kind=panning]):after{content:"Pan ready · drag"}.canvas-surface[data-interaction-kind=panning]:after{content:"Panning canvas"}.empty-state{position:absolute;top:50%;left:calc((100% - var(--canvas-occlusion-inline-end))/2);z-index:2;box-sizing:border-box;width:min(390px,calc(100% - var(--canvas-occlusion-inline-end) - 48px));border:1px solid var(--color-border);box-shadow:var(--shadow-panel);text-align:center;pointer-events:none;background:#fffffff0;border-radius:16px;padding:28px;transform:translate(-50%,-50%)}.empty-state img{margin-bottom:10px}.empty-state h2{margin-bottom:8px;font-size:1.35rem}.empty-state p:last-child{color:var(--color-text-muted);margin:0}.zoom-indicator{position:absolute;right:calc(12px + var(--canvas-occlusion-inline-end));z-index:3;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-panel);text-align:center;pointer-events:none;width:58px;padding:5px 9px;font-size:.75rem;font-weight:750;bottom:12px}.neutral-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);text-align:center;margin:14px;padding:22px 14px}.inspector-selection{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel-muted);margin:14px;padding:14px}.inspector-selection__type{margin-bottom:12px;font-size:1rem;font-weight:800}.inspector-selection dl,.inspector-selection dd{margin:0}.inspector-selection dl>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px}.inspector-measurements{display:grid;gap:6px}.inspector-endpoints{display:grid;gap:8px}.inspector-endpoints>div{align-items:baseline}.inspector-measurements dd{font-variant-numeric:tabular-nums}.color-field{border:0;border-top:1px solid var(--color-border);min-width:0;margin:16px 0 0;padding:12px 0 0}.color-field legend{padding:0;font-size:.8rem;font-weight:800}.color-field .field-note{margin:4px 0 10px}.color-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(30px,1fr));gap:7px}.color-swatch{position:relative;display:grid;cursor:pointer;place-items: center;min-width:30px;min-height:30px}.color-swatch input{position:absolute;opacity:0;width:1px;height:1px}.color-swatch__visual{display:block;box-sizing:border-box;background:var(--swatch-color);border:2px solid #fff;border-radius:8px;width:28px;height:28px;box-shadow:0 0 0 1px #64748b}.color-swatch input:checked+.color-swatch__visual{border:4px solid #fff;box-shadow:0 0 0 3px #0f172a}.color-swatch input:checked+.color-swatch__visual:after{display:block;color:#fff;content:"✓";text-align:center;text-shadow:0 1px 2px #000;font-size:.9rem;font-weight:900;line-height:20px}.color-swatch input:focus-visible+.color-swatch__visual{outline:3px solid #2563eb;outline-offset:3px}.color-swatch input:disabled+.color-swatch__visual{cursor:not-allowed;filter:grayscale(.65);opacity:.45}.color-swatch__name{position:absolute;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0}.custom-color{position:relative;color:var(--color-text-muted);overflow-wrap:anywhere;margin:10px 0 0;padding-left:20px;font-size:.76rem}.custom-color:before{position:absolute;background:var(--swatch-color);content:"";border:1px solid #64748b;border-radius:3px;width:12px;height:12px;margin:1px 0 0 -20px}.line-style-field{border:0;border-top:1px solid var(--color-border);min-width:0;margin:16px 0 0;padding:12px 0 0}.line-style-field legend{padding:0;font-size:.8rem;font-weight:800}.line-style-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.line-style-choice{position:relative;display:grid;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);background:var(--color-panel);place-items: center;gap:6px;min-height:47px;padding:8px;font-size:.75rem;font-weight:750}.line-style-choice input{position:absolute;opacity:0;width:1px;height:1px}.line-style-choice:has(input:checked){border:2px solid var(--color-text);color:var(--color-text);background:var(--color-primary-soft)}.line-style-choice:has(input:focus-visible){outline:3px solid var(--color-primary);outline-offset:2px}.line-style-choice:has(input:disabled){cursor:not-allowed;opacity:.48}.line-style-choice__sample{border-top:3px solid;width:min(54px,100%)}.line-style-choice__sample[data-line-style=dashed]{border-top-style:dashed}@media (forced-colors:active){.color-options{grid-template-columns:1fr}.color-swatch{display:flex;justify-content:flex-start;gap:10px;min-height:34px;padding:2px}.color-swatch__name{position:static;overflow:visible;clip:auto;white-space:normal;color:canvastext;width:auto;height:auto;margin:0;font-size:.78rem;font-weight:700}.color-swatch__visual{background:canvas;border-color:canvas;box-shadow:0 0 0 1px canvastext}.color-swatch input:checked+.color-swatch__visual{outline:3px solid highlight;border-color:canvas;box-shadow:0 0 0 1px canvastext}.color-swatch input:checked+.color-swatch__visual:after{color:canvastext;text-shadow:none}.color-swatch input:focus-visible+.color-swatch__visual{outline-color:highlight}.custom-color:before{background:canvas;border-color:canvastext}.line-style-choice:has(input:checked){color:canvastext;background:canvas;border-color:highlight}.line-style-choice:has(input:focus-visible){outline-color:highlight}}.inspector-selection dt{color:var(--color-text-muted);font-size:.76rem;font-weight:750}.inspector-selection dd{overflow-wrap:anywhere;font-weight:700}.neutral-state p{margin-bottom:6px}.neutral-state p:last-child{margin:0;font-size:.82rem}.neutral-icon{display:block;color:var(--color-primary);margin-bottom:8px;font-size:2rem}.study-fields{overflow-y:auto;height:calc(100% - 68px);padding:14px}.study-fields label{display:block;margin-bottom:6px;font-size:.78rem;font-weight:750}.study-fields textarea{display:block;resize:vertical;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-panel);width:100%;min-height:90px;margin-bottom:15px;padding:9px}.field-note{color:var(--color-text-muted);font-size:.76rem}.status-bar{z-index:10;grid-area:status;display:flex;border-top:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-panel);justify-content:space-between;gap:16px;padding:4px 12px;font-size:.72rem}.status-bar p{margin:0}#app-status{display:flex;align-items: center;gap:6px;font-weight:650}.status-marker{background:#2563eb;border-radius:50%;width:7px;height:7px}#app-status[data-severity=success] .status-marker{background:0 0;border-bottom:2px solid #15803d;border-left:2px solid #15803d;border-radius:0;width:9px;height:5px;transform:rotate(-45deg)}#app-status[data-severity=warning] .status-marker{background:0 0;border-bottom:9px solid #a16207;border-left:5px solid #0000;border-right:5px solid #0000;border-radius:0;width:0;height:0}#app-status[data-severity=error]{color:#991b1b}#app-status[data-severity=error] .status-marker{background:#b91c1c;border-radius:1px}.status-dismiss{min-height:36px;padding:6px 8px;font-size:.68rem}#app-status[data-empty] .status-marker,#app-status[data-empty] .status-dismiss{display:none}.help-dialog{overflow:auto;border:1px solid var(--color-border);color:var(--color-text);background:var(--color-panel);border-radius:14px;width:min(620px,100vw - 36px);max-height:calc(100vh - 36px);padding:0;box-shadow:0 24px 80px #0f172a47}.help-dialog::backdrop{background:#0f172a7a}.dialog-heading{display:flex;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items: center;padding:18px 20px}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:20px}.help-grid h3{margin-bottom:10px;font-size:.88rem}.help-grid dl,.help-grid dd{margin:0}.help-grid dl>div{display:flex;border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:12px;padding:8px 0}.help-grid dt{font-weight:750}.help-grid dd{color:var(--color-text-muted);text-align:right}kbd{border:1px solid var(--color-border);background:var(--color-panel-muted);border-bottom-width:2px;border-radius:4px;padding:2px 5px;font-family:inherit;font-size:.72rem}@media (max-width:1320px){.app-shell{--properties-panel-width:220px;--study-panel-width:280px;grid-template:"header header header header" auto "pool canvas properties study" minmax(0,1fr)"status status status status" auto/206px minmax(300px,1fr)var(--rail-width)var(--rail-width)}}@media (max-width:1080px){.app-header{align-items: flex-start}.brand span{display:none}.header-actions{flex-wrap:wrap}.button-secondary{margin-left:0}.app-shell{--rail-width:38px;--study-panel-width:220px;grid-template:"header header header header" auto "pool canvas properties study" minmax(0,1fr)"status status status status" auto/194px minmax(300px,1fr)var(--rail-width)var(--rail-width)}}@media (min-width:641px) and (max-width:800px){.app-shell{--properties-panel-width:max(176px,min(220px,calc((100vw - 194px - var(--rail-width)*2 - 96px)/2)));--study-panel-width:var(--properties-panel-width)}}@media (max-height:620px){.panel-heading{padding-block-start:9px;padding-block-end:9px}.canvas-tool-section{padding-block-start:8px;padding-block-end:8px}.canvas-tool-heading{margin-bottom:5px}.canvas-tool-button{min-height:45px;padding-block-start:5px;padding-block-end:5px}.study-fields{height:calc(100% - 58px)}}@media (max-width:640px){.properties-dock,.study-dock{display:contents}.properties-toggle,.study-toggle{display:none}.app-shell{grid-template:"header" auto "launchers" auto "canvas" minmax(0,1fr)"status" auto/minmax(0,1fr)}.app-header{overflow:clip;contain:paint;align-items: center;gap:8px;min-height:50px;padding:6px 8px}.brand{gap:0}.canvas-tool-header-slot{display:block;flex:none}.canvas-tool-header-slot .canvas-tool-section{background:0 0;border:0;padding:0}.canvas-tool-header-slot .canvas-tool-heading,.canvas-tool-header-slot .canvas-tool-label,.canvas-tool-header-slot .canvas-tool-keycap{display:none}.canvas-tool-header-slot .canvas-tool-toolbar{display:flex;gap:4px}.canvas-tool-header-slot .canvas-tool-button{border-radius:7px;width:40px;min-height:40px;padding:4px}.brand span,.action-divider{display:none}.header-actions{position:relative;overflow-x:auto;scrollbar-color:var(--color-primary)transparent;scrollbar-width:auto;flex-wrap:nowrap;gap:5px;padding-right:18px}.header-actions:after{position:sticky;display:grid;color:var(--color-primary-strong);background:linear-gradient(90deg,transparent,var(--color-panel)45%);content:"›";pointer-events:none;flex:0 0 16px;place-items: center;width:16px;font-size:1.25rem;font-weight:800;right:0}.header-actions>button{flex:none}.header-icon-action{width:40px;min-height:40px}.phone-panel-launchers{grid-area:launchers;z-index:5;display:flex;overflow-x:auto;border-bottom:1px solid var(--color-border);background:var(--color-panel);gap:6px;min-width:0;padding:6px 8px}.phone-panel-launchers button{flex:none;min-height:30px;padding:4px 9px;font-size:.75rem}.canvas-surface{--canvas-occlusion-inline-end:0px;min-height:0}.object-pool,.properties-panel,.study-panel{position:relative;z-index:30;grid-area:canvas;overflow-y:auto;box-shadow:var(--shadow-panel);border:0;width:100%;height:100%;max-height:none;inset:auto}.object-pool[hidden],.properties-panel[hidden],.study-panel[hidden]{display:none}.phone-drawer-close{display:inline-grid}.phone-drawer-backdrop:not([hidden]){z-index:20;display:block;grid-area:canvas;background:#0f172a61;border:0;border-radius:0;width:100%;height:100%;padding:0}.study-fields{height:auto;min-height:calc(100% - 58px)}.status-bar{padding-inline-start:8px;padding-inline-end:8px}.status-bar>p:last-child{display:none}.help-grid{grid-template-columns:minmax(0,1fr);gap:0;padding:14px}}
