@font-face{font-family:Inter Display;src:url(./InterDisplay-Regular-DjQIZLeB.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter Display;src:url(./InterDisplay-Medium-FWLGZfP9.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter Display;src:url(./InterDisplay-SemiBold-DhOeddqg.otf) format("opentype");font-weight:600;font-style:normal;font-display:swap}:root{--ui-font: "Inter Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--color-ui-bg: #1E1E1E;--color-bg: #F0F0F0;--color-surface: #2C2C2C;--color-surface-raised: #2C2C2C;--color-surface-hover: rgba(255, 255, 255, .08);--project-bar-height: 38px;--titlebar-inset: 72px;--color-surface-sunken: #383838;--color-canvas-bg: #ffffff;--color-grid: #e5e7eb;--color-line: #111827;--accent-50: #E7F4FD;--accent-100: #D0E8FB;--accent-200: #A1D1F6;--accent-300: #71BAF2;--accent-400: #42A3ED;--accent-500: #138CE9;--accent-600: #1077C6;--accent-700: #0D62A3;--accent-800: #0A4D80;--accent-900: #08385D;--color-point: var(--accent-500);--color-point-strong: var(--accent-600);--color-point-soft: rgba(19, 140, 233, .12);--color-point-edge: rgba(19, 140, 233, .32);--color-point-ring: rgba(19, 140, 233, .35);--color-accent-solid: var(--accent-500);--color-accent-solid-strong: var(--accent-600);--color-point-selected: #E53935;--color-selected-soft: rgba(229, 57, 53, .12);--color-row-active: rgba(19, 140, 233, .32);--color-row-selected: rgba(19, 140, 233, .2);--color-component: #D1A8FF;--color-border: #444444;--color-text: #FFFFFF;--color-text-muted: #B3B3B3;--shadow-floating: 0 2px 4px rgba(0, 0, 0, .28), 0 8px 24px rgba(0, 0, 0, .38);--shadow-panel: 0 4px 14px rgba(0, 0, 0, .34);--shadow-menu: 0 2px 6px rgba(0, 0, 0, .32), 0 14px 36px rgba(0, 0, 0, .48);--shadow-inset-edge: inset 0 0 0 1px rgba(255, 255, 255, .08);--panel-width: 250px;--panel-gutter: calc(var(--panel-width) + 12px);--panel-pad: 16px;--header-height: 52px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}:root{color-scheme:dark}body{font-family:var(--ui-font);color:var(--color-text);background:var(--color-ui-bg)}.app{user-select:none;-webkit-user-select:none}.canvas-area.drop-active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 2px var(--color-point);background:var(--color-point-soft)}.app input,.app textarea,.app [contenteditable=true]{user-select:text;-webkit-user-select:text}.app{outline:none;display:flex;flex-direction:column;height:100vh;overflow:hidden}.app.presentation,.app.presentation .canvas-area{background:var(--color-canvas-bg)}.presentation-hint{position:fixed;right:20px;bottom:20px;z-index:10;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#111827b8;color:#ffffffeb;font-family:var(--ui-font);font-size:12px;font-weight:500;pointer-events:none;-webkit-user-select:none;user-select:none;animation:presentation-hint-out 3s ease-out forwards}.presentation-hint-sep{opacity:.45;margin:0 2px}.presentation-hint kbd{font:inherit;padding:1px 5px;border-radius:4px;background:#ffffff2e}@keyframes presentation-hint-out{0%,66%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.presentation-hint{animation:none}}.app-body{flex:1 1 auto;display:flex;min-height:0;position:relative}.canvas-area{flex:1 1 auto;position:relative;background:var(--color-bg);overflow:hidden}.canvas-viewport{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.canvas-viewport canvas{display:block}.canvas-overlay-stack{position:absolute;top:12px;left:calc(50% - var(--panel-gutter) / 2);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.canvas-overlay-stack>*{pointer-events:auto}.toolbar{display:flex;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:14px;padding:6px;box-shadow:var(--shadow-panel);pointer-events:auto}.toolbar-clip{flex:0 0 auto;overflow:hidden;transition:width .2s cubic-bezier(.32,.72,0,1)}.toolbar-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:3px;width:max-content}.toolbar-row>*{flex:0 0 auto}.toolbar-row .toolbar-button{animation:toolbar-tool-in .16s ease-out both}@keyframes toolbar-tool-in{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.toolbar-clip{transition:none}.toolbar-row .toolbar-button{animation:none}}.toolbar-divider{flex:0 0 auto;align-self:stretch;width:1px;margin:2px 5px;background:var(--color-border)}.mode-switch{display:flex;gap:2px;padding:3px;border-radius:11px;background:var(--color-surface-sunken)}.mode-button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;padding:0;border-radius:8px;border-color:transparent;background:transparent;color:var(--color-text-muted)}.mode-button:hover:not(.active){color:var(--color-text)}.mode-button.active{background:var(--color-point);color:#fff;box-shadow:none}.toolbar-button{display:flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:var(--color-text-muted);box-sizing:border-box;width:32px;height:32px;padding:0;border-radius:8px;font-size:12px;font-weight:500}.toolbar-button:hover{background:var(--color-surface-hover);color:var(--color-text)}.toolbar-button.active{background:var(--color-point-soft);border-color:var(--color-point-edge);color:var(--color-point)}.toolbar-button svg{flex:0 0 auto}.properties-panel{position:absolute;top:12px;right:12px;bottom:12px;width:var(--panel-width);z-index:6;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-panel);padding:var(--panel-pad);display:flex;flex-direction:column;overflow-y:auto}.panel-stack{flex:0 0 auto}.panel-pages{position:sticky;top:0;z-index:2;display:flex;flex-direction:column;flex:0 0 auto;background:var(--color-surface-raised)}.panel-colour{flex:0 0 auto}.properties-panel>.panel-stack:first-child>.panel-divider:first-child,.panel-stack:empty+.panel-pages>.panel-divider,.properties-panel>.panel-pages:first-child>.panel-divider{display:none}.panel-divider.paint-divider{margin-top:6px}.properties-panel h2{font-size:11px;font-weight:500;text-transform:none;letter-spacing:.5px;color:var(--color-text);margin:0 0 16px}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}.panel-heading-row .panel-heading-plain{margin:0}.panel-divider{height:1px;background:var(--color-border);margin:0 calc(-1 * var(--panel-pad)) var(--panel-pad);border:none;flex-shrink:0}.panel-subdivider{height:1px;background:var(--color-border);margin:12px calc(-1 * var(--panel-pad)) 10px;border:none;flex-shrink:0}.panel-heading-tight{margin-top:0;margin-bottom:8px}button{font-family:inherit;font-size:13px;padding:6px 12px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface-raised);cursor:pointer}button:hover:not(:disabled){background:var(--color-surface-hover)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--color-point);color:#fff;border-color:var(--color-point)}button.primary:hover{background:var(--color-point-strong)}.panel-heading-plain{margin-top:24px}.view-panel{position:absolute;z-index:6;display:flex;flex-direction:column;max-height:calc(100% - 24px);padding:6px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);box-shadow:var(--shadow-panel)}.view-panel.expanded{width:208px;overflow-y:auto}.view-panel-toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:none;color:var(--color-text-muted)}.view-panel-toggle:hover,.view-panel.expanded .view-panel-toggle{color:var(--color-text);background:var(--color-surface-hover)}.view-panel-body{display:flex;flex-direction:column;margin-top:4px}.view-divider{height:1px;margin:6px -6px;background:var(--color-border)}.view-row{display:flex;align-items:center;gap:8px;width:100%;min-height:26px;padding:0 6px 0 16px;border:none;border-radius:6px;background:none;color:var(--color-text);font-family:inherit;font-size:12px;font-weight:400;text-align:left}.view-row:hover{background:var(--color-surface-hover)}.view-row-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-row-mark{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:14px;color:var(--color-point)}.view-group{padding:2px 6px 4px;font-size:11px;font-weight:500;letter-spacing:.5px;color:var(--color-text)}.panel-action{padding:3px 8px;font-size:11px;border:none;border-radius:5px;background:none;color:var(--color-text)}.panel-action-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0}.panel-heading-actions{display:flex;align-items:center;gap:6px}.panel-action-box{border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);width:20px;height:20px}.panel-action-box:hover:not(:disabled){border-color:var(--color-point);background:var(--color-surface-hover);color:var(--color-text)}.page-select{flex:0 1 auto;min-width:0;margin:0;padding:0 2px 0 0;border:none;background:none;color:var(--color-text);font-family:inherit;font-size:11px;font-weight:500;cursor:pointer}.page-select:focus{outline:none}.panel-action-ring{border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);width:20px;height:20px}.panel-action-ring:hover:not(:disabled){border-color:var(--color-point);background:var(--color-surface-hover);color:var(--color-text)}.panel-action:hover:not(:disabled){background:var(--color-surface-hover)}.panel-action:disabled{opacity:.4}.row-list{list-style:none;margin:0 0 4px;padding:0}.page-tree{--capped-row-height: 24px;--capped-rows: 5.5;--capped-scrollbar-width: 6px;flex:0 0 auto;max-height:calc(var(--capped-row-height) * var(--capped-rows) + 4px + 8px * 5);margin-top:0;padding:2px 0;overflow-y:auto}.object-tree{--capped-row-height: 24px;flex:0 0 auto;max-height:calc(var(--capped-row-height) * 5.5 + 4px + 8px * 5);overflow-y:auto}.page-tree li>.row{min-height:var(--capped-row-height)}.page-tree:not(.object-tree)>li+li,.object-tree>li+li{margin-top:8px}.page-tree{--row-inset-left: var(--panel-pad);--row-inset-right: calc(var(--panel-pad) - 2px);margin-left:calc(-1 * var(--panel-pad));margin-right:calc(-1 * var(--panel-pad))}.page-tree .row{border-radius:0;padding-left:var(--row-inset-left);padding-right:var(--row-inset-right)}.page-tree:not(.object-tree)>li>.row{margin-left:8px;margin-right:8px;padding-left:8px;padding-right:8px;border-radius:6px;min-height:var(--capped-row-height);height:var(--capped-row-height);box-sizing:border-box;background:transparent}.object-tree .row{margin-left:8px;margin-right:8px;padding-left:8px;padding-right:8px;border-radius:6px;min-height:var(--capped-row-height);height:var(--capped-row-height);box-sizing:border-box;background:transparent}.page-tree .row.drop-above:before,.page-tree .row.drop-below:after{left:var(--row-inset-left);right:var(--row-inset-right)}.page-tree>li>.row>.row-name{flex:0 1 auto}.page-tree>li>.row>.row-toggle{margin-left:auto}.page-tree .row-children{margin-left:0;padding-left:0;border-left:none}.page-tree .row-children.depth-2>.row{--row-inset-left: calc(var(--panel-pad) + 20px)}.page-tree .row-children.depth-2>.row-empty{padding-left:calc(var(--panel-pad) + 24px)}.page-tree::-webkit-scrollbar{width:var(--capped-scrollbar-width)}.page-tree::-webkit-scrollbar-track{background:transparent}.page-tree::-webkit-scrollbar-thumb{border-radius:calc(var(--capped-scrollbar-width) / 2);background:transparent}.page-tree:hover::-webkit-scrollbar-thumb{background:#ffffff47}.row{display:flex;align-items:center;gap:6px;padding:3px 4px 3px 8px;border-radius:6px;border:1px solid transparent;font-size:12px}.row:hover:not(:has(>.row-disclosure:hover)){background:var(--color-surface-hover)}.row-selectable{cursor:pointer}.row-selectable:focus-visible{outline:2px solid var(--color-point);outline-offset:-2px}.row-selectable.dragging{cursor:grabbing}.row-name-static{cursor:inherit}.row-selectable:hover .row-name{color:var(--color-text)}.row-selectable.dimmed:hover .row-name{opacity:.7}.row.dragging{opacity:.4}.row.drop-above,.row.drop-below{position:relative}.row.drop-above:before,.row.drop-below:after{content:"";position:absolute;left:4px;right:4px;height:2px;border-radius:1px;background:var(--color-point);pointer-events:none}.row.drop-above:before{top:-2px}.row.drop-below:after{bottom:-2px}.row.drop-into{position:relative}.row.drop-into:after{content:"";position:absolute;top:0;bottom:0;left:var(--row-inset-left, 4px);right:var(--row-inset-right, 4px);border:1px solid var(--color-point);border-radius:4px;pointer-events:none}.row-empty.drop-above{position:relative}.row-empty.drop-above:before{content:"";position:absolute;top:-2px;left:4px;right:4px;height:2px;border-radius:1px;background:var(--color-point);pointer-events:none}.row.active{background:var(--color-row-active)}.page-tree:not(.object-tree)>li>.row.active,.page-tree:not(.object-tree)>li>.row.row-selectable:hover{background:var(--color-surface-sunken);margin-left:8px;margin-right:8px;padding-left:8px;padding-right:8px;border-radius:6px;min-height:var(--capped-row-height);height:var(--capped-row-height);box-sizing:border-box}.page-tree:not(.object-tree)>li>.row.row-selectable:hover .row-name,.page-tree:not(.object-tree)>li>.row.active .row-name{color:var(--color-text);opacity:1}.page-tree:not(.object-tree)>li>.row.active .row-name{font-weight:600}.page-tree:not(.object-tree)>li>.row.dimmed.row-selectable:hover .row-name{opacity:1}.row.selected{background:var(--color-row-selected);border-color:transparent}.object-tree .row.selected{margin-left:8px;margin-right:8px;padding-left:8px;padding-right:8px;border-radius:6px;min-height:var(--capped-row-height);height:var(--capped-row-height);box-sizing:border-box}.object-tree>li:has(>.row.selected+.row-children)>.row.selected{border-radius:6px 6px 0 0}.object-tree>li:has(>.row.selected)>.row-children .row{background:var(--color-row-selected);border-radius:0}.object-tree>li:has(>.row.selected)>.row-children .row:last-child{border-radius:0 0 6px 6px}.object-tree>li:has(>.row.selected)>.row-children .row:hover{background:var(--color-row-selected)}.object-tree>li>.row.row-selectable:not(.selected):hover{background:var(--color-surface-sunken)}.object-tree>li>.row.selected:hover{background:var(--color-row-selected)}.page-tree .row-children .row.dimmed .row-name,.row.dimmed .thumb{opacity:.45}.row-children{margin:0 0 2px 18px;padding-left:6px}.row-disclosure{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:14px;height:18px;padding:0;border:none;background:none;color:var(--color-text-muted)}.row-disclosure svg{transition:transform .12s ease}.row-disclosure svg.open{transform:rotate(90deg)}.thumb{flex:0 0 auto;width:18px;height:18px;color:var(--color-text);overflow:visible}.component-icon{flex:0 0 11px;width:11px;height:11px}.row.selected .thumb{color:var(--color-point)}.object-tree>li>.row.selected .thumb{color:var(--color-text)}.object-tree .row.component-object .thumb,.object-tree .row.component-object .component-icon,.object-tree .row.component-object .row-name{color:var(--color-component)}.object-tree .row.component-master .row-name{font-weight:600}.object-tree .row.component-clone .row-name{font-weight:400}.thumb-contour{opacity:.8}.thumb-empty{display:inline-block;border:1px dashed var(--color-border);border-radius:3px;box-sizing:border-box}.row-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:2px 0;border:none;background:none;font-size:11px;color:var(--color-text)}.row-name-input{flex:1 1 auto;min-width:0;padding:1px 4px;border:1px solid var(--color-point);border-radius:4px;font:inherit;font-size:12px}.row-toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:none;border-radius:5px;color:var(--color-text-muted)}.row-page-actions{flex:0 0 auto;display:flex;align-items:center;gap:2px;margin-left:auto}.row-object-actions{flex:0 0 auto;display:flex;align-items:center;gap:0;margin-left:auto}.row-page-action{color:var(--color-text-muted);opacity:.7}.row-page-action:hover{opacity:1}.row-toggle:disabled{opacity:.3}.row-toggle:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.page-tree .row-page-action:hover,.page-tree .row-page-action:hover:not(:disabled),.object-tree .row-toggle:hover,.object-tree .row-toggle:hover:not(:disabled){background:transparent}.row-toggle.on{color:var(--color-text)}.object-tree .row-toggle:not(.on):not(:hover){opacity:.45}.row-eye.is-visible{color:var(--color-text)}.row-eye.is-hidden{color:var(--color-text-muted);opacity:.45}.object-tree .row-toggle.row-eye.is-visible:not(:disabled){opacity:1}.row-empty{padding:4px 8px 8px;font-size:12px;color:var(--color-text-muted)}.subsection{margin-bottom:16px}.subsection-label{display:block;margin-bottom:4px;color:var(--color-text-muted);font-size:10px}.spacing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px}.spacing-grid .info-field{min-width:0}.spacing-grid .info-field input{width:100%;min-width:0}.align-grid{display:flex;gap:10px}.align-grid>.stroke-control{flex:1 1 0}.align-group{display:flex;align-items:stretch;background:var(--color-surface-sunken);border-radius:5px;overflow:hidden}.align-grid>.align-group{flex:1 1 0;min-width:0}.align-button{display:flex;align-items:center;justify-content:center;flex:1 1 0;padding:2px;height:24px;line-height:1;color:var(--color-text);background:none;border:none;border-radius:0}.align-group .align-button+.align-button{border-left:1px solid var(--color-surface-raised)}.point-row{display:flex;gap:6px}.point-row-kinds{flex:3 1 0;min-width:0}.point-row-actions{flex:2 1 0;min-width:0}.align-button.is-current{color:var(--color-accent-solid);box-shadow:inset 0 0 0 1px var(--color-point-ring)}.align-button:disabled{opacity:.4;cursor:default}.align-button svg{width:20px;height:20px;flex:0 0 auto}.align-button:hover:not(:disabled){background:var(--color-surface-hover)}.menubar{position:relative;margin-right:auto;margin-left:16px}.menubar-title{border-color:transparent;background:transparent;color:var(--color-text);padding:5px 10px}.menubar-title.open,.menubar-title:hover:not(:disabled){background:var(--color-surface-hover)}.menu{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;padding:4px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-menu);z-index:20}.menu .submenu{top:-5px;left:100%;margin-left:2px}.menu.context-menu{position:fixed;top:0;left:0;z-index:30;min-width:160px}.menu-item{position:relative;display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:4px;background:transparent;text-align:left;white-space:nowrap;font-family:inherit;font-size:13px}.menu-item:hover:not(:disabled){background:var(--color-surface-hover)}.menu-check{flex:0 0 12px;font-size:11px;color:var(--color-point);text-align:center}.menu-label{flex:1 1 auto}.menu-shortcut,.menu-arrow{flex:0 0 auto;color:var(--color-text-muted);font-size:12px}.menu .submenu:before{content:"";position:absolute;top:0;bottom:0;left:-8px;width:8px}.menu .submenu.flip-x{left:auto;right:100%;margin-left:0;margin-right:2px}.menu .submenu.flip-x:before{left:auto;right:-8px}.menu-item.has-submenu{cursor:default}.menu-separator{height:1px;margin:4px 6px;background:var(--color-border)}.info-panel{position:absolute;bottom:20px;left:calc(50% - var(--panel-gutter) / 2);transform:translate(-50%);z-index:5;display:flex;align-items:center;height:64px;gap:10px;padding:0 12px;border-radius:14px;background:var(--color-surface-raised);border:1px solid var(--color-border);box-shadow:var(--shadow-panel)}.info-anchor{flex:0 0 auto;overflow:visible}.info-anchor-cell{cursor:pointer}.info-fields{display:grid;gap:4px;grid-template-rows:repeat(2,auto);grid-auto-flow:column}.info-extras{display:grid;gap:4px;grid-template-rows:repeat(2,auto);grid-auto-flow:column;grid-row:span 2;align-self:center;align-content:center}.info-field-tension input{width:46px;text-align:right}.info-field{display:flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:5px;background:var(--color-surface-sunken)}.info-field label{display:flex;align-items:center;flex:0 0 auto;color:var(--color-text-muted);font-size:12px;line-height:1}.info-scrub{cursor:ew-resize;touch-action:none;margin:0 -3px;padding:0 3px;align-self:stretch}.info-scrub:hover{color:var(--color-text)}.info-field input{width:58px;height:18px;padding:0;border:none;background:transparent;font-family:inherit;font-size:11px;font-variant-numeric:tabular-nums;color:var(--color-text)}.info-field input:focus{outline:none}.info-suffix{flex:0 0 auto;padding-left:2px;color:var(--color-text-muted);font-size:12px;line-height:1;display:flex;align-items:center;align-self:stretch;cursor:ew-resize;touch-action:none}.info-field:focus-within{box-shadow:0 0 0 2px var(--color-point-ring)}.info-lock{display:flex;align-items:center;justify-content:center;grid-row:span 2;align-self:center;width:24px;margin:0 2px;padding:0;border-color:transparent;background:transparent;color:var(--color-text-muted)}.info-lock.active{color:var(--color-point)}.info-lock:hover:not(:disabled){background:var(--color-surface-hover)}.project-bar{display:flex;align-items:stretch;flex:0 0 auto;height:var(--project-bar-height);padding:0 6px 0 0;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.project-home{margin-left:10px}.main-menu-panel{position:absolute;z-index:6;display:flex;padding:6px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);box-shadow:var(--shadow-panel)}.main-menu-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:none;color:#fff;cursor:pointer}.main-menu-button:hover,.main-menu-button.on{background:var(--color-surface-hover);color:var(--color-text)}.menu.main-menu{top:100%;left:0;margin-top:6px;z-index:40}.menu.main-menu .menu-item,.menu.main-menu .menu-shortcut,.menu.main-menu .menu-arrow,.menu.context-menu .menu-item,.menu.context-menu .menu-shortcut,.menu.context-menu .menu-arrow{font-size:11px}.menu-item.has-submenu.open{background:var(--color-surface-hover)}.project-new{margin:0 0 0 4px;align-self:center}.project-home,.project-new{display:flex;align-items:center;justify-content:center;flex:0 0 auto;align-self:center;width:26px;height:26px;padding:0;border:none;border-radius:6px;background:none;color:var(--color-text-muted);cursor:pointer}.project-home{align-self:stretch;width:39px;height:100%;padding:0 6px;border-radius:0}.project-home:hover,.project-new:hover{background:var(--color-surface-hover);color:var(--color-text)}.project-home.on{background:var(--color-surface-hover);color:var(--color-point)}.project-home{margin-right:0;position:relative}.project-home:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--color-border)}.project-tabs{display:flex;align-items:stretch;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.project-tabs::-webkit-scrollbar{display:none}.project-tab{display:flex;align-items:center;gap:6px;flex:0 1 auto;min-width:96px;max-width:200px;height:100%;padding:0 6px 0 12px;border-left:1px solid var(--color-border);color:var(--color-text-muted);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.project-tab:first-child{border-left-color:transparent}.project-tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.project-tab.active{background:var(--color-surface-raised);color:var(--color-text)}.project-tab.active,.project-tab.active+.project-tab{border-left-color:transparent}.project-tab:focus-visible{outline:2px solid var(--color-point);outline-offset:-2px}.project-tab{transition:transform .14s ease;touch-action:none;-webkit-user-select:none;user-select:none}.project-tab.dragging{transition:none;z-index:2;cursor:grabbing}.project-tab-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tab-close{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:none;color:inherit;opacity:.5;cursor:pointer}.project-tab-close:hover{background:var(--color-surface-hover);opacity:1}.project-tab-close:focus-visible{outline:2px solid var(--color-point);outline-offset:-2px;opacity:1}.project-actions{display:flex;align-items:stretch;gap:0;flex:0 0 auto;margin-left:8px;padding-left:0;border-left:1px solid var(--color-border)}.project-action{display:flex;align-items:center;justify-content:center;width:39px;height:100%;padding:0;border:none;border-right:1px solid var(--color-border);border-radius:0;background:none;color:var(--color-text-muted);cursor:pointer}.project-action:hover{background:var(--color-surface-hover);color:var(--color-point)}.project-action:focus-visible,.project-export:focus-visible,.project-new:focus-visible,.project-home:focus-visible{outline:2px solid var(--color-point);outline-offset:-2px}.project-export{height:26px;align-self:center;margin-left:8px;padding:0 12px;border:none;border-radius:6px;background:var(--color-accent-solid);color:#fff;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer}.project-export:hover{background:var(--color-accent-solid);color:#fff}.project-bar.titlebar{-webkit-app-region:drag}.project-bar.titlebar .project-home,.project-bar.titlebar .project-new,.project-bar.titlebar .project-tab,.project-bar.titlebar .project-action,.project-bar.titlebar .project-export,.project-bar.titlebar .window-controls{-webkit-app-region:no-drag}.project-bar.inset{padding-left:var(--titlebar-inset)}.project-bar.inset .project-home:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--color-border)}.project-bar.titlebar:not(.inset){padding-right:0}.window-controls{display:flex;align-items:stretch;flex:0 0 auto;margin-left:8px;padding-left:8px;border-left:1px solid var(--color-border)}.window-control{display:flex;align-items:center;justify-content:center;align-self:stretch;width:46px;padding:0;border:none;border-radius:0;background:none;color:var(--color-text-muted);cursor:pointer}.window-control:hover{background:var(--color-surface-hover);color:var(--color-text)}.window-control.close:hover{background:#c42b1c;color:#fff}.window-control:focus-visible{outline:2px solid var(--color-point);outline-offset:-2px}.dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;overflow-y:auto;padding:28px 32px 40px;background:var(--color-ui-bg)}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.dash-title{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}.dash-head-actions{display:flex;align-items:center;gap:10px}.dash-view-toggle{display:flex;gap:2px;padding:2px;border-radius:8px;background:var(--color-surface-sunken)}.dash-view-button{display:flex;align-items:center;justify-content:center;width:26px;height:24px;padding:0;border:none;border-radius:6px;background:none;color:var(--color-text-muted);cursor:pointer}.dash-view-button:hover{color:var(--color-text)}.dash-view-button.on{background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-inset-edge)}.dash-new{height:28px;padding:0 12px;border:none;border-radius:7px;background:var(--color-accent-solid);color:#fff;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer}.dash-new:hover{background:var(--color-accent-solid-strong)}.dash-open{height:28px;padding:0 12px;border:1px solid var(--color-border);border-radius:7px;background:none;color:var(--color-text);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer}.dash-open:hover{background:var(--color-surface-hover)}.dash-open:focus-visible,.dash-new:focus-visible{outline:2px solid var(--color-point);outline-offset:2px}.dash-empty,.dash-note{margin:0;color:var(--color-text-muted);font-size:13px}.dash-note{margin-top:20px;font-size:12px}.dash-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:0;padding:0}.dash-card{position:relative}.dash-card-open{display:flex;flex-direction:column;gap:0;width:100%;padding:0;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-raised);color:var(--color-text);font-family:inherit;text-align:left;overflow:hidden;cursor:pointer}.dash-card-open:hover{border-color:var(--color-point-edge)}.dash-card-open:focus-visible{outline:2px solid var(--color-point);outline-offset:2px}.dash-thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;padding:10px;background:var(--color-canvas-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-muted)}.dash-thumb img{max-width:100%;max-height:100%;object-fit:contain}.dash-thumb-empty{width:48px;height:32px}.dash-card-body{display:flex;flex-direction:column;gap:3px;padding:10px 12px 12px;min-width:0}.dash-card-name{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-card-meta{font-size:12px;color:var(--color-text-muted)}.dash-card-path,.dash-col-path{font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.dash-open-badge{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:var(--color-point-soft);color:var(--color-point);font-size:10px;font-weight:500;letter-spacing:.02em}.dash-forget{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:5px;background:#1d1d1dbf;color:var(--color-text);opacity:0;cursor:pointer}.dash-card:hover .dash-forget,.dash-row-item:hover .dash-forget,.dash-forget:focus-visible{opacity:1}.dash-card .dash-forget:hover:not(:disabled){background:#1d1d1deb}.dash-list{display:flex;flex-direction:column}.dash-row,.dash-row-head{display:grid;grid-template-columns:52px minmax(120px,2fr) minmax(90px,1fr) minmax(90px,1fr) minmax(120px,2fr);align-items:center;gap:12px;width:100%;padding:6px 34px 6px 8px;border:none;background:none;color:var(--color-text);font-family:inherit;font-size:12px;text-align:left}.dash-row-head{padding-bottom:8px;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:11px;font-weight:500;letter-spacing:.02em}.dash-rows{list-style:none;margin:0;padding:0}.dash-row-item{position:relative}.dash-row{border-radius:6px;cursor:pointer}.dash-row:hover{background:var(--color-surface-hover)}.dash-row:focus-visible{outline:2px solid var(--color-point);outline-offset:-2px}.dash-col-name{display:flex;align-items:center;gap:6px;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-col-date{color:var(--color-text-muted);white-space:nowrap}.dash-thumb-small{width:44px;aspect-ratio:16 / 9;padding:3px;border:1px solid var(--color-border);border-radius:4px}.dash-thumb-small .dash-thumb-empty{width:24px;height:16px}.dash-row-item .dash-forget{top:50%;right:8px;transform:translateY(-50%);background:none}.info-end{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--color-text-muted)}.info-fields-free .info-end{grid-row:span 2;align-self:center}.paint-section{margin-bottom:10px}.paint-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}.paint-section-name{margin-bottom:0}.paint-section-head{position:relative}.paint-section-action{margin-left:auto}.paint-section-actions{display:flex;align-items:center;gap:2px;margin-left:auto}.paint-section-actions .paint-section-action{margin-left:0}.paint-section-action.is-open{background:var(--color-surface-hover);color:var(--color-text)}.paint-settings>.stroke-controls{margin-bottom:0;grid-template-columns:minmax(0,1fr);gap:8px}.selection-colours-count{margin-left:6px;color:var(--color-text-muted);font-weight:400}.paint-row{display:flex;align-items:center;gap:2px}.paint-rows{display:flex;flex-direction:column;gap:4px}.paint-cells{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;border:1px solid transparent;border-radius:6px;background:var(--color-surface-sunken)}.paint-cells:hover{border-color:var(--color-border)}.paint-cells:focus-within{border-color:var(--color-point)}.paint-row.is-reorderable,.paint-row.is-aligned{position:relative;margin:0 calc(-1 * var(--panel-pad));padding:3px var(--panel-pad) 3px 0}.paint-rows:has(.is-reorderable),.paint-rows:has(.is-aligned){gap:0}.paint-row-action-spacer{display:inline-flex;visibility:hidden;pointer-events:none}.paint-row-grip{flex:0 0 var(--panel-pad);display:flex;align-items:center;justify-content:center;align-self:stretch;color:var(--color-text-muted);cursor:grab;touch-action:none;visibility:hidden}.paint-row.is-reorderable:hover .paint-row-grip,.paint-row.is-selected .paint-row-grip,.paint-row.is-dragging .paint-row-grip{visibility:visible}.paint-row .paint-row-grip.paint-row-grip-empty{cursor:default}.paint-row-grip:hover{color:var(--color-text)}.paint-row.is-dragging .paint-row-grip{cursor:grabbing}.paint-row.is-reorderable:hover{background:var(--color-surface-hover)}.paint-row.is-reorderable:hover .paint-cells:not(:focus-within){border-color:transparent}.paint-row.is-selected,.paint-row.is-selected:hover{background:var(--color-row-selected)}.paint-row.is-selected .paint-cells,.paint-row.is-selected:hover .paint-cells{border-color:var(--color-point)}.paint-row.is-dragging{opacity:.5}.paint-row.drop-above:before,.paint-row.drop-below:after{content:"";position:absolute;left:var(--panel-pad);right:var(--panel-pad);height:2px;border-radius:1px;background:var(--color-point);pointer-events:none}.paint-row.drop-above:before{top:-1px}.paint-row.drop-below:after{bottom:-1px}.paint-row.is-off .paint-cells{opacity:.45}.paint-swatch,.paint-swatch:hover:not(:disabled){flex:0 0 auto;width:14px;height:14px;padding:0;border:none;border-radius:3px;background-color:#fff;background-image:linear-gradient(45deg,#c8c8c8 25%,transparent 25%),linear-gradient(-45deg,#c8c8c8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#c8c8c8 75%),linear-gradient(-45deg,transparent 75%,#c8c8c8 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;cursor:pointer;overflow:hidden}.paint-swatch-ink{display:block;width:100%;height:100%;border-radius:inherit;box-shadow:inset 0 0 0 1px #0000001f}.paint-swatch:hover,.paint-swatch.is-open{box-shadow:0 0 0 1px var(--color-point)}.paint-hex{flex:1 1 auto;width:100%;min-width:0;height:18px;padding:0;border:none;background:transparent;color:var(--color-text);font-family:inherit;font-size:11px;font-variant-numeric:tabular-nums;text-transform:uppercase}.paint-hex:focus{outline:none}.paint-cell-divider{flex:0 0 auto;align-self:stretch;width:1px;margin:5px 0;background:var(--color-border)}.paint-cells .info-field{flex:0 0 56px;min-width:0;height:auto;align-self:stretch;padding:0;border-radius:0;background:none}.paint-cells .info-field:focus-within{box-shadow:none}.paint-cells .info-field input{flex:1 1 auto;width:auto;min-width:0;text-align:right}.paint-cells .paint-weight input{text-align:left}.paint-row-action{color:var(--color-text-muted)}.paint-popover{position:fixed;z-index:40;width:240px;padding:12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-raised);box-shadow:var(--shadow-panel)}.panel-button{display:flex;align-items:center;gap:5px;width:100%;height:24px;padding:0 8px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-surface-raised);color:var(--color-text);font-family:inherit;font-size:11px;cursor:pointer}.panel-button svg{width:14px;height:14px;flex:0 0 auto;color:var(--color-text-muted)}.panel-button:hover:not(:disabled){background:var(--color-surface-sunken)}.panel-button.is-open{box-shadow:0 0 0 2px var(--color-point-ring)}.contour-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.contour-actions .panel-button{min-width:0;padding:0 5px;gap:4px;font-size:10.5px}.contour-actions .panel-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-button:disabled{opacity:.4;cursor:default}.offset-card{--stroke-control-width: 134px;display:flex;flex-direction:column;gap:10px}.offset-card-title{font-weight:600}.offset-value{display:flex;align-items:center;gap:4px;flex:0 0 var(--stroke-control-width);width:var(--stroke-control-width);min-width:0}.stroke-control-field .offset-value .info-field{flex:1 1 auto;width:auto;min-width:0}.offset-value .info-field input{width:100%;min-width:0}.offset-centerline{flex:0 0 auto;height:24px;padding:0 8px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-surface-raised);color:var(--color-text);font-family:inherit;font-size:11px;cursor:pointer}.offset-centerline:hover:not(:disabled){background:var(--color-surface-sunken)}.offset-centerline.is-snapped{border-color:var(--color-accent-solid);background:var(--color-accent-solid);color:#fff}.offset-actions{display:flex;justify-content:flex-end;gap:8px}.offset-button{height:24px;padding:0 14px;border:1px solid var(--color-border);border-radius:5px;background:transparent;color:inherit;font-family:inherit;font-size:11px;cursor:pointer}.offset-button-primary{border-color:var(--color-accent-solid);background:var(--color-accent-solid);color:#fff}.offset-button:disabled{opacity:.4;cursor:default}.paint-popover .cp{margin-bottom:0}.paint-popover .cp-fields:last-child{margin-bottom:0}.stroke-controls{--stroke-control-width: 134px;display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:8px;align-items:start}.stroke-control{display:flex;flex-direction:column;gap:4px;min-width:0}.stroke-control-joins{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.stroke-control-joins .stroke-control-label{flex:0 0 auto}.stroke-control-position,.stroke-control-field{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.stroke-control-field .stroke-control-label{flex:0 0 auto}.stroke-control-field .info-field{flex:0 0 var(--stroke-control-width);width:var(--stroke-control-width);min-width:0;justify-content:flex-start}.stroke-control-joins .join-toggles,.stroke-control-caps .cap-toggles{flex:0 0 var(--stroke-control-width);width:var(--stroke-control-width);min-width:0}.stroke-control-position .stroke-control-label{flex:0 0 auto}.stroke-control-position .stroke-position-button{flex:0 0 var(--stroke-control-width);width:var(--stroke-control-width)}.join-toggles{display:flex;flex:0 1 auto;min-width:0;background:var(--color-surface-sunken);border-radius:8px;padding:2px;gap:2px}.join-toggle{flex:0 0 42px;width:42px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-text-muted);cursor:pointer}.join-toggle svg{width:24px;height:24px}.join-toggle:hover:not(.active){background:var(--color-surface-hover);color:var(--color-text)}.join-toggle.active{background:var(--color-point);color:#fff;box-shadow:0 1px 4px #00000026}.join-toggle.active:hover{background:var(--color-point);color:#fff}.stroke-control-caps{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.stroke-control-caps .stroke-control-label{flex:0 0 auto}.cap-toggles{display:flex;flex:0 1 auto;min-width:0;background:var(--color-surface-sunken);border-radius:8px;padding:2px;gap:2px}.cap-toggle{flex:0 0 42px;width:42px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-text-muted);cursor:pointer}.cap-toggle svg{width:24px;height:24px}.cap-toggle:hover:not(.active){background:var(--color-surface-hover);color:var(--color-text)}.cap-toggle.active{background:var(--color-point);color:#fff;box-shadow:0 1px 4px #00000026}.cap-toggle.active:hover{background:var(--color-point);color:#fff}.stroke-control-label{color:var(--color-text-muted);font-size:10px}.cp{margin-bottom:4px}.paint-subject{flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-muted);font-size:11px}.paint-heading{margin:0 0 8px;justify-content:flex-start;gap:8px}.row-empty-note{margin:2px 0 0;padding:0 var(--panel-pad);color:var(--color-text-muted);font-size:11px}.cp-body{position:relative;display:flex;align-items:flex-start;justify-content:center;min-height:145px}.cp-side{position:absolute;z-index:1;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:10px}.cp-eyedropper{display:flex;align-items:center;justify-content:center;width:24px;height:20px;padding:0;border:none;border-radius:5px;background:none;color:var(--color-text-muted)}.cp-eyedropper:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.cp-wheel{position:relative;flex:0 0 auto;clip-path:circle(50%);touch-action:none}.cp-wheel:focus-visible{outline:none}.cp-wheel:focus-visible .cp-ring{box-shadow:0 0 0 2px var(--color-point)}.cp-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from 90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);-webkit-mask:radial-gradient(circle at center,transparent calc(var(--cp-inner) - .5px),#000 var(--cp-inner));mask:radial-gradient(circle at center,transparent calc(var(--cp-inner) - .5px),#000 var(--cp-inner));cursor:pointer}.cp-ring-thumb{position:absolute;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px #00000080;pointer-events:none}.cp-sv{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);cursor:crosshair;touch-action:none}.cp-sv-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:3px;box-shadow:0 0 0 1px #00000073;overflow:hidden}.cp-sv:focus-visible{outline:none}.cp-sv:focus-visible .cp-sv-fill{box-shadow:0 0 0 2px var(--color-point)}.cp-sv-white,.cp-sv-black{position:absolute;top:0;right:0;bottom:0;left:0}.cp-sv-white{background:linear-gradient(to right,#fff,#fff0)}.cp-sv-black{background:linear-gradient(to top,#000,#0000)}.cp-sv-thumb{position:absolute;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px #00000073;pointer-events:none}.cp-blend-row{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:10px}.preview-menu-button{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:4px;height:26px;padding:0 6px 0 8px;border:1px solid transparent;border-radius:6px;background:var(--color-surface-sunken);color:var(--color-text);font-family:inherit;font-size:11px;text-align:left;cursor:pointer}.preview-menu-button:hover:not(:disabled){background:var(--color-surface-sunken);border-color:var(--color-border)}.preview-menu-button:focus-visible,.preview-menu-button.is-open{outline:none;border-color:var(--color-point)}.preview-menu-button svg{flex:0 0 auto;color:var(--color-text-muted)}.preview-menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-menu{position:fixed;z-index:1100;padding:4px;overflow-y:auto;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-raised);box-shadow:var(--shadow-menu)}.preview-menu-option{display:flex;align-items:center;gap:6px;height:22px;padding:0 10px 0 4px;border-radius:4px;color:var(--color-text);font-size:11px;white-space:nowrap;cursor:pointer}.preview-menu-option.is-hovered{background:var(--color-point);color:#fff}.preview-menu-check{flex:0 0 12px;text-align:center;font-size:10px}.preview-menu-divider{height:1px;margin:4px;background:var(--color-border)}.cp-blend-button{flex:1 1 auto}.stroke-position-button{height:24px;min-width:0;border-radius:5px}.cp-cells.cp-opacity-cells{flex:0 0 64px}.cp-fields{display:flex;flex-direction:column;gap:6px;margin-top:6px;margin-bottom:16px}.cp-fields.cp-fields-first{margin-top:10px}.cp-field-row{display:flex;align-items:center;gap:6px}.cp-prefix{flex:0 0 auto;padding:0 2px 0 6px;color:var(--color-text-muted);font-size:10px}.cp-cells{display:flex;align-items:stretch;flex:1 1 auto;min-width:0;height:26px;border:1px solid transparent;border-radius:6px;background:var(--color-surface-sunken);overflow:hidden}.cp-cells:hover{border-color:var(--color-border)}.cp-cells:focus-within{border-color:var(--color-point)}.cp-cell{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;padding:0 2px}.cp-cell-wide{flex:3 1 0}.cp-cell-divider{flex:0 0 auto;width:1px;background:var(--color-border)}.cp-input{width:100%;min-width:0;height:100%;padding:0;border:none;background:none;color:var(--color-text);font-family:inherit;font-size:11px;font-variant-numeric:tabular-nums;text-align:center}.cp-input:focus{outline:none}.cp-suffix{flex:0 0 auto;padding-right:2px;color:var(--color-text-muted);font-size:10px}.cp-grip{display:flex;align-items:center;align-self:stretch;cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none}.cp-grip-letter{flex:0 0 auto;padding:0 1px 0 4px;color:var(--color-text-muted);font-size:10px}.cp-grip-strip{flex:0 0 6px}.cp-grip:hover{color:var(--color-text)}.cp-cell-scrub{padding-left:0}.cp-extras{margin-top:10px}.color-picker{position:fixed;z-index:40;width:240px;padding:10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-raised);box-shadow:var(--shadow-panel)}.color-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.color-picker-title{color:var(--color-text);font-size:11px;font-weight:500}.color-picker-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:4px;background:none;color:var(--color-text-muted);cursor:pointer}.color-picker-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.color-sv{position:relative;height:140px;border-radius:6px;overflow:hidden;cursor:crosshair;touch-action:none}.color-sv-white,.color-sv-black{position:absolute;top:0;right:0;bottom:0;left:0}.color-sv-white{background:linear-gradient(to right,#fff,#fff0)}.color-sv-black{background:linear-gradient(to top,#000,#0000)}.color-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px #0006;pointer-events:none}.color-sliders{display:flex;align-items:center;gap:8px;margin-top:10px}.color-eyedropper{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;padding:0;border:none;border-radius:5px;background:none;color:var(--color-text-muted);cursor:pointer}.color-eyedropper:hover{background:var(--color-surface-hover);color:var(--color-text)}.color-strips{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-width:0}.color-hue,.color-alpha{position:relative;height:10px;border-radius:5px;cursor:pointer;touch-action:none}.color-hue{background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.color-alpha{background-color:#fff;background-image:linear-gradient(45deg,#c8c8c8 25%,transparent 25%),linear-gradient(-45deg,#c8c8c8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#c8c8c8 75%),linear-gradient(-45deg,transparent 75%,#c8c8c8 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;overflow:hidden}.color-alpha-ramp{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px}.color-thumb{position:absolute;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px #0006;pointer-events:none}.color-fields{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr)) auto;align-items:center;gap:4px;margin-top:10px}.color-mode{color:var(--color-text-muted);font-size:10px}.color-channel{min-width:0;height:22px;padding:0 4px;border:1px solid transparent;border-radius:4px;background:var(--color-surface-sunken);color:var(--color-text);font-family:inherit;font-size:10px;font-variant-numeric:tabular-nums;text-align:center}.color-channel:focus{outline:none;border-color:var(--color-point)}.color-unit{color:var(--color-text-muted);font-size:10px}.page-overview{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;overflow-y:auto;background:#2c2c2cf0;padding:28px}.page-overview-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;align-content:start;max-width:1100px;margin:0 auto}.page-card{display:flex;flex-direction:column;gap:8px;padding:0;border:none;background:none;cursor:pointer;font:inherit;text-align:left}.page-card-sheet{position:relative;display:block;aspect-ratio:1 / 1;border-radius:4px;background:#fff;box-shadow:0 0 0 1px #00000059;overflow:hidden;transition:box-shadow .12s ease}.page-card:hover .page-card-sheet{box-shadow:0 0 0 1px var(--color-text-muted)}.page-card.active .page-card-sheet,.page-card.active:hover .page-card-sheet{box-shadow:0 0 0 2px var(--color-point)}.page-card:focus-visible{outline:none}.page-card:focus-visible .page-card-sheet{box-shadow:0 0 0 2px var(--color-point)}.page-card-sheet svg{display:block;width:100%;height:100%}.page-card-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:11px;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}.page-card-name{font-size:12px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-card.active .page-card-name{color:var(--color-text)}.centerline-trigger{grid-column:1 / -1}.centerline-trigger:disabled{opacity:.4;cursor:default}.centerline-card{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 50px);overflow-y:auto;color:var(--color-text);font-size:11px}.centerline-title{font-size:12px;font-weight:600}.centerline-help{margin:0;color:var(--color-text-muted);line-height:1.5}.centerline-controls{display:flex;flex-direction:column;gap:4px}.centerline-control{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}.centerline-range{display:flex;align-items:center;gap:5px;width:116px;padding:0 6px;border-radius:5px;background:var(--color-surface-sunken);min-height:24px}.centerline-range input{width:76px;min-width:0;margin:0;accent-color:var(--color-point)}.centerline-range output{min-width:22px;font-size:10px;text-align:right;font-variant-numeric:tabular-nums}.centerline-control>input[type=checkbox],.centerline-path-label>input[type=checkbox]{flex:0 0 13px;width:13px;height:13px;margin:0;accent-color:var(--color-point)}.centerline-status{padding-top:10px;border-top:1px solid var(--color-border);color:var(--color-text-muted)}.centerline-paths{flex:0 0 132px;height:132px;overflow-y:auto;border:1px solid var(--color-border);border-radius:5px;padding:4px}.centerline-paths>.centerline-help{padding:4px}.centerline-path{display:flex;align-items:center;gap:2px;min-height:26px}.centerline-path-label{display:flex;flex:1;align-items:center;min-width:0;gap:6px;padding:0 3px}.centerline-path-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.centerline-path.is-excluded .centerline-path-label span{color:var(--color-text-muted);opacity:.5}.centerline-path-action{flex:0 0 20px;width:20px;height:22px;padding:0;border:0;border-radius:3px;background:transparent;color:var(--color-text-muted);font-size:13px;cursor:pointer}.centerline-path-action:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.centerline-warnings{margin:0;padding-left:14px;color:var(--color-text-muted);line-height:1.5}.centerline-error{color:var(--color-text)}.centerline-actions{display:flex;justify-content:flex-end;gap:6px}.centerline-button{height:26px;padding:0 12px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-surface-raised);color:var(--color-text);font-size:11px;cursor:pointer}.centerline-button:hover:not(:disabled){background:var(--color-surface-hover)}.centerline-button-primary,.centerline-button-primary:hover:not(:disabled){border-color:var(--color-point);background:var(--color-point);color:#fff}.centerline-button:disabled,.centerline-path-action:disabled{opacity:.35;cursor:default}.centerline-button:focus-visible,.centerline-path-action:focus-visible,.centerline-control input:focus-visible,.centerline-path-label input:focus-visible{outline:2px solid var(--color-point);outline-offset:2px}.export-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000073}.export-dialog{display:flex;flex-direction:column;gap:14px;width:860px;height:560px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:hidden;padding:16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);box-shadow:var(--shadow-panel);color:var(--color-text);font-size:12px}.export-head{position:relative;display:flex;align-items:center;justify-content:center;height:24px;margin-top:-6px}.export-title{font-size:13px;font-weight:600}.export-head .export-close{position:absolute;top:0;right:-6px}.export-close,.export-close:hover:not(:disabled){display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:6px;background:none;color:var(--color-text-muted)}.export-close:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.export-body{display:grid;grid-template-columns:1fr 300px;gap:16px;flex:1 1 auto;min-height:0}.export-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:10px;min-height:0;overflow-y:auto;padding:10px;border-radius:8px;background:var(--color-ui-bg)}.export-page{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid transparent;border-radius:8px;cursor:pointer}.export-page:hover{background:var(--color-surface-hover)}.export-page.on{border-color:var(--color-point)}.export-page:not(.on) .export-page-sheet img{opacity:.4}.export-page-sheet{display:block}.export-page-sheet img{display:block;width:100%;height:auto;box-shadow:0 1px 4px #00000059}.export-page-sheet.transparent img{box-shadow:none;background-color:#fff;background-image:linear-gradient(45deg,#d9d9d9 25%,transparent 25%),linear-gradient(-45deg,#d9d9d9 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d9d9d9 75%),linear-gradient(-45deg,transparent 75%,#d9d9d9 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0}.export-page-row{display:flex;align-items:center;gap:6px;min-width:0}.export-page-row input{flex:0 0 auto;margin:0;accent-color:var(--color-point)}.export-page-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.export-page-number{flex:0 0 auto;color:var(--color-text-muted);font-size:11px;font-variant-numeric:tabular-nums}.export-settings{display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto}.export-section{display:flex;flex-direction:column;gap:8px}.export-section-title{font-size:11px;font-weight:600}.export-radio{display:flex;align-items:center;gap:8px;cursor:pointer}.export-radio input[type=radio]{margin:0;accent-color:var(--color-point)}.export-range-row>span{flex:0 0 auto}.export-pages-row{display:flex;align-items:center;gap:16px}.export-pages-row .export-range-row{flex:1 1 auto;min-width:0}.export-section-inline{display:grid;grid-template-columns:104px 1fr;align-items:center;gap:8px}.export-range{flex:1 1 auto;min-width:0;height:26px;padding:0 8px;border:1px solid transparent;border-radius:6px;outline:none;background:var(--color-surface-sunken);color:var(--color-text);font-family:inherit;font-size:11px}.export-range:focus{border-color:var(--color-point)}.export-range.invalid{border-color:#ff6b6b}.export-warning{padding-left:22px;color:#ff6b6b;font-size:11px}.export-settings .export-actions{margin-top:auto}.export-formats,.export-scales,.export-backgrounds{display:flex;background:var(--color-surface-sunken);border-radius:6px;overflow:hidden}.export-format,.export-scale,.export-format:hover:not(:disabled),.export-scale:hover:not(:disabled){flex:1 1 0;height:28px;padding:0;border:none;border-radius:0;background:none;color:var(--color-text-muted);font-size:12px;font-weight:500}.export-scale,.export-scale:hover:not(:disabled){height:24px;font-size:11px}.export-format+.export-format,.export-scale+.export-scale{border-left:1px solid var(--color-surface-raised)}.export-format:hover:not(:disabled):not(.on),.export-scale:hover:not(:disabled):not(.on){background:var(--color-surface-hover);color:var(--color-text)}.export-format.on,.export-scale.on{background:var(--color-point);color:#fff}.export-fields{display:flex;flex-direction:column;gap:10px}.export-field{display:grid;grid-template-columns:104px 1fr auto;align-items:center;gap:8px}.export-field>.export-scales,.export-field>.export-backgrounds,.export-field>.export-select,.export-field>.export-name{grid-column:2 / 4}.export-label{color:var(--color-text-muted)}.export-value{min-width:36px;text-align:right;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.export-field input[type=range]{width:100%;accent-color:var(--color-point)}.export-check{display:flex;gap:8px;padding-left:72px;cursor:pointer}.export-check input{margin:0;accent-color:var(--color-point)}.export-select{width:100%}.preview-menu-button.export-select,.preview-menu-button.export-select:hover:not(:disabled){border-color:var(--color-border);background:var(--color-surface-raised)}.preview-menu-button.export-select:hover:not(:disabled){border-color:#5a5a5a}.preview-menu-button.export-select:focus-visible,.preview-menu-button.export-select.is-open{border-color:var(--color-point)}.preview-menu-button.export-select svg{color:var(--color-text)}.preview-menu.export-select-menu{background:var(--color-ui-bg)}.export-dialog:focus{outline:none}.export-name{display:flex;align-items:center;height:26px;font-size:11px;padding:0 8px;border-radius:6px;background:var(--color-surface-sunken)}.export-name input{flex:1 1 auto;min-width:0;height:100%;padding:0;border:none;outline:none;background:none;color:var(--color-text);font:inherit}.export-ext{color:var(--color-text-muted)}.export-meta{color:var(--color-text-muted);font-size:11px;font-variant-numeric:tabular-nums}.export-error{color:#ff6b6b;font-size:11px}.export-actions{display:flex;justify-content:flex-end;gap:8px}.export-cancel,.export-go{height:28px;padding:0 14px;border:none;border-radius:6px;font-size:12px;font-weight:500}.export-cancel,.export-cancel:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-text)}.export-cancel:hover:not(:disabled){background:#444}.export-go,.export-go:hover:not(:disabled){background:var(--color-point);color:#fff}.export-go:hover:not(:disabled){background:var(--color-point-strong)}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--color-ui-bg);color:var(--color-text)}.auth-card{display:flex;flex-direction:column;gap:14px;width:320px;max-width:100%;padding:24px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);box-shadow:var(--shadow-panel)}.auth-title{margin:0 0 4px;font-size:16px;font-weight:600}.auth-field{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--color-text-muted)}.auth-field input{height:32px;padding:0 10px;border:1px solid transparent;border-radius:6px;outline:none;background:var(--color-surface-sunken);color:var(--color-text);font:inherit;font-size:12px}.auth-field input:focus{border-color:var(--color-point)}.auth-field input[readonly]{color:var(--color-text-muted)}.auth-field small{font-size:11px}.auth-error{margin:0;color:#ff6b6b;font-size:11px}.auth-note{margin:0;color:var(--color-text-muted);font-size:11px;text-align:center}.auth-submit,.auth-submit:hover:not(:disabled){height:32px;border:none;border-radius:6px;background:var(--color-point);color:#fff;font-size:12px;font-weight:500}.auth-submit:hover:not(:disabled){background:var(--color-point-strong)}.auth-switch,.auth-switch:hover:not(:disabled){padding:0;border:none;background:none;color:var(--color-text-muted);font-size:11px}.auth-switch:hover:not(:disabled){color:var(--color-text)}.dash-head-title{display:flex;align-items:baseline;gap:16px;min-width:0}.dash-account{display:flex;align-items:baseline;gap:10px;color:var(--color-text-muted);font-size:12px;white-space:nowrap}.dash-storage.full{color:#ff6b6b}.dash-signout,.dash-signout:hover:not(:disabled){padding:0;border:none;background:none;color:var(--color-text-muted);font-size:12px;text-decoration:underline}.dash-signout:hover:not(:disabled){color:var(--color-text)}
