@layer joint{:root{--jj-color-dark-900:#6f859b;--jj-color-dark-800:#566c81;--jj-color-dark-700:#425567;--jj-color-dark-600:#344351;--jj-color-dark-500:#293a49;--jj-color-dark-400:#253544;--jj-color-dark-300:#202f3e;--jj-color-dark-200:#1a2733;--jj-color-dark-100:#131e29;--jj-color-light-100:#f5f6f8;--jj-color-light-125:#f3f6f8;--jj-color-light-150:#f0f4f7;--jj-color-light-200:#eaf0f4;--jj-color-light-300:#e4ebf1;--jj-color-light-400:#dde6ed;--jj-color-light-500:#cfdbe4;--jj-color-light-600:#c1cfda;--jj-color-light-700:#a6b6c5;--jj-color-light-800:#8a9eb0;--jj-color-light-900:#6f859b;--jj-color-success:#36a18b;--jj-color-destructive:#e03131;--jj-color-valid:#566c81;--jj-color-invalid:#868e96;--jj-radius-sm:2px;--jj-radius-md:3px;--jj-radius-lg:4px;--jj-space-xs:2px;--jj-space-sm:4px;--jj-space-md:6px;--jj-space-lg:10px;--jj-stroke-width:2px;--jj-color-primary:var(--jj-color-dark-500);--jj-color-primary-contrast:var(--jj-color-light-100);--jj-color-surface:var(--jj-color-light-100);--jj-color-shape-surface:var(--jj-color-light-150);--jj-color-shape-border:var(--jj-color-light-800);--jj-color-link:var(--jj-color-light-800);--jj-color-tool:var(--jj-color-light-100);--jj-color-tool-border:var(--jj-color-light-900);--jj-color-text:var(--jj-color-dark-200);--jj-color-border:var(--jj-color-light-500);--jj-color-border-subtle:var(--jj-color-light-200);--jj-drag-cursor:move;--jj-dragging-cursor:move;--jj-port-drag-cursor:crosshair;--jj-port-dragging-cursor:crosshair;--jj-transition-duration:.2s}@media (resolution>=1.5x){:root{--jj-stroke-width:1.5px}}:root{--jj-box-color:var(--jj-color-shape-surface);--jj-box-hover-border-color:var(--jj-color-primary);--jj-box-fg-color:var(--jj-color-text);--jj-box-border-color:var(--jj-color-shape-border);--jj-box-border-width:var(--jj-stroke-width);--jj-box-border-radius:var(--jj-radius-lg);--jj-box-padding:8px 12px;--jj-box-font-size:14px;--jj-box-font-family:sans-serif}.jj-is-measuring{opacity:0;pointer-events:none}.jj-box{background:var(--jj-box-color);color:var(--jj-box-fg-color);border-width:var(--jj-box-border-width);border-style:solid;border-color:var(--jj-box-border-color);border-radius:var(--jj-box-border-radius);padding:var(--jj-box-padding);font-size:var(--jj-box-font-size);font-family:var(--jj-box-font-family);transition:border-color var(--jj-transition-duration)}.jj-box:hover{border-color:var(--jj-box-hover-border-color);cursor:var(--jj-drag-cursor)}:root{--jj-port-color:var(--jj-color-surface);--jj-port-border-color:var(--jj-color-link);--jj-port-border-width:var(--jj-stroke-width);--jj-port-label-color:var(--jj-color-light-900);--jj-port-label-font-size:10px;--jj-port-label-font-family:Arial, sans-serif}.jj-port{fill:var(--jj-port-color);stroke:var(--jj-port-border-color);stroke-width:var(--jj-port-border-width);transition:fill var(--jj-transition-duration),stroke var(--jj-transition-duration),stroke-width var(--jj-transition-duration)}.jj-port[magnet=active]{cursor:var(--jj-port-drag-cursor)}.jj-port-label{fill:var(--jj-port-label-color);font-size:var(--jj-port-label-font-size);font-family:var(--jj-port-label-font-family)}:root{--jj-link-label-bg-color:var(--jj-color-light-200);--jj-link-label-color:var(--jj-color-text);--jj-link-label-font-size:10px;--jj-link-label-font-family:Arial, sans-serif;--jj-link-label-border-color:var(--jj-color-light-700);--jj-link-label-border-width:var(--jj-stroke-width);--jj-link-label-border-radius:var(--jj-radius-sm)}.jj-link-label{fill:var(--jj-link-label-color);font-size:var(--jj-link-label-font-size);font-family:var(--jj-link-label-font-family)}.jj-link-label-bg{fill:var(--jj-link-label-bg-color);stroke:var(--jj-link-label-border-color);stroke-width:var(--jj-link-label-border-width);transition:stroke var(--jj-transition-duration)}.jj-link-label-bg:hover{stroke:var(--jj-color-light-900)}rect.jj-link-label-bg{rx:var(--jj-link-label-border-radius);ry:var(--jj-link-label-border-radius)}:root{--jj-link-color:var(--jj-color-link);--jj-link-hover-color:var(--jj-color-primary);--jj-link-width:var(--jj-stroke-width);--jj-link-dash:none;--jj-link-line-cap:butt;--jj-link-connecting-color:var(--jj-color-link);--jj-link-connecting-width:var(--jj-stroke-width);--jj-link-connecting-dash:8 4}.jj-link-line{stroke:var(--jj-link-color);stroke-width:var(--jj-link-width);stroke-dasharray:var(--jj-link-dash);stroke-linecap:var(--jj-link-line-cap);transition:stroke var(--jj-transition-duration)}.jj-link-wrapper:hover+.jj-link-line{stroke:var(--jj-link-hover-color)}.jj-is-connecting{--jj-link-color:var(--jj-link-connecting-color);--jj-link-width:var(--jj-link-connecting-width);--jj-link-dash:var(--jj-link-connecting-dash)}.jj-is-snapped{--jj-link-color:var(--jj-color-primary)}:root{--jj-paper-color:var(--jj-color-light-300);--jj-paper-grid-color:var(--jj-color-light-700);--jj-highlighter-connecting-color:var(--jj-color-primary);--jj-highlighter-embedding-color:var(--jj-color-primary);--jj-port-hover-color:var(--jj-color-shape-surface);--jj-port-hover-border-color:var(--jj-color-link);--jj-port-hover-border-width:calc(var(--jj-stroke-width) * 2);--jj-port-available-color:var(--jj-color-dark-800);--jj-port-available-border-color:var(--jj-color-dark-800);--jj-port-available-border-width:var(--jj-port-border-width);--jj-port-connecting-color:var(--jj-color-primary);--jj-port-connecting-border-color:var(--jj-color-primary);--jj-port-connecting-border-width:var(--jj-port-border-width);--jj-box-available-border-color:var(--jj-color-valid)}.jj-paper{background-color:var(--jj-paper-color);height:-webkit-fill-available;height:-moz-available;height:stretch}.jj-port[magnet=active]:not(.jj-is-magnet-available):hover{fill:var(--jj-port-hover-color);stroke:var(--jj-port-hover-border-color);stroke-width:var(--jj-port-hover-border-width)}.jj-port.jj-is-magnet-available{fill:var(--jj-port-available-color);stroke:var(--jj-port-available-border-color);stroke-width:var(--jj-port-available-border-width)}.jj-port.jj-is-connecting{fill:var(--jj-port-connecting-color);stroke:var(--jj-port-connecting-border-color);stroke-width:var(--jj-port-connecting-border-width)}.jj-is-dragging .jj-port[magnet=active]{cursor:var(--jj-port-dragging-cursor)}.jj-is-dragging .jj-box{cursor:var(--jj-dragging-cursor)}.jj-is-element-available .jj-box{border-color:var(--jj-box-available-border-color)}.jj-magnet-highlighter{transition:opacity var(--jj-transition-duration) ease;opacity:1}@starting-style{.jj-magnet-highlighter{opacity:0}}:root{--jj-paper-border-color:var(--jj-color-border);--jj-paper-border-style:solid;--jj-paper-border-width:1px;--jj-paper-box-shadow:0 3px 5px #0003;--jj-paper-scroller-background:var(--jj-color-light-500)}.jj-paper-scroller{box-sizing:border-box;overscroll-behavior:contain;contain:size;background-color:var(--jj-paper-scroller-background);width:100%;height:100%;position:relative;overflow:scroll}.jj-paper-scroller .paper-scroller-background{vertical-align:top;margin:0;display:inline-block;position:relative;overflow:hidden}.jj-paper-scroller .jj-paper{border-width:var(--jj-paper-border-width);border-style:var(--jj-paper-border-style);border-color:var(--jj-paper-border-color);box-shadow:var(--jj-paper-box-shadow);margin:0;display:inline-block}.jj-paper-scroller .jj-paper>svg{display:block}.jj-paper-scroller[data-cursor=grab]{cursor:grab}.jj-paper-scroller[data-cursor=grab].is-panning{cursor:grabbing}:root{--jj-halo-group-offset:var(--jj-space-lg);--jj-halo-handle-width:14px;--jj-halo-handle-height:14px;--jj-halo-handle-font-size:14px;--jj-halo-handle-color:var(--jj-color-primary)}.jj-halo .handle{pointer-events:auto;width:var(--jj-halo-handle-width);height:var(--jj-halo-handle-height);background-size:var(--jj-halo-handle-width) var(--jj-halo-handle-height);cursor:pointer;font-size:var(--jj-halo-handle-font-size);color:var(--jj-halo-handle-color);background-repeat:no-repeat}.jj-halo .handles.hidden,.jj-halo .handle.hidden{display:none}.jj-halo .joint-handle-group:empty{display:none!important}:root{--jj-snaplines-color:var(--jj-color-primary);--jj-snaplines-width:1px;--jj-snaplines-dash:6;--jj-snaplines-gap:4}.jj-snaplines .snapline{opacity:1}.jj-snaplines .snapline.horizontal{width:100%;height:var(--jj-snaplines-width);background-image:repeating-linear-gradient(to right,var(--jj-snaplines-color) 0,var(--jj-snaplines-color) calc(var(--jj-snaplines-dash) * 1px),transparent calc(var(--jj-snaplines-dash) * 1px),transparent calc((var(--jj-snaplines-dash) + var(--jj-snaplines-gap)) * 1px))}.jj-snaplines .snapline.vertical{height:100%;width:var(--jj-snaplines-width);background-image:repeating-linear-gradient(to bottom,var(--jj-snaplines-color) 0,var(--jj-snaplines-color) calc(var(--jj-snaplines-dash) * 1px),transparent calc(var(--jj-snaplines-dash) * 1px),transparent calc((var(--jj-snaplines-dash) + var(--jj-snaplines-gap)) * 1px))}.jj-paper-scroller .jj-snaplines .snapline.horizontal{width:700%;left:-300%}.jj-paper-scroller .jj-snaplines .snapline.vertical{height:700%;top:-300%}:root{--jj-selection-handle-width:20px;--jj-selection-handle-height:20px;--jj-selection-handle-color:var(--jj-color-primary);--jj-selection-group-offset:var(--jj-space-md);--jj-selection-wrapper-color:var(--jj-color-primary);--jj-selection-wrapper-width:2px;--jj-selection-wrapper-radius:var(--jj-radius-md);--jj-selection-wrapper-pattern:solid;--jj-selection-wrapper-padding:10px;--jj-selection-frame-color:var(--jj-color-primary);--jj-selection-frame-width:1.5px;--jj-selection-frame-radius:var(--jj-radius-md);--jj-selection-frame-pattern:dashed;--jj-selection-frame-padding:5px;--jj-selection-selected-element-border-color:var(--jj-color-primary);--jj-selection-selected-link-color:var(--jj-color-primary);--jj-selection-region-fill:var(--jj-color-tool);--jj-selection-region-border-color:var(--jj-color-tool-border);--jj-selection-region-border-width:1.5px;--jj-selection-region-border-radius:var(--jj-radius-md);--jj-selection-region-border-pattern:none;--jj-selection-region-fill-opacity:.08}.jj-selection{touch-action:none;pointer-events:none;display:none}.jj-selection.selected{display:block}.jj-selection .handle{pointer-events:auto;width:var(--jj-selection-handle-width);height:var(--jj-selection-handle-height);background-size:var(--jj-selection-handle-width) var(--jj-selection-handle-height);cursor:pointer;color:var(--jj-selection-handle-color);background-repeat:no-repeat}.jj-selection-wrapper{pointer-events:none;border-width:var(--jj-selection-wrapper-width);border-style:var(--jj-selection-wrapper-pattern);border-color:var(--jj-selection-wrapper-color);border-radius:var(--jj-selection-wrapper-radius);position:absolute}.jj-selection-frame{border-width:var(--jj-selection-frame-width);border-style:var(--jj-selection-frame-pattern);border-color:var(--jj-selection-frame-color);border-radius:var(--jj-selection-frame-radius)}.jj-selection-frame.selection-box-no-events{pointer-events:none}.jj-selection-region{stroke-width:var(--jj-selection-region-border-width);stroke:var(--jj-selection-region-border-color);stroke-dasharray:var(--jj-selection-region-border-pattern);fill:var(--jj-selection-region-fill);fill-opacity:var(--jj-selection-region-fill-opacity);rx:var(--jj-selection-region-border-radius);ry:var(--jj-selection-region-border-radius)}.jj-is-selected .jj-box{border-color:var(--jj-selection-selected-element-border-color)}.jj-is-selected .jj-link-line{stroke:var(--jj-selection-selected-link-color)}:root{--jj-ft-border-color:var(--jj-color-primary);--jj-ft-border-width:1.5px;--jj-ft-border-pattern:solid;--jj-ft-handle-size:8px;--jj-ft-handle-background:var(--jj-color-tool-border);--jj-ft-handle-border-color:var(--jj-color-tool-border);--jj-ft-handle-border-width:2px;--jj-ft-handle-hover-background:var(--jj-color-tool);--jj-ft-handle-hover-border-color:var(--jj-color-primary);--jj-ft-handle-hover-border-width:2px;--jj-ft-handle-active-background:var(--jj-color-primary);--jj-ft-handle-active-border-color:var(--jj-color-primary);--jj-ft-handle-radius:2px}.jj-free-transform{box-sizing:border-box;border-width:var(--jj-ft-border-width);border-style:var(--jj-ft-border-pattern);border-color:var(--jj-ft-border-color)}.jj-free-transform.in-operation{border-color:#0000}.jj-free-transform.in-operation .rotate,.jj-free-transform.in-operation .resize{display:none}.jj-free-transform.in-operation .rotate{cursor:grabbing}.jj-free-transform .resize,.jj-free-transform .rotate{box-sizing:border-box;background-color:var(--jj-ft-handle-background);border-width:var(--jj-ft-handle-border-width);border-style:solid;border-color:var(--jj-ft-handle-border-color)}:is(.jj-free-transform .resize,.jj-free-transform .rotate):hover{background-color:var(--jj-ft-handle-hover-background);border-color:var(--jj-ft-handle-hover-border-color);border-width:var(--jj-ft-handle-hover-border-width)}:is(.jj-free-transform .resize,.jj-free-transform .rotate).in-operation{background-color:var(--jj-ft-handle-active-background);border-color:var(--jj-ft-handle-active-border-color);display:block}.jj-free-transform .resize{--jj-ft-handle-offset:calc(-1 * ((var(--jj-ft-handle-size) / 2) + var(--jj-ft-border-width) / 2));border-radius:var(--jj-ft-handle-radius);width:var(--jj-ft-handle-size);height:var(--jj-ft-handle-size)}.jj-free-transform .resize[data-position=top-left]{top:var(--jj-ft-handle-offset);left:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=top-right]{top:var(--jj-ft-handle-offset);right:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=bottom-left]{bottom:var(--jj-ft-handle-offset);left:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=bottom-right]{bottom:var(--jj-ft-handle-offset);right:var(--jj-ft-handle-offset)}.jj-free-transform .resize[data-position=top]{top:var(--jj-ft-handle-offset);margin-left:calc(-1 * var(--jj-ft-handle-size) / 2);left:50%}.jj-free-transform .resize[data-position=bottom]{bottom:var(--jj-ft-handle-offset);margin-left:calc(-1 * var(--jj-ft-handle-size) / 2);left:50%}.jj-free-transform .resize[data-position=left]{left:var(--jj-ft-handle-offset);margin-top:calc(-1 * var(--jj-ft-handle-size) / 2);top:50%}.jj-free-transform .resize[data-position=right]{right:var(--jj-ft-handle-offset);margin-top:calc(-1 * var(--jj-ft-handle-size) / 2);top:50%}.jj-free-transform .resize.n{cursor:n-resize}.jj-free-transform .resize.s{cursor:s-resize}.jj-free-transform .resize.e{cursor:e-resize}.jj-free-transform .resize.w{cursor:w-resize}.jj-free-transform .resize.ne{cursor:ne-resize}.jj-free-transform .resize.nw{cursor:nw-resize}.jj-free-transform .resize.se{cursor:se-resize}.jj-free-transform .resize.sw{cursor:sw-resize}.jj-free-transform.no-orthogonal-resize .resize[data-position=top],.jj-free-transform.no-orthogonal-resize .resize[data-position=bottom],.jj-free-transform.no-orthogonal-resize .resize[data-position=left],.jj-free-transform.no-orthogonal-resize .resize[data-position=right]{display:none}.jj-free-transform.use-borders-to-resize .resize[data-position=top-left],.jj-free-transform.use-borders-to-resize .resize[data-position=top-right],.jj-free-transform.use-borders-to-resize .resize[data-position=bottom-left],.jj-free-transform.use-borders-to-resize .resize[data-position=bottom-right]{z-index:3}.jj-free-transform.use-borders-to-resize .resize[data-position=top],.jj-free-transform.use-borders-to-resize .resize[data-position=bottom]{opacity:0;z-index:2;width:calc(100% + var(--jj-ft-handle-size));border-radius:0;left:0}.jj-free-transform.use-borders-to-resize .resize[data-position=left],.jj-free-transform.use-borders-to-resize .resize[data-position=right]{opacity:0;z-index:1;height:calc(100% + var(--jj-ft-handle-size));border-radius:0;top:0}.jj-free-transform .rotate{--jj-ft-handle-offset:calc(-1 * ((var(--jj-ft-handle-size)) * 2 + var(--jj-ft-border-width) / 2));--jj-ft-handle-border-radius:50%;border-radius:var(--jj-ft-handle-border-radius);width:var(--jj-ft-handle-size);height:var(--jj-ft-handle-size);top:var(--jj-ft-handle-offset);left:var(--jj-ft-handle-offset);cursor:grab}.jj-free-transform.no-rotate .rotate,.jj-free-transform.no-rotation .rotate{display:none}:root{--jj-nav-background:var(--jj-color-surface);--jj-nav-viewport-border-color:color-mix(in srgb, var(--jj-color-primary) 70%, transparent);--jj-nav-viewport-fill-color:color-mix(in srgb, var(--jj-color-light-300) 12.5%, transparent);--jj-nav-viewport-border-width:1px;--jj-nav-viewport-border-pattern:solid;--jj-nav-viewport-border-radius:var(--jj-radius-md);--jj-nav-link-color:var(--jj-color-border);--jj-nav-link-width:1px;--jj-nav-element-color:var(--jj-color-light-300);--jj-nav-element-border-color:var(--jj-color-light-700);--jj-nav-element-border-width:1px}.jj-navigator{background-color:var(--jj-nav-background)}.jj-navigator .joint-paper{cursor:pointer;display:inline-block}.jj-navigator .joint-paper>svg{shape-rendering:optimizespeed;pointer-events:none}.jj-navigator .joint-paper .jj-navigator-element{vector-effect:non-scaling-stroke;fill:var(--jj-nav-element-color);stroke:var(--jj-nav-element-border-color);stroke-width:var(--jj-nav-element-border-width)}.jj-navigator .joint-paper .jj-navigator-link{vector-effect:non-scaling-stroke;stroke:var(--jj-nav-link-color);stroke-width:var(--jj-nav-link-width)}.jj-navigator .current-view{cursor:move;margin-top:calc(-1 * var(--jj-nav-viewport-border-width));margin-bottom:0;margin-right:0;margin-left:calc(-1 * var(--jj-nav-viewport-border-width));border-width:var(--jj-nav-viewport-border-width);border-style:var(--jj-nav-viewport-border-pattern);border-color:var(--jj-nav-viewport-border-color);border-radius:var(--jj-nav-viewport-border-radius);background-color:var(--jj-nav-viewport-fill-color)}.jj-navigator .current-view-control{cursor:nwse-resize;width:10px;height:10px;margin-top:0;margin-right:calc(-1 * (5px + var(--jj-nav-viewport-border-width)));margin-bottom:calc(-1 * (5px + var(--jj-nav-viewport-border-width)));border-width:var(--jj-nav-viewport-border-width);border-style:var(--jj-nav-viewport-border-pattern);border-color:var(--jj-nav-viewport-border-color);background-color:var(--jj-nav-background);border-radius:50%;margin-left:0;bottom:0;right:0}.jj-navigator.navigator-no-content .current-view,.jj-navigator.navigator-no-content .joint-paper{display:none}}:root{--canvas-color:#f3f7f6;--surface-color:#fff;--border-color:#dbe2e6;--text-color:#322a49;--muted-color:#6b6880;--main-color:#4d64dd;--main-hover-color:#3d51c4;--reject-color:#d63b3b;--solved-color:#16a37f;--square-fill:#fff;--square-stroke:#d6dee2;--clue-color:#322a49;--region-fill-0:#c7cef4;--region-stroke-0:#4d64dd;--region-fill-1:#b6e3dc;--region-stroke-1:#229b8a;--region-fill-2:#fbe0ae;--region-stroke-2:#d9902a;--region-fill-3:#f7c9cf;--region-stroke-3:#d4506a;--region-fill-4:#dcc8ee;--region-stroke-4:#8e5fbf;--region-fill-5:#d5e8ae;--region-stroke-5:#7ea32f;--region-fill-6:#bfdff2;--region-stroke-6:#2e86b8;--region-fill-7:#f8d2bc;--region-stroke-7:#dc6b36;--given-fill:#dfe5e9;--given-stroke:#9aa6b0;--reject-fill:#f6c4c4;--reject-stroke:#d63b3b;--overlay-color:#ffffffc7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text-color);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root[data-theme=dark]{--canvas-color:#171a21;--surface-color:#1c2029;--border-color:#2f3541;--text-color:#e7eaf1;--muted-color:#98a1b2;--main-color:#7d8ef0;--main-hover-color:#93a1f4;--reject-color:#ff7a7a;--solved-color:#35c39d;--square-fill:#232833;--square-stroke:#2f3541;--clue-color:#e7eaf1;--region-fill-0:#2f3a6e;--region-stroke-0:#7d8ef0;--region-fill-1:#1f4a44;--region-stroke-1:#4fc4ae;--region-fill-2:#533c1b;--region-stroke-2:#e0a44a;--region-fill-3:#532430;--region-stroke-3:#ef7a90;--region-fill-4:#402a5c;--region-stroke-4:#b184e8;--region-fill-5:#364420;--region-stroke-5:#a6cf5c;--region-fill-6:#1d3d55;--region-stroke-6:#58b0e0;--region-fill-7:#57301f;--region-stroke-7:#ef8a5c;--given-fill:#2b313c;--given-stroke:#5b6675;--reject-fill:#56222a;--reject-stroke:#ff6b6b;--overlay-color:#171a21c7;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.app{background:var(--canvas-color);flex-direction:column;height:100%;display:flex}.toolbar{background:var(--surface-color);border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:8px 20px;padding:10px 16px;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-tools{margin-left:auto}.toolbar-brand{flex:none;align-items:center;display:flex}.toolbar-brand:hover{opacity:.75}.toolbar-logo{width:auto;height:20px;display:block}.toolbar-title{letter-spacing:.01em;font-size:16px;font-weight:700}.size-input{font:inherit;width:62px;color:var(--text-color);background:var(--surface-color);border:1px solid var(--border-color);border-radius:6px;padding:5px 8px;font-size:13px}@media (pointer:coarse){.size-input{font-size:16px}}button{font:inherit;color:var(--text-color);background:var(--surface-color);border:1px solid var(--border-color);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:13px}button:hover:not(:disabled){color:var(--text-color);border-color:var(--muted-color)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--main-color);border-color:var(--main-color);color:#fff}button.primary:hover:not(:disabled){background:var(--main-hover-color);border-color:var(--main-hover-color);color:#fff}button.icon{width:30px;height:30px;color:var(--muted-color);place-items:center;padding:0;display:grid}button.icon svg{width:17px;height:17px;display:block}button.icon.copied{color:var(--solved-color);border-color:var(--solved-color)}.dialog{max-width:520px;color:var(--text-color);background:var(--surface-color);border:1px solid var(--border-color);border-radius:14px;padding:22px 24px;box-shadow:0 20px 60px #322a493d}.dialog::backdrop{background:#322a4952}.dialog h2{margin:0 0 8px;font-size:18px}.dialog h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);margin:20px 0 8px;font-size:13px;font-weight:700}.dialog p,.dialog li{font-size:14px;line-height:1.5}.dialog p{margin:0}.dialog ul{margin:0;padding-left:18px}.dialog li+li{margin-top:6px}.dialog code,.dialog kbd{background:var(--canvas-color);border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:28px;display:flex}.dialog-fields{gap:18px;margin-top:18px;display:grid}.field-row{border:0;margin:0;padding:0}.field-label{color:var(--muted-color);margin-bottom:8px;padding:0;font-size:13px;font-weight:600;display:block}.field-controls{color:var(--muted-color);align-items:center;gap:8px;font-size:13px;display:flex}.choices{background:var(--canvas-color);border:1px solid var(--border-color);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.choice input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.choice span{color:var(--muted-color);cursor:pointer;text-transform:capitalize;border-radius:6px;padding:5px 14px;font-size:13px;display:block}.choice span:after{content:attr(data-label);pointer-events:none;height:0;font-weight:600;display:block;overflow:hidden}.choice span:hover{color:var(--text-color)}.choice input:checked+span{color:var(--text-color);background:var(--surface-color);font-weight:600;box-shadow:0 1px 2px #0000001f}.choice input:focus-visible+span{outline:2px solid var(--main-color);outline-offset:2px}.split{display:flex}.split>button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.split-more{border-top-left-radius:0;border-bottom-left-radius:0;place-items:center;width:26px;padding:0;display:grid;box-shadow:inset 1px 0 #ffffff59}.split-more svg{width:15px;height:15px;display:block}.switch{cursor:pointer;align-items:center;gap:10px;display:flex}.switch input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.switch-track{background:var(--canvas-color);border:1px solid var(--border-color);border-radius:999px;flex:none;width:34px;height:20px;transition:background .15s,border-color .15s;position:relative}.switch-track:after{content:"";background:var(--muted-color);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--main-color);border-color:var(--main-color)}.switch input:checked+.switch-track:after{background:#fff;transform:translate(14px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--main-color);outline-offset:2px}.switch-label{color:var(--text-color);font-size:13px;display:grid}.switch-label small{color:var(--muted-color);font-size:12px}.board-area{flex:1;min-height:0;position:relative}.board-stage,.board-paper{width:100%;height:100%}.board-paper{background:var(--canvas-color)}.board-paper .joint-cell{cursor:crosshair}.board-stage{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.board-stage .jj-selection-region{--jj-selection-region-border-color:transparent;--jj-selection-region-fill-opacity:0}.board-count{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--muted-color);background:var(--overlay-color);pointer-events:none;border-radius:14px;margin:0;padding:4px 16px 7px;font-size:44px;font-weight:700;line-height:1.1;position:absolute;top:12px;right:14px}.board-count.rejected{color:var(--reject-color)}.board-reject{color:var(--reject-color);background:var(--surface-color);border:1px solid var(--reject-color);pointer-events:none;white-space:nowrap;border-radius:999px;margin:0;padding:5px 13px;font-size:13px;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #00000014}.board-status{font-variant-numeric:tabular-nums;color:var(--text-color);pointer-events:none;flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex;position:absolute;bottom:12px;left:16px}.board-clock{font-weight:600}.board-status .muted{color:var(--muted-color)}.board-status .warn{color:var(--reject-color)}.toast{background:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:10px 12px 10px 16px;font-size:14px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #322a492e}.toast-mark{color:#fff;background:var(--solved-color);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:13px;display:grid}.toast-text{white-space:nowrap}.toast-close{color:var(--muted-color);border-color:#0000;padding:4px 8px}@media (width<=640px){.toast{left:12px;right:12px;transform:none}.toast-text{white-space:normal}}
