.canvas-root{--canvas-bg:#f3f4f6;--canvas-grid:#e8eaee;--canvas-grid-major:#dcdfe4;--canvas-ink:#1f2937;--canvas-ink-muted:#64748b;--canvas-surface:#fff;--canvas-border:#cbd5e1;--canvas-accent:#2563eb;--canvas-link:#1d4ed8;--canvas-note-link:#1e40af;--canvas-guide:#2563eb99;--canvas-accent-soft:#2563eb1f;--canvas-shape-fill:#fff;--canvas-shape-stroke:#334155;--canvas-frame-fill:#fff;--canvas-frame-stroke:#cbd5e1;--canvas-task-fill:#f8fafc;--canvas-task-done:#15803d;--canvas-task-done-ink:#fff;--canvas-wire-surface:#fff;--canvas-wire-bar:#f1f5f9;--canvas-wire-shade:#e2e8f0;--canvas-wire-line:#94a3b8;--canvas-wire-mark:#64748b;--canvas-wire-strong:#475569;--canvas-wire-on-strong:#fff;--canvas-wire-lip-shade:#0f172a4d;--canvas-wire-shine:#ffffffe6;--canvas-note-fill:#fef08a;--canvas-note-fill-gray:#e5e7eb;--canvas-note-fill-red:#fecaca;--canvas-note-fill-orange:#fed7aa;--canvas-note-fill-yellow:#fef08a;--canvas-note-fill-green:#bbf7d0;--canvas-note-fill-teal:#99f6e4;--canvas-note-fill-blue:#bfdbfe;--canvas-note-fill-indigo:#c7d2fe;--canvas-note-fill-purple:#e9d5ff;--canvas-note-fill-pink:#fbcfe8;--canvas-note-stroke:transparent;--canvas-note-ink:#1f2937;--canvas-danger-bg:#fef2f2;--canvas-danger-ink:#991b1b;--canvas-focus:#2563eb;--canvas-note-shadow:#0f172a29;--canvas-note-sheen-top:#785a0012;--canvas-note-sheen-middle:#fff0;--canvas-note-sheen-bottom:#ffffff47;--canvas-shadow:#0f172a1a;--canvas-shadow-strong:#0f172a26;--canvas-tooltip-shadow:#0f172a33;--canvas-fill-gray:#e4eaf4;--canvas-fill-red:#fee2df;--canvas-fill-orange:#fee3d6;--canvas-fill-yellow:#fae8c0;--canvas-fill-green:#d1f5d6;--canvas-fill-teal:#c2f6ec;--canvas-fill-blue:#deeaff;--canvas-fill-indigo:#e4e8ff;--canvas-fill-purple:#efe4fe;--canvas-fill-pink:#ffe0eb;--canvas-stroke-gray:#7c8392;--canvas-stroke-red:#ee4343;--canvas-stroke-orange:#d65f02;--canvas-stroke-yellow:#a67e01;--canvas-stroke-green:#069844;--canvas-stroke-teal:#089384;--canvas-stroke-blue:#387ff3;--canvas-stroke-indigo:#6e73ff;--canvas-stroke-purple:#ac59fc;--canvas-stroke-pink:#e64294;--canvas-text-gray:#4b5563;--canvas-text-red:#b91c1c;--canvas-text-orange:#9a3412;--canvas-text-yellow:#854d0e;--canvas-text-green:#166534;--canvas-text-teal:#115e59;--canvas-text-blue:#1d4ed8;--canvas-text-indigo:#4338ca;--canvas-text-purple:#7e22ce;--canvas-text-pink:#be185d;--canvas-note-text-gray:#4b5563;--canvas-note-text-red:#991b1b;--canvas-note-text-orange:#9a3412;--canvas-note-text-yellow:#854d0e;--canvas-note-text-green:#166534;--canvas-note-text-teal:#115e59;--canvas-note-text-blue:#1e40af;--canvas-note-text-indigo:#4338ca;--canvas-note-text-purple:#7e22ce;--canvas-note-text-pink:#9d174d;background:var(--canvas-bg);width:100%;height:100%;color:var(--canvas-ink);-webkit-user-select:none;user-select:none;outline:none;font-family:system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}:root[data-theme=dark] .canvas-root{--canvas-bg:#0f172a;--canvas-grid:#172135;--canvas-grid-major:#1f2a40;--canvas-ink:#e2e8f0;--canvas-ink-muted:#94a3b8;--canvas-surface:#1e293b;--canvas-border:#475569;--canvas-accent:#60a5fa;--canvas-link:#60a5fa;--canvas-note-link:#1e40af;--canvas-guide:#60a5fa99;--canvas-accent-soft:#60a5fa2e;--canvas-shape-fill:#1e293b;--canvas-shape-stroke:#94a3b8;--canvas-frame-fill:#172033;--canvas-frame-stroke:#334155;--canvas-task-fill:#1e293b;--canvas-task-done:#22c55e;--canvas-task-done-ink:#052e16;--canvas-wire-surface:#1e293b;--canvas-wire-bar:#172033;--canvas-wire-shade:#273449;--canvas-wire-line:#64748b;--canvas-wire-mark:#94a3b8;--canvas-wire-strong:#cbd5e1;--canvas-wire-on-strong:#0f172a;--canvas-wire-lip-shade:#0006;--canvas-wire-shine:#ffffff2e;--canvas-note-fill:#d9b945;--canvas-note-fill-gray:#b5bcc9;--canvas-note-fill-red:#e7adad;--canvas-note-fill-orange:#dcb587;--canvas-note-fill-yellow:#d9b945;--canvas-note-fill-green:#88ca9f;--canvas-note-fill-teal:#85c8bb;--canvas-note-fill-blue:#a0bee4;--canvas-note-fill-indigo:#aebae7;--canvas-note-fill-purple:#cbb1e8;--canvas-note-fill-pink:#e6aacc;--canvas-note-stroke:transparent;--canvas-note-ink:#1f2937;--canvas-danger-bg:#450a0a;--canvas-danger-ink:#fca5a5;--canvas-focus:#60a5fa;--canvas-note-shadow:#0000006b;--canvas-note-sheen-top:#503c001a;--canvas-note-sheen-middle:#fff0;--canvas-note-sheen-bottom:#ffffff29;--canvas-shadow:#0006;--canvas-shadow-strong:#00000080;--canvas-tooltip-shadow:#00000080;--canvas-fill-gray:#373d49;--canvas-fill-red:#642724;--canvas-fill-orange:#622b09;--canvas-fill-yellow:#4e3a03;--canvas-fill-green:#0e4a21;--canvas-fill-teal:#014840;--canvas-fill-blue:#1f3c6c;--canvas-fill-indigo:#32376b;--canvas-fill-purple:#482f63;--canvas-fill-pink:#602640;--canvas-stroke-gray:#979fad;--canvas-stroke-red:#ff645e;--canvas-stroke-orange:#f77112;--canvas-stroke-yellow:#c59709;--canvas-stroke-green:#0ebe57;--canvas-stroke-teal:#10b7a5;--canvas-stroke-blue:#629dfe;--canvas-stroke-indigo:#8792ff;--canvas-stroke-purple:#b979ff;--canvas-stroke-pink:#fc58a7;--canvas-text-gray:#d1d5db;--canvas-text-red:#fca5a5;--canvas-text-orange:#fdba74;--canvas-text-yellow:#fde047;--canvas-text-green:#86efac;--canvas-text-teal:#5eead4;--canvas-text-blue:#93c5fd;--canvas-text-indigo:#a5b4fc;--canvas-text-purple:#d8b4fe;--canvas-text-pink:#f9a8d4;--canvas-note-text-gray:#374151;--canvas-note-text-red:#7f1d1d;--canvas-note-text-orange:#7c2d12;--canvas-note-text-yellow:#713f12;--canvas-note-text-green:#14532d;--canvas-note-text-teal:#134e4a;--canvas-note-text-blue:#1e40af;--canvas-note-text-indigo:#312e81;--canvas-note-text-purple:#6b21a8;--canvas-note-text-pink:#831843}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .canvas-root{--canvas-bg:#0f172a;--canvas-grid:#172135;--canvas-grid-major:#1f2a40;--canvas-ink:#e2e8f0;--canvas-ink-muted:#94a3b8;--canvas-surface:#1e293b;--canvas-border:#475569;--canvas-accent:#60a5fa;--canvas-link:#60a5fa;--canvas-note-link:#1e40af;--canvas-guide:#60a5fa99;--canvas-accent-soft:#60a5fa2e;--canvas-shape-fill:#1e293b;--canvas-shape-stroke:#94a3b8;--canvas-frame-fill:#172033;--canvas-frame-stroke:#334155;--canvas-task-fill:#1e293b;--canvas-task-done:#22c55e;--canvas-task-done-ink:#052e16;--canvas-wire-surface:#1e293b;--canvas-wire-bar:#172033;--canvas-wire-shade:#273449;--canvas-wire-line:#64748b;--canvas-wire-mark:#94a3b8;--canvas-wire-strong:#cbd5e1;--canvas-wire-on-strong:#0f172a;--canvas-wire-lip-shade:#0006;--canvas-wire-shine:#ffffff2e;--canvas-note-fill:#d9b945;--canvas-note-fill-gray:#b5bcc9;--canvas-note-fill-red:#e7adad;--canvas-note-fill-orange:#dcb587;--canvas-note-fill-yellow:#d9b945;--canvas-note-fill-green:#88ca9f;--canvas-note-fill-teal:#85c8bb;--canvas-note-fill-blue:#a0bee4;--canvas-note-fill-indigo:#aebae7;--canvas-note-fill-purple:#cbb1e8;--canvas-note-fill-pink:#e6aacc;--canvas-note-stroke:transparent;--canvas-note-ink:#1f2937;--canvas-danger-bg:#450a0a;--canvas-danger-ink:#fca5a5;--canvas-focus:#60a5fa;--canvas-note-shadow:#0000006b;--canvas-note-sheen-top:#503c001a;--canvas-note-sheen-middle:#fff0;--canvas-note-sheen-bottom:#ffffff29;--canvas-shadow:#0006;--canvas-shadow-strong:#00000080;--canvas-tooltip-shadow:#00000080;--canvas-fill-gray:#373d49;--canvas-fill-red:#642724;--canvas-fill-orange:#622b09;--canvas-fill-yellow:#4e3a03;--canvas-fill-green:#0e4a21;--canvas-fill-teal:#014840;--canvas-fill-blue:#1f3c6c;--canvas-fill-indigo:#32376b;--canvas-fill-purple:#482f63;--canvas-fill-pink:#602640;--canvas-stroke-gray:#979fad;--canvas-stroke-red:#ff645e;--canvas-stroke-orange:#f77112;--canvas-stroke-yellow:#c59709;--canvas-stroke-green:#0ebe57;--canvas-stroke-teal:#10b7a5;--canvas-stroke-blue:#629dfe;--canvas-stroke-indigo:#8792ff;--canvas-stroke-purple:#b979ff;--canvas-stroke-pink:#fc58a7;--canvas-text-gray:#d1d5db;--canvas-text-red:#fca5a5;--canvas-text-orange:#fdba74;--canvas-text-yellow:#fde047;--canvas-text-green:#86efac;--canvas-text-teal:#5eead4;--canvas-text-blue:#93c5fd;--canvas-text-indigo:#a5b4fc;--canvas-text-purple:#d8b4fe;--canvas-text-pink:#f9a8d4;--canvas-note-text-gray:#374151;--canvas-note-text-red:#7f1d1d;--canvas-note-text-orange:#7c2d12;--canvas-note-text-yellow:#713f12;--canvas-note-text-green:#14532d;--canvas-note-text-teal:#134e4a;--canvas-note-text-blue:#1e40af;--canvas-note-text-indigo:#312e81;--canvas-note-text-purple:#6b21a8;--canvas-note-text-pink:#831843}}.canvas-surface{touch-action:none;width:100%;height:100%;display:block}.canvas-grid-minor{fill:var(--canvas-grid)}.canvas-grid-major{fill:var(--canvas-grid-major)}.canvas-text{fill:var(--item-text,var(--canvas-ink));pointer-events:none;font-size:14px}.canvas-link{fill:var(--canvas-link);pointer-events:auto;cursor:pointer}.canvas-link.is-hovered{text-decoration:underline}.canvas-link-hit{fill:#0000;pointer-events:all;cursor:pointer}.canvas-item{cursor:move}.canvas-item.is-locked{cursor:default}.canvas-item{transition:opacity .15s ease-out}.canvas-item.is-faded{opacity:.4}.fc-shape{fill:var(--item-fill,var(--canvas-shape-fill));stroke:var(--item-stroke,var(--canvas-shape-stroke));fill-opacity:var(--item-fill-opacity,1);stroke-opacity:var(--item-stroke-opacity,1)}.fc-shape.fc-shape-line{fill:none}.fc-shape.fc-shape-body{stroke:none}.fc-shape.is-selected,.note.is-selected{stroke:var(--canvas-accent);stroke-opacity:1}.fc-connector-line{fill:none;stroke:var(--item-stroke,var(--canvas-shape-stroke));stroke-linecap:round}.fc-connector-hit{fill:none;stroke:#0000;stroke-width:14px}.drawing-line,.drawing-hit{fill:none;stroke-linecap:round;stroke-linejoin:round}.drawing-line{stroke:var(--item-stroke,var(--canvas-shape-stroke))}.drawing-hit{stroke:#0000;pointer-events:stroke}.canvas-draw-preview{pointer-events:none}.fc-connector-arrow{fill:var(--item-stroke,var(--canvas-shape-stroke))}.fc-connector.is-selected .fc-connector-line{stroke:var(--canvas-accent)}.fc-connector.is-selected .fc-connector-arrow{fill:var(--canvas-accent)}.fc-connector-label-box{fill:var(--canvas-bg);stroke:var(--canvas-border)}.fc-connector-label{font-size:13px}.fc-connector-hit,.fc-connector-line{cursor:pointer}.fc-connector-label-group{cursor:grab}.note{fill:var(--item-fill,var(--canvas-note-fill));stroke:var(--item-stroke,var(--canvas-note-stroke));fill-opacity:var(--item-fill-opacity,1);stroke-opacity:var(--item-stroke-opacity,1)}.note-text{fill:var(--item-text,var(--item-ink,var(--canvas-note-ink)))}.note-text .canvas-link{fill:var(--item-link,var(--canvas-note-link))}.note-shadow{fill:var(--item-shadow,var(--canvas-note-shadow));filter:blur(6px);fill-opacity:var(--item-fill-opacity,1)}.note-sheen{fill-opacity:var(--item-fill-opacity,1);pointer-events:none}.note-sheen-top{stop-color:var(--canvas-note-sheen-top)}.note-sheen-middle{stop-color:var(--canvas-note-sheen-middle)}.note-sheen-bottom{stop-color:var(--canvas-note-sheen-bottom)}.frame-body{fill:var(--item-fill,var(--canvas-frame-fill));fill-opacity:var(--item-fill-opacity,1);stroke:var(--item-stroke,var(--canvas-frame-stroke));stroke-opacity:var(--item-stroke-opacity,1);stroke-width:var(--frame-width,1.5);pointer-events:none}.frame-body.is-selected{stroke:var(--canvas-accent);stroke-width:2.5px}.canvas-item.is-drop-target .frame-body{stroke:var(--canvas-accent);stroke-width:3px}.canvas-item.is-drop-target .frame-title{fill:var(--canvas-accent)}.frame-edge{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke}.frame-title-bar{fill:#0000;pointer-events:all;cursor:move}.frame-title{fill:var(--item-text,var(--canvas-ink-muted));font-weight:600}.task-list-body{fill:var(--item-fill,var(--canvas-frame-fill));stroke:var(--item-stroke,var(--canvas-frame-stroke));fill-opacity:var(--item-fill-opacity,1);stroke-opacity:var(--item-stroke-opacity,1);stroke-width:1px;vector-effect:non-scaling-stroke}.task-card-body{fill:var(--item-fill,var(--canvas-task-fill));stroke:var(--item-stroke,var(--canvas-border));fill-opacity:var(--item-fill-opacity,1);stroke-opacity:var(--item-stroke-opacity,1);stroke-width:1px;vector-effect:non-scaling-stroke}.canvas-item.is-drop-target .task-list-body{stroke:var(--canvas-accent);stroke-opacity:1}.task-list-count,.task-list-empty,.task-add-label{fill:var(--canvas-ink-muted);font-size:14px}.task-list-count{font-variant-numeric:tabular-nums}.task-card.is-done .task-card-title{fill:var(--canvas-ink-muted);text-decoration:line-through}.task-check,.task-add{cursor:pointer;outline:none}.task-check-hit{fill:#0000}.task-check-box{fill:var(--item-fill,var(--canvas-task-fill));stroke:var(--item-stroke,var(--canvas-ink-muted));stroke-width:1.5px}.task-check:hover .task-check-box{stroke:var(--canvas-task-done)}.task-card.is-done .task-check-box{fill:var(--canvas-task-done);stroke:var(--canvas-task-done)}.task-check-mark{fill:none;stroke:var(--canvas-task-done-ink);stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round}.task-add-body{fill:#0000;stroke:var(--item-stroke,var(--canvas-border));stroke-opacity:var(--item-stroke-opacity,1);stroke-dasharray:4 3;stroke-width:1px;vector-effect:non-scaling-stroke}.task-add:hover .task-add-body{fill:var(--item-stroke,var(--canvas-accent));fill-opacity:.12;stroke:var(--item-stroke,var(--canvas-accent))}.task-add:hover .task-add-label{fill:var(--canvas-ink)}.task-check:focus-visible .task-check-box,.task-add:focus-visible .task-add-body{stroke:var(--canvas-focus);stroke-width:2.5px}.canvas-item.is-locked .task-check,.canvas-item.is-locked .task-add{cursor:inherit}.screen-body{fill:var(--item-fill,var(--canvas-wire-surface));fill-opacity:var(--item-fill-opacity,1);stroke:var(--item-stroke,var(--canvas-wire-line));stroke-opacity:var(--item-stroke-opacity,1);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.screen-body.is-selected,.canvas-item.is-drop-target .screen-body{stroke:var(--canvas-accent);stroke-width:2.5px}.screen-edge{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke}.screen-bar,.screen-title-bar{fill:var(--canvas-wire-bar);pointer-events:all;cursor:move}.screen-bar.is-status,.screen-title-bar{fill:#0000}.screen-divider{fill:none;stroke:var(--item-stroke,var(--canvas-wire-line));stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.screen-mark{fill:none;stroke:var(--canvas-wire-mark);stroke-width:1.5px;stroke-linecap:round;pointer-events:none}.screen-mark.is-filled{fill:var(--canvas-wire-mark);stroke:none}.screen-light{pointer-events:none}.screen-light.is-close{fill:var(--canvas-stroke-red)}.screen-light.is-minimize{fill:var(--canvas-stroke-yellow)}.screen-light.is-zoom{fill:var(--canvas-stroke-green)}.screen-time{fill:var(--canvas-ink);pointer-events:none;font-size:14px;font-weight:600}.screen-title{pointer-events:none}.wire-body,.wire-mark{fill:var(--item-fill,var(--canvas-wire-surface));fill-opacity:var(--item-fill-opacity,1);stroke:var(--item-stroke,var(--canvas-wire-line));stroke-opacity:var(--item-stroke-opacity,1);stroke-width:1.5px;vector-effect:non-scaling-stroke}.wire-body.is-primary{fill:var(--item-fill,var(--canvas-wire-strong));stroke:var(--item-stroke,var(--canvas-wire-strong))}.wire-body.is-raised{fill:var(--item-fill,var(--canvas-wire-surface))}.wire-lip{fill:var(--item-stroke,var(--canvas-wire-line));fill-opacity:var(--item-stroke-opacity,1);stroke:var(--item-stroke,var(--canvas-wire-line));stroke-width:1.5px;vector-effect:non-scaling-stroke}.wire-lip-shade{fill:var(--canvas-wire-lip-shade)}.wire-shine{fill:none;stroke:var(--canvas-wire-shine);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke}.wire-body.is-text{fill:#0000;stroke:#0000}.wire-body.is-image{fill:var(--item-fill,var(--canvas-wire-shade))}.wire-words.is-primary{fill:var(--item-text,var(--canvas-wire-on-strong))}.wire-words.is-hint{fill:var(--item-text,var(--canvas-ink-muted))}.wire-cross,.wire-glyph.is-line{fill:none;stroke:var(--item-stroke,var(--canvas-wire-line));stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.wire-glyph{fill:var(--canvas-wire-mark)}.wire-icon{fill:none;stroke:var(--item-stroke,var(--canvas-wire-strong));stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}.wire-icon-choice-glyph{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}.wire-hit,.wire-control-hit{fill:#0000}.wire.is-checked .wire-mark,.wire-mark-on{fill:var(--item-fill,var(--canvas-wire-strong));stroke:var(--item-stroke,var(--canvas-wire-strong))}.wire-mark-on{stroke:none}.wire.is-radio.is-checked .wire-mark{fill:var(--item-fill,var(--canvas-wire-surface))}.wire.is-radio .wire-mark-on{fill:var(--item-stroke,var(--canvas-wire-strong))}.wire-tick{fill:none;stroke:var(--canvas-wire-on-strong);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.wire-knob{fill:var(--canvas-wire-surface);stroke:var(--canvas-wire-line);stroke-width:1px;vector-effect:non-scaling-stroke}.wire-knob.is-slider{stroke:var(--item-stroke,var(--canvas-wire-strong));stroke-width:1.5px}.wire-scroll-track{fill:var(--item-fill,var(--canvas-wire-bar))}.wire-scroll-thumb{fill:var(--item-stroke,var(--canvas-wire-line))}.wire-control{cursor:pointer;outline:none}.wire-control:focus-visible .wire-mark,.wire-control:focus-visible .wire-knob{stroke:var(--canvas-focus);stroke-width:2.5px}.canvas-item.is-locked .wire-control{cursor:inherit}.text-item-frame{fill:#0000;stroke:none}.canvas-item:not(.is-locked):hover .text-item-frame,.canvas-drop-preview .text-item-frame,.text-item-frame.is-selected{stroke:var(--canvas-ink-muted);stroke-opacity:.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.canvas-handle{fill:var(--canvas-surface);stroke:var(--canvas-accent)}.canvas-locked{pointer-events:none}.canvas-locked-outline{fill:none;stroke:var(--canvas-ink-muted)}.canvas-locked-badge circle{fill:var(--canvas-surface);stroke:var(--canvas-border)}.canvas-locked-badge rect,.canvas-locked-badge path{fill:none;stroke:var(--canvas-ink-muted);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.canvas-frame-outline{fill:none;stroke:var(--canvas-accent);pointer-events:none}.canvas-frame-edge{stroke:#0000;pointer-events:stroke}.canvas-rotate{cursor:grab}.canvas-rotate-hit{fill:#0000}.canvas-rotate-icon{fill:none;stroke:var(--canvas-ink);stroke-linecap:round;pointer-events:none}.canvas-rotate-head{fill:var(--canvas-ink);pointer-events:none}.canvas-rotate:hover .canvas-rotate-icon{stroke:var(--canvas-accent)}.canvas-rotate:hover .canvas-rotate-head{fill:var(--canvas-accent)}.canvas-drop-target{pointer-events:none}.canvas-drop-target polygon{fill:var(--canvas-accent-soft);stroke:var(--canvas-accent)}.canvas-drop-target circle{fill:var(--canvas-accent);stroke:var(--canvas-surface)}.canvas-port-bridge{stroke:#0000;pointer-events:stroke}.canvas-port-stem{stroke:var(--canvas-accent);pointer-events:none}.canvas-port,.canvas-link-end{fill:var(--canvas-surface);stroke:var(--canvas-accent);cursor:crosshair}.canvas-link-handle{fill:var(--canvas-accent);stroke:var(--canvas-surface)}.canvas-link-handle.is-add{fill:var(--canvas-surface);stroke:var(--canvas-accent)}.canvas-port:hover,.canvas-link-handle:hover,.canvas-link-end:hover{fill:var(--canvas-accent)}.canvas-guides{fill:none;stroke:var(--canvas-guide);pointer-events:none}.canvas-ghost{opacity:.45;pointer-events:none}.canvas-marquee{fill:var(--canvas-accent-soft);stroke:var(--canvas-accent);pointer-events:none}.canvas-options{z-index:2;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 3px var(--shadow);gap:calc(.25rem + 1px);padding:.25rem;display:flex;position:absolute}.canvas-choice{position:relative}.canvas-choice-button,.canvas-choice-item{border-radius:var(--radius);min-width:32px;min-height:32px;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:4px;padding:4px 6px;display:flex}.canvas-choice-button:hover,.canvas-choice-button[aria-expanded=true],.canvas-choice-item:hover,.canvas-choice-item[aria-pressed=true]{background:var(--line);color:var(--ink);border-color:#0000}.canvas-choice-button:focus-visible,.canvas-choice-item:focus-visible{outline:2px solid var(--canvas-focus);outline-offset:1px}.canvas-options-gap{background:var(--line);width:1px;margin:0}.canvas-options-action{border-radius:var(--radius);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.canvas-options-action:hover:not(:disabled){background:var(--line);color:var(--ink);border-color:#0000}.canvas-options-action:focus-visible{outline:2px solid var(--canvas-focus);outline-offset:1px}.canvas-options-action:disabled{color:var(--canvas-ink-muted);opacity:.5;cursor:default}.canvas-action-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.canvas-choice-chevron{fill:none;width:10px;height:6px;stroke:var(--canvas-ink-muted);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.canvas-choice-menu{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 3px var(--shadow);flex-direction:column;gap:calc(.25rem + 1px);padding:.25rem;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.canvas-choice-menu.is-grid{display:grid}.canvas-choice-menu.is-grid .canvas-choice-item{position:relative}.canvas-choice-amount{border-top:1px solid var(--canvas-border);color:var(--canvas-ink-muted);grid-column:1/-1;align-items:center;gap:8px;margin-top:2px;padding:6px 4px 2px;font-size:12px;display:flex}.canvas-choice-amount input{min-width:0;accent-color:var(--canvas-accent);cursor:pointer;flex:1;margin:0}.canvas-choice-amount-value{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em}.canvas-swatch{width:18px;height:18px}.canvas-swatch rect{fill:var(--canvas-surface);stroke:var(--canvas-border)}.canvas-swatch-none{stroke:var(--canvas-stroke-red);stroke-width:1.5px;stroke-linecap:round}.canvas-choice-check{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:14px;height:14px;position:absolute}.canvas-choice-check-halo{stroke:var(--canvas-surface);stroke-width:4px}.canvas-choice-check-mark{stroke:var(--canvas-ink);stroke-width:2px}.fc-arrows-icon{width:32px;height:16px}.canvas-choice-text,.canvas-choice-mixed{white-space:nowrap;font-size:12px;line-height:16px}.canvas-choice-mixed{min-width:32px;color:var(--canvas-ink-muted);font-style:italic}.canvas-text-editor{z-index:3;box-sizing:border-box;color:var(--canvas-ink);cursor:text;justify-content:center;align-items:center;display:flex;position:absolute;overflow:hidden}.canvas-text-editor-content{text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;width:100%;max-height:100%;caret-color:var(--canvas-accent);outline:none;font-family:inherit;overflow:hidden}.canvas-text-editor-placeholder{color:var(--canvas-ink-muted);pointer-events:none;position:absolute}.canvas-text-editor-content:focus-visible{outline:none}.canvas-palette,.canvas-actions,.canvas-zoom{z-index:2;border:1px solid var(--canvas-border);background:var(--canvas-surface);box-shadow:0 1px 3px var(--canvas-shadow);border-radius:8px;gap:4px;padding:6px;display:flex;position:absolute}.canvas-palette:hover,.canvas-palette:focus-within,.canvas-options:hover,.canvas-options:focus-within,.canvas-actions:hover,.canvas-actions:focus-within,.canvas-zoom:hover,.canvas-zoom:focus-within{z-index:5}.canvas-palette{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);height:fit-content;max-height:calc(100% - 128px);box-shadow:0 1px 3px var(--shadow);box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--canvas-border) transparent;flex-direction:column;gap:5px;margin-block:auto;padding:.25rem;top:64px;bottom:64px;left:12px;overflow:hidden auto}.canvas-palette-set{flex-direction:column;gap:5px;display:flex}.canvas-palette-set:nth-child(3)+.canvas-palette-set,.canvas-palette-set.is-pens{border-top:1px solid var(--line);padding-top:5px}.canvas-actions{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);max-width:calc(100% - 480px);box-shadow:0 1px 3px var(--shadow);flex-wrap:wrap;justify-content:flex-end;gap:calc(.25rem + 1px);padding:.25rem;top:12px;right:12px}.canvas-zoom{right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 3px var(--shadow);align-items:stretch;gap:calc(.25rem + 1px);padding:.25rem}.canvas-zoom .canvas-button{min-width:2rem;padding:0 6px}.canvas-zoom .canvas-button:nth-child(2){font-variant-numeric:tabular-nums;min-width:3rem}.canvas-actions-gap{background:var(--line);width:1px;margin:0}.canvas-button{border:1px solid var(--canvas-border);background:var(--canvas-surface);min-height:32px;color:var(--canvas-ink);font:inherit;cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.canvas-button.is-quiet{color:var(--ink-muted);background:0 0;border-color:#0000}.canvas-button.is-quiet:hover:not(:disabled){background:var(--line);color:var(--ink);border-color:#0000}.canvas-button.is-icon{place-items:center;width:32px;padding:0;display:grid}.canvas-button:hover:not(:disabled){border-color:var(--canvas-accent);background:var(--canvas-accent-soft)}.canvas-button:active:not(:disabled){transform:translateY(1px)}.canvas-button:focus-visible{outline:2px solid var(--canvas-focus);outline-offset:1px}.canvas-button:disabled{color:var(--canvas-ink-muted);opacity:.5;cursor:default}.canvas-palette-button{touch-action:none;background:0 0;border-color:#0000;place-items:center;width:2rem;height:2rem;min-height:0;padding:0;display:grid;position:relative}.canvas-palette-button:active:not(:disabled){transform:none}.canvas-palette-button.is-dragging{cursor:grabbing;border-color:var(--canvas-accent);background:var(--canvas-accent-soft)}.canvas-palette-button.is-on{border-color:var(--canvas-accent);background:var(--canvas-accent-soft);color:var(--canvas-accent)}.canvas-palette-off,.canvas-palette-button.is-on:hover>svg:not(.canvas-palette-off),.canvas-palette-button.is-on:focus-visible>svg:not(.canvas-palette-off){display:none}.canvas-palette-button.is-on:hover .canvas-palette-off,.canvas-palette-button.is-on:focus-visible .canvas-palette-off{display:block}.canvas-palette-icon{pointer-events:none;width:22px;height:20px;overflow:visible}.canvas-palette-icon *{vector-effect:non-scaling-stroke}.canvas-tooltip{z-index:1;background:var(--canvas-ink);color:var(--canvas-surface);text-align:left;white-space:nowrap;box-shadow:0 2px 6px var(--canvas-tooltip-shadow);opacity:0;visibility:hidden;pointer-events:none;border-radius:6px;flex-direction:column;gap:1px;padding:5px 9px;font-size:13px;font-weight:500;line-height:1.3;transition:opacity .12s,transform .12s,visibility 0s linear .12s;display:flex;position:fixed;transform:translate(-4px,-50%)}.canvas-tooltip:before{content:"";border:5px solid #0000;border-right-color:var(--canvas-ink);position:absolute;top:50%;right:100%;transform:translateY(-50%)}.canvas-palette-button:hover .canvas-tooltip,.canvas-palette-button:focus-visible .canvas-tooltip{opacity:1;visibility:visible;transition-delay:0s;transform:translateY(-50%)}.canvas-choice-button,.canvas-options-action{position:relative}.canvas-tooltip.is-under{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-4px)}.canvas-tooltip.is-under:before{border-right-color:#0000;border-bottom-color:var(--canvas-ink);inset:auto auto 100% 50%;transform:translate(-50%)}.canvas-choice-button:hover>.canvas-tooltip,.canvas-choice-button:focus-visible>.canvas-tooltip,.canvas-options-action:hover>.canvas-tooltip,.canvas-options-action:focus-visible>.canvas-tooltip{opacity:1;visibility:visible;transition-delay:0s;transform:translate(-50%)}.canvas-choice-button[aria-expanded=true]>.canvas-tooltip{opacity:0;visibility:hidden}.canvas-button.is-icon{position:relative}.canvas-button.is-icon:disabled{opacity:1}.canvas-button.is-icon:disabled>svg{opacity:.5}.canvas-tooltip.is-below{position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-4px)}.canvas-tooltip.is-below:before{border-right-color:#0000;border-bottom-color:var(--canvas-ink);top:auto;bottom:100%;right:11px;transform:none}.canvas-button.is-icon:hover>.canvas-tooltip,.canvas-button.is-icon:focus-visible>.canvas-tooltip{opacity:1;visibility:visible;transition-delay:0s;transform:translateY(0)}.canvas-palette-menu{z-index:3;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 3px var(--shadow);grid-template-columns:repeat(4,2rem);gap:5px;padding:.25rem;display:grid;position:fixed}.canvas-palette-menu.is-dragging{visibility:hidden}.canvas-tooltip.is-above{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.canvas-tooltip.is-above:before{border-right-color:#0000;border-top-color:var(--canvas-ink);top:100%;left:50%;right:auto;transform:translate(-50%)}.canvas-palette-button:hover>.canvas-tooltip.is-above,.canvas-palette-button:focus-visible>.canvas-tooltip.is-above{transform:translate(-50%)}.canvas-palette-button[aria-expanded=true]{border-color:var(--canvas-accent);background:var(--canvas-accent-soft);color:var(--canvas-accent)}.canvas-palette-button[aria-expanded=true]>.canvas-tooltip,.canvas-palette-button.is-dragging .canvas-tooltip{opacity:0;visibility:hidden}.canvas-drop-preview{opacity:.6;pointer-events:none}@media (prefers-reduced-motion:reduce){.canvas-tooltip,.canvas-item{transition:none}}.canvas-problems{z-index:2;border:1px solid var(--canvas-danger-ink);background:var(--canvas-danger-bg);max-width:min(640px,100% - 32px);max-height:40%;color:var(--canvas-danger-ink);-webkit-user-select:text;user-select:text;border-radius:8px;padding:10px 14px;font-size:13px;position:absolute;bottom:12px;left:50%;overflow:auto;transform:translate(-50%)}.canvas-problems-title{margin:0 0 6px;font-size:13px}.canvas-problems ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.canvas-problems li{justify-content:space-between;align-items:center;gap:10px;display:flex}.board-canvas{position:absolute;inset:0}.canvas-menu{z-index:4;border:1px solid var(--canvas-border);background:var(--canvas-surface);min-width:180px;box-shadow:0 4px 12px var(--canvas-shadow-strong);border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute}.canvas-menu-item{min-height:32px;color:var(--canvas-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:24px;padding:4px 10px;font-size:13px;display:flex}.canvas-menu-item:hover,.canvas-menu-item:focus{background:var(--canvas-accent-soft);outline:none}.canvas-menu-item:focus-visible{outline:2px solid var(--canvas-focus);outline-offset:-2px}.canvas-menu-label{align-items:center;gap:8px;display:flex}.canvas-menu-icon{place-items:center;width:16px;height:16px;display:grid}.canvas-menu-item[aria-disabled=true]{color:var(--canvas-ink-muted);opacity:.5;cursor:default}.canvas-menu-item[aria-disabled=true]:hover{background:0 0}.canvas-menu-shortcut{color:var(--canvas-ink-muted)}.canvas-menu-separator{background:var(--canvas-border);height:1px;margin:4px 6px}.canvas-surface[data-held] *{cursor:inherit}.image-hit{fill:#0000;stroke:none}.image-border{fill:none;stroke:var(--item-stroke,var(--canvas-shape-stroke));stroke-opacity:var(--item-stroke-opacity,1)}.image-border.is-selected{stroke:var(--canvas-accent);stroke-opacity:1}.image-loading{fill:var(--canvas-ink-muted);fill-opacity:.08;stroke:none}.image-missing-box{fill:var(--canvas-surface);stroke:var(--canvas-ink-muted);stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.image-missing-drawing{fill:none;stroke:var(--canvas-ink-muted);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.image-missing-text{fill:var(--canvas-ink-muted);font-size:13px}:root{--ink:#111827;--ink-muted:#4b5563;--paper:#fff;--surface:#f9fafb;--panel:#fff;--line:#e5e7eb;--accent:#1f2937;--accent-hover:#374151;--accent-ink:#fff;--danger:#b91c1c;--danger-hover:#991b1b;--focus:#2563eb;--shadow:#0f172a1a;--backdrop:#11182766;--radius:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--paper);font-family:system-ui,-apple-system,Segoe UI,sans-serif}:root[data-theme=dark]{--ink:#f3f4f6;--ink-muted:#9ca3af;--paper:#111827;--surface:#1f2937;--panel:#1f2937;--line:#374151;--accent:#e5e7eb;--accent-hover:#d1d5db;--accent-ink:#111827;--danger:#f87171;--danger-hover:#fca5a5;--focus:#60a5fa;--shadow:#0006;--backdrop:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#f3f4f6;--ink-muted:#9ca3af;--paper:#111827;--surface:#1f2937;--panel:#1f2937;--line:#374151;--accent:#e5e7eb;--accent-hover:#d1d5db;--accent-ink:#111827;--danger:#f87171;--danger-hover:#fca5a5;--focus:#60a5fa;--shadow:#0006;--backdrop:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}body{margin:0}h1{margin:0;font-size:1.5rem}h2{margin:0 0 1rem;font-size:1.125rem}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.workspace{max-width:56rem;margin:0 auto;padding:2rem 1rem}.page-header,.board-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.board-header{justify-content:flex-start}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.button{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:pointer;min-height:2.5rem;padding:0 1rem}.button:hover{background:var(--surface)}.settings-button{width:2.5rem;color:var(--ink);justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.button:disabled{cursor:default;opacity:.6}.button-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.button-primary:hover{background:var(--accent-hover)}.button-danger{border-color:var(--danger);background:var(--danger);color:var(--accent-ink)}.button-danger:hover{background:var(--danger-hover)}.button-quiet{color:var(--ink-muted);background:0 0;border-color:#0000}.button-danger-text{color:var(--danger)}.back{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;margin-bottom:1rem;padding:.25rem 0;text-decoration:none;display:inline-block}.back:hover{color:var(--ink);text-decoration:underline}.board-header .back{margin-bottom:0}.back-icon{border-radius:var(--radius);justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;display:inline-flex}.back-icon:hover{background:var(--line)}.board{z-index:1;background:var(--surface);position:fixed;inset:0}.board-header{z-index:3;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);max-width:456px;box-shadow:0 1px 3px var(--shadow);flex-wrap:nowrap;gap:calc(.25rem + 1px);margin:0;padding:.25rem;position:absolute;top:12px;left:12px}.board-header h1{margin:0;font-size:1rem}.board-title,.board-title-input,.board-title-sizer:after{border-radius:var(--radius);border:1px solid #0000;padding:3px .5rem;font-size:1rem;font-weight:700;line-height:1.5}.board-title{text-overflow:ellipsis;white-space:nowrap;cursor:text;min-width:0;overflow:hidden}.board-header .back,.board-header .theme-switch{flex:none}.board-title:hover{border-color:var(--line)}.board-title:focus-visible{border-color:var(--line);outline:none}.board-title-edit{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;display:flex}.board-title-sizer{min-width:0;display:inline-grid}.board-title-sizer:after{content:attr(data-value);white-space:pre;visibility:hidden;grid-area:1/1;min-width:0;overflow:hidden}.board-title-input{box-sizing:border-box;width:0;min-width:100%;color:inherit;background:0 0;border-color:#0000;grid-area:1/1;margin:0}.board-title-input:focus-visible{outline:none}.icon-button{border-radius:var(--radius);width:1.75rem;height:1.75rem;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{border-color:var(--line);background:var(--paper);color:var(--ink)}.theme-switch{position:relative}.theme-switch-button{border:1px solid var(--line);border-radius:var(--radius);min-width:2.5rem;min-height:1.75rem;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:4px;padding:0 6px;display:flex}.theme-switch-button:hover,.theme-switch-button[aria-expanded=true]{background:var(--surface)}.theme-switch-chevron{fill:none;width:10px;height:6px;stroke:var(--ink-muted);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.theme-switch-menu{z-index:5;border:1px solid var(--line);background:var(--paper);box-shadow:0 2px 6px var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.theme-switch .icon-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-muted);text-align:center;padding:2rem}.rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row-open{min-height:3rem;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:16rem;align-items:center;gap:1rem;padding:.5rem;text-decoration:none;display:flex}.row-open:hover .row-name{text-decoration:underline}.row-name{overflow-wrap:anywhere;font-weight:600}.row-meta{color:var(--ink-muted);font-size:.875rem}.row-size{white-space:nowrap}.row-action{width:2rem;height:2rem}.row-action.is-danger:hover{color:var(--danger)}.banner{z-index:2;border:1px solid var(--danger);border-radius:var(--radius);background:var(--surface);color:var(--danger);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.5rem 1rem;display:flex;position:relative}.banner-quiet{border-color:var(--line);color:var(--ink-muted)}.banners:has(+.board){z-index:2;gap:.5rem;width:max-content;max-width:calc(100vw - 184px);display:grid;position:fixed;top:72px;left:50%;transform:translate(-50%)}.banners:has(+.board) .banner{box-shadow:0 1px 3px var(--shadow);margin:0}.folder{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.settings-section{border-top:1px solid var(--line);justify-items:start;gap:.75rem;padding:1.25rem 0;display:grid}.settings-section h2{margin:0}.settings-line{color:var(--ink-muted);margin:0}.settings-link{color:var(--ink);text-underline-offset:2px}.settings-link:hover{text-decoration-thickness:2px}.folder-name{color:var(--ink);font-weight:600}.folder-note{flex-basis:100%;margin:0;font-size:.875rem}.banner ul{margin:0;padding-left:1.25rem}.update-notice{z-index:3;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:max-content;max-width:calc(100vw - 2rem);color:var(--ink);box-shadow:0 1px 3px var(--shadow);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem .5rem .5rem 1rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.update-notice p{margin:0}.dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:min(28rem,100vw - 2rem);color:var(--ink);padding:1.5rem}.dialog::backdrop{background:var(--backdrop)}.dialog-form{flex-direction:column;gap:1rem;display:flex}.dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.field{flex-direction:column;gap:.25rem;display:flex}.field input{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);min-height:2.5rem;padding:0 .75rem}.field input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);margin:0}.canvas-placeholder{border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface);min-height:60vh;color:var(--ink-muted);place-items:center;display:grid}.startup-error{color:var(--danger);margin:2rem}
