@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(/fonts/inter-400.woff2)format("woff2")}@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(/fonts/inter-700.woff2)format("woff2")}@font-face{font-family:Caveat;font-weight:400 700;font-display:swap;src:url(/fonts/caveat-500.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2")}:root{--bg:#1b1e26;--panel:#22262f;--panel-border:#2e3340;--canvas:#14161c;--grid-minor:#1d2029;--grid-major:#272b37;--text:#e8eaf0;--muted:#8a90a0;--accent:#4dd0e1;--selection:#4d9fe1;--danger:#e05c5c;--snap:#e0b34d;--axis-x:#e05c5c;--axis-y:#4caf7d}[data-theme=light]{--bg:#eceef2;--panel:#f7f8fa;--panel-border:#d8dbe2;--canvas:#fafbfc;--grid-minor:#eef0f4;--grid-major:#dfe3ea;--text:#20242c;--muted:#565d6e}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}*{scrollbar-width:thin;scrollbar-color:var(--muted) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 45%, transparent);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-track{background:0 0}.icon{pointer-events:none;display:block}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font:13px/1.4 Inter,system-ui,sans-serif;overflow:hidden}.app{grid-template-rows:44px 1fr 28px;grid-template-columns:48px minmax(0, 1fr) var(--dock-w,280px);grid-template-areas:"top top top""toolbar viewport dock""status status status";height:100%;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--panel-border);grid-area:top;align-items:center;gap:8px;padding:0 10px;display:flex}.topbar button{align-items:center;gap:5px;display:inline-flex}.save-label{font-size:11px}.topbar .name{font-weight:700}.topbar .spacer{flex:1}.toolbar{background:var(--panel);border-right:1px solid var(--panel-border);flex-direction:column;grid-area:toolbar;align-items:center;gap:4px;padding:6px 0;display:flex}.toolbar button{justify-content:center;align-items:center;width:40px;height:40px;display:flex}.toolbar-sep{background:var(--panel-border);width:24px;height:1px;margin:3px 0}.viewport{background:var(--canvas);grid-area:viewport;position:relative;overflow:hidden}.dock{background:var(--panel);border-left:1px solid var(--panel-border);flex-direction:column;grid-area:dock;min-width:0;min-height:0;display:flex}.dock-scroll{flex-direction:column;flex:auto;min-height:0;display:flex;overflow-y:auto}.dock .panel{border-bottom:1px solid var(--panel-border)}.dock .panel-header{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 10px;font-weight:600;display:flex}.dock .panel-header:hover{background:var(--bg)}.panel-chevron{color:var(--muted);transition:transform .12s;display:flex}.panel-header.collapsed .panel-chevron{transform:rotate(-90deg)}.dock{position:relative}.dock-resize{cursor:col-resize;z-index:20;touch-action:none;width:10px;position:absolute;top:0;bottom:0;left:-5px}.dock-resize:before{content:"";background:var(--muted);opacity:.45;border-radius:2px;width:4px;height:40px;margin-top:-20px;position:absolute;top:50%;left:3px}.dock-resize:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:4px}.dock-resize:hover:after,.dock-resize:focus-visible:after,body.dock-dragging .dock-resize:after{background:color-mix(in srgb, var(--accent) 70%, transparent)}.dock-resize:hover:before,.dock-resize:focus-visible:before,body.dock-dragging .dock-resize:before{background:var(--accent);opacity:1}.dock-resize:focus-visible{outline:none}@media (pointer:coarse){.dock-resize{width:24px;left:-12px}.dock-resize:before{left:10px}.dock-resize:after{left:11px}}body.dock-dragging,body.dock-dragging *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.active-layer-chip{color:var(--muted);border:1px solid var(--panel-border);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;align-items:center;gap:5px;max-width:140px;padding:1px 8px;font-size:11px;display:inline-flex;overflow:hidden}.chip-swatch{border-radius:50%;flex:none;width:8px;height:8px}.dock .panel-body{color:var(--muted);padding:8px 10px}.statusbar{background:var(--panel);border-top:1px solid var(--panel-border);color:var(--muted);grid-area:status;align-items:center;gap:14px;padding:0 10px;font-size:12px;display:flex}.statusbar .hint{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.statusbar .coords,.statusbar .zoom{text-align:right;white-space:nowrap;min-width:130px;font-family:JetBrains Mono,monospace}.statusbar .zoom{min-width:56px}.statusbar .snap-kind{color:var(--snap);text-align:right;text-transform:capitalize;white-space:nowrap;min-width:80px;font-size:11px}@media (max-width:980px){.statusbar .coords,.statusbar .snap-kind{display:none}}.badges{gap:4px;display:flex}.badge{color:var(--muted);border-radius:3px;padding:2px 6px;font-size:10px;transition:border-color .1s,color .1s}.badge:hover{border-color:var(--accent);color:var(--text)}.badge:active{transform:scale(.94)}.badge.on{color:var(--accent);border-color:var(--accent)}.zoom-control{position:relative}.zoom-control .zoom{background:0 0;border:1px solid #0000;justify-content:flex-end;align-items:center;gap:3px;padding:2px 6px;display:inline-flex}.zoom-control .zoom:hover{border-color:var(--panel-border)}.zoom-panel{min-width:150px;position:absolute;bottom:24px;right:0}.measure-input{background:var(--bg);border:1px solid var(--panel-border);width:150px;color:var(--text);border-radius:4px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:12px}.measure-input:focus{border-color:var(--accent);outline:none}.measure-input.invalid{border-color:var(--danger);animation:.6s flash-invalid}@keyframes flash-invalid{0%,to{background:var(--bg)}50%{background:#e05c5c40}}.toolbar-sep{border-top:1px solid var(--panel-border);width:24px;margin:4px 0}.context-menu{z-index:100;background:var(--panel);border:1px solid var(--panel-border);border-radius:6px;min-width:170px;padding:4px;position:fixed;box-shadow:0 6px 24px #00000073}.context-menu>div{position:relative}.context-menu.submenu{position:absolute;top:-4px;left:calc(100% - 4px)}.menu-item{text-align:left;background:0 0;border:none;border-radius:4px;justify-content:space-between;gap:12px;width:100%;padding:5px 10px;font-size:12px;display:flex}.menu-item:hover:not(.disabled){background:var(--bg);border:none}.menu-item.disabled{opacity:.35}.menu-sep{border-top:1px solid var(--panel-border);margin:4px 6px}.menu-caret{color:var(--muted)}.region-picker{z-index:95;cursor:crosshair;background:#00000040;outline:none;position:fixed}.region-rect{border:1.5px dashed var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);pointer-events:none;position:absolute}.region-hint{background:var(--panel);border:1px solid var(--panel-border);color:var(--text);pointer-events:none;border-radius:6px;padding:5px 12px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.help-link{border:1px solid var(--panel-border);width:22px;height:22px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.help-link:hover{color:var(--accent);border-color:var(--accent)}.asset-row{align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.starter-help{margin-top:14px;display:block}.starter-help a{color:var(--accent)}.shortcuts-modal{background:var(--panel);border:1px solid var(--panel-border);width:min(760px,94vw);max-height:88vh;color:var(--text);border-radius:12px;padding:16px 20px;overflow-y:auto}.sc-columns{grid-template-columns:1fr 1fr;gap:4px 28px;margin:8px 0 12px;display:grid}@media (max-width:700px){.sc-columns{grid-template-columns:1fr}}.sc-group{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:12px 0 4px;font-size:11px}.sc-row{align-items:baseline;gap:10px;padding:2px 0;font-size:13px;display:flex}.sc-keys{white-space:nowrap;flex:0 0 150px}.sc-desc{color:var(--muted)}.shortcuts-modal kbd,kbd{background:var(--bg);border:1px solid var(--panel-border);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font:11px JetBrains Mono,monospace}.eden-chip{color:var(--muted);border:1px solid var(--panel-border);white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px}.eden-chip.error{color:var(--danger);border-color:var(--danger)}.eden-chip.newer{color:var(--accent);border-color:var(--accent)}.eden-projects{border-top:1px solid var(--panel-border);margin-top:10px;padding-top:4px}.eden-project-list{flex-direction:column;gap:2px;max-height:180px;display:flex;overflow-y:auto}.eden-project-row{border-radius:4px;align-items:center;gap:10px;padding:4px 6px;display:flex}.eden-project-row:hover{background:var(--bg)}.eden-freshness{border:1px solid var(--panel-border);color:var(--muted);white-space:nowrap;border-radius:8px;padding:1px 7px;font-size:10px}.eden-freshness.ok{color:var(--axis-y);border-color:var(--axis-y)}.eden-freshness.ahead{color:var(--snap);border-color:var(--snap)}.eden-freshness.newer{color:var(--accent);border-color:var(--accent)}.eden-config-input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--panel-border);resize:vertical;border-radius:4px;padding:6px;font-family:JetBrains Mono,monospace;font-size:11px}.objects-panel{max-height:260px;margin:-4px -4px 0;overflow-y:auto}.objects-layer-name{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 4px 2px;font-size:10px}.object-row{cursor:pointer;color:var(--text);border-radius:4px;align-items:center;gap:6px;padding:3px 4px;font-size:12px;display:flex}.object-row:hover{background:var(--bg)}.object-row.selected{background:color-mix(in srgb, var(--selection) 18%, transparent);outline:1px solid var(--selection)}.object-row.dimmed{opacity:.45}.object-icon{color:var(--muted);flex:none;display:flex}.object-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.object-flag{font-size:10px}.object-delete{color:var(--muted);visibility:hidden;background:0 0;border:none;padding:2px;display:flex}.object-row:hover .object-delete{visibility:visible}.object-delete:hover{color:var(--danger)}.layer-row{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:3px 4px;display:flex}.layer-row.active{background:var(--bg);font-weight:600}.layer-swatch{border:1px solid var(--panel-border);background:0 0;border-radius:3px;width:22px;height:22px;padding:0}.layer-swatch:hover{border-color:var(--accent)}.layer-opacity{align-items:center;gap:6px;display:inline-flex}.layer-opacity-value{color:var(--muted);min-width:32px;font-size:11px}.layer-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-name-input{background:var(--bg);border:1px solid var(--accent);min-width:0;color:var(--text);border-radius:3px;flex:1;padding:1px 4px}.layer-toggle{opacity:.25;background:0 0;border:none;padding:1px 2px;font-size:11px}.layer-toggle.on{opacity:1}.layer-footer{border-top:1px solid var(--panel-border);align-items:center;gap:4px;margin-top:6px;padding-top:6px;display:flex}.layer-footer button.on{border-color:var(--accent);color:var(--accent)}.layer-opacity{flex:1;display:flex}.layer-opacity input{width:100%}.layer-migrate{background:var(--bg);color:var(--text);border-radius:6px;flex-direction:column;gap:6px;margin:6px 0;padding:8px;display:flex}.layer-migrate-actions{flex-wrap:wrap;gap:4px;display:flex}.inspector{color:var(--text);flex-direction:column;gap:6px;display:flex}.insp-title{text-transform:capitalize;color:var(--accent);font-weight:600}.insp-field{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.insp-field>span:first-child{color:var(--muted);min-width:54px}.insp-field input:not([type=checkbox]):not([type=color]):not([type=range]),.insp-field select{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);border-radius:3px;width:110px;padding:2px 5px;font-family:JetBrains Mono,monospace;font-size:11px}.insp-field input.narrow{width:48px}.insp-field input.invalid{border-color:var(--danger);animation:.6s flash-invalid}.insp-inline{align-items:center;gap:4px;display:flex}.insp-inline select{width:auto}.insp-check{color:var(--muted);align-items:center;gap:3px;font-size:11px;display:flex}.insp-actions{gap:6px;margin-top:4px;display:flex}.style-editor{border-top:1px solid var(--panel-border);flex-direction:column;gap:6px;padding-top:6px;display:flex}button.danger{border-color:var(--danger);color:var(--danger)}.muted{color:var(--muted)}.appmenu{position:relative}.appmenu-backdrop{z-index:99;position:fixed;inset:0}.appmenu-panel{z-index:100;position:absolute;top:calc(100% + 4px);left:0}.save-dot{background:var(--muted);opacity:.4;border-radius:50%;width:8px;height:8px}.save-dot.saving{background:var(--snap);opacity:1}.save-dot.saved{background:var(--axis-y);opacity:1}.save-dot.error{background:var(--danger);opacity:1}.modal-backdrop{z-index:90;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.projects-modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;gap:12px;width:min(720px,92vw);max-height:84vh;padding:14px;display:flex;overflow-y:auto}.projects-head{align-items:center;gap:8px;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.project-card{border:1px solid var(--panel-border);border-radius:8px;flex-direction:column;gap:5px;padding:8px;display:flex}.project-card.current{border-color:var(--accent)}.project-thumb{background:var(--canvas);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;height:110px;display:flex;overflow:hidden}.project-thumb img{object-fit:cover;width:100%;height:100%}.project-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.project-meta{font-size:11px}.project-actions{gap:4px;display:flex}.project-actions button{padding:2px 7px;font-size:11px}.storage-meter{color:var(--muted);font-size:11px}.storage-meter.warn{color:var(--danger)}.storage-banner{z-index:80;background:var(--danger);color:#fff;border-radius:6px;padding:5px 14px;font-size:12px;position:fixed;top:48px;left:50%;transform:translate(-50%)}.toasts{z-index:110;pointer-events:none;flex-direction:column;grid-area:viewport;place-self:end center;align-items:center;gap:8px;max-width:calc(100% - 16px);margin:0 8px 12px;display:flex}.toast{background:var(--panel);border:1px solid var(--panel-border);border-left:3px solid var(--accent);max-width:340px;color:var(--text);pointer-events:none;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex;box-shadow:0 6px 24px #0006}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--axis-y)}.toast-x{color:var(--muted);pointer-events:auto;background:0 0;border:none;padding:0 2px;font-size:14px}.export-modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;gap:12px;width:min(860px,94vw);max-height:88vh;padding:14px;display:flex;overflow-y:auto}.export-body{grid-template-columns:320px 1fr;gap:16px;display:grid}.export-options{color:var(--text);flex-direction:column;gap:8px;display:flex}.export-layers{flex-wrap:wrap;max-width:220px}.export-preview{background:repeating-conic-gradient(var(--panel-border) 0% 25%, var(--panel) 0% 50%) 0 0 / 16px 16px;border:1px solid var(--panel-border);border-radius:6px;justify-content:center;align-items:center;min-height:320px;display:flex;overflow:hidden}.export-preview img{max-width:100%;max-height:60vh;box-shadow:0 4px 16px #0006}.export-modal.with-sheet{width:min(1500px,97vw);height:92vh;max-height:92vh;overflow:hidden}.export-modal.with-sheet .export-body{flex:auto;grid-template-columns:340px minmax(0,1fr);min-height:0}.export-modal.with-sheet .export-options,.sheet-details{min-width:0;min-height:0;padding-right:6px;overflow:hidden auto}.export-modal.with-sheet .export-preview{min-height:0}.sheet-page{cursor:grab;touch-action:none;outline:none;width:100%;height:100%;display:block}.sheet-page.dragging{cursor:grabbing}.sheet-page:focus-visible #sheet-paper{stroke:var(--accent);stroke-width:.4%}#sheet-paper{filter:drop-shadow(0 2px 6px #00000073)}.sheet-text{pointer-events:none;-webkit-user-select:none;user-select:none;white-space:pre}.export-modal.with-sheet .export-preview{padding:0;display:block;position:relative}.sheet-zoom{z-index:2;gap:3px;display:flex;position:absolute;top:8px;left:8px}.sheet-scroll{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;padding:42px 10px 10px;display:flex;overflow:auto}.sheet-scroll.zoomed{justify-content:flex-start;align-items:flex-start}.sheet-page.zoomed{cursor:default;touch-action:auto;background:#fff;flex:none}.sheet-logo-none{min-width:60px;font-size:12px}.sheet-limit{fill:none;stroke:#5b9bd5;stroke-opacity:.45;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:2 4;pointer-events:none}.sheet-box{fill:none;stroke:#2f7ed8;stroke-opacity:.7;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:6 4;pointer-events:none}.sheet-box.cut{stroke:var(--danger);stroke-opacity:1}.sheet-edit-row button{width:100%}.sheet-rule{border:0;border-top:1px solid var(--panel-border);width:100%;margin:4px 0}.sheet-move{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;min-width:0}.sheet-move label{align-items:center;gap:3px;display:inline-flex}.insp-field .sheet-move input.narrow:not([type=checkbox]):not([type=color]):not([type=range]){flex:none;width:52px;min-width:0}.insp-field.sheet-wide{flex-direction:column;align-items:stretch;gap:3px}.insp-field.sheet-wide>select{width:100%;min-width:0}.sheet-details{color:var(--text);flex-direction:column;gap:10px;display:flex}.sheet-details-head{justify-content:space-between;align-items:center;display:flex}.sheet-group{border-top:1px solid var(--panel-border);flex-direction:column;gap:5px;padding-top:8px;display:flex}.sheet-group h4{margin:0;font-size:12px;font-weight:600}.sheet-field{grid-template-columns:108px minmax(0,1fr);align-items:start;gap:6px;font-size:12px;display:grid}.sheet-field>span:first-child{padding-top:4px}.sheet-field-box{gap:4px;min-width:0;display:flex}.sheet-field-box input,.sheet-field-box textarea{width:100%;min-width:0;font:inherit;resize:vertical;flex:auto}.sheet-revert{flex:none;padding:0 6px}.sheet-logo-row{align-items:center;gap:10px;display:flex}.sheet-logo-row img{object-fit:contain;width:auto;max-width:110px;height:44px;box-shadow:none;background:#fff;border-radius:3px;padding:2px}.sheet-logo-buttons{flex-direction:column;gap:4px;display:flex}.sheet-rev{border-bottom:1px dashed var(--panel-border);grid-template-columns:34px 112px minmax(0,1fr);gap:3px;padding-bottom:5px;display:grid}.sheet-rev input{width:100%;min-width:0;font:inherit;font-size:12px}.sheet-rev .rev-text{grid-column:1/-1}.sheet-rev .rev-by{grid-column:span 1}.sheet-rev .rev-remove{padding:0}button.primary{border-color:var(--accent);color:var(--accent);font-weight:600}.settings-modal{background:var(--panel);border:1px solid var(--panel-border);width:min(420px,92vw);max-height:86vh;color:var(--text);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex;overflow-y:auto}.keymap-editor{flex-direction:column;gap:4px;display:flex}.keymap-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.keymap-row button{min-width:110px;font-family:JetBrains Mono,monospace}.starter-modal{background:var(--panel);border:1px solid var(--panel-border);width:min(720px,94vw);max-height:90vh;color:var(--text);text-align:center;border-radius:12px;padding:22px;overflow-y:auto}.starter-modal h2{margin:0 0 16px}.starter-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.starter-card{border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:20px 14px;font-size:13px;display:flex}.starter-card small{color:var(--muted);line-height:1.35}.starter-icon{height:36px;color:var(--accent);justify-content:center;align-items:center;display:flex}.coach-mark{z-index:85;background:var(--panel);border:1px solid var(--accent);max-width:340px;color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex;position:fixed;top:56px;left:60px;box-shadow:0 6px 24px #0006}.inline-text-editor{z-index:95;min-width:120px;color:var(--text);border:1px solid var(--accent);resize:none;background:#14161ceb;border-radius:4px;outline:none;padding:2px 6px;font-family:Inter,system-ui,sans-serif;line-height:1.3;position:fixed}button{background:var(--panel);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:4px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.active{border-color:var(--accent);color:var(--accent)}.joblink-list{border:1px solid var(--panel-border);border-radius:6px;flex-direction:column;gap:2px;max-height:220px;padding:4px;display:flex;overflow-y:auto}.joblink-item{text-align:left;background:0 0;border:1px solid #0000;padding:5px 8px;font-size:12px}.joblink-item.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.joblink-error{color:var(--danger,#e5484d)}.numpanel{z-index:5;background:var(--panel);border:1px solid var(--panel-border);border-radius:6px;flex-wrap:wrap;grid-area:viewport;place-self:start;align-items:flex-end;gap:6px 8px;width:max-content;max-width:calc(100% - 16px);margin:8px;padding:8px 10px;display:flex;box-shadow:0 4px 14px #00000040}.numpanel-title{flex-basis:100%;font-size:12px;font-weight:600}.numpanel-field{color:var(--text-dim,var(--text));flex-direction:column;gap:2px;font-size:11px;display:flex}.numpanel-field input{background:var(--bg);border:1px solid var(--panel-border);width:88px;color:var(--text);border-radius:4px;padding:4px 6px;font-family:JetBrains Mono,monospace;font-size:12px}.numpanel-field input:focus{border-color:var(--accent);outline:none}.numpanel-note{opacity:.75;flex-basis:100%;font-size:11px}.numpanel-note.bad{color:var(--danger);opacity:1}.numpanel-field.wide input{width:200px}.numpanel-field .category-picker select,.numpanel-field .category-picker input{width:190px}.numpanel-field select{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);border-radius:4px;padding:3px 6px;font-size:12px}.numpanel-check{align-items:center;gap:4px;padding-bottom:4px;font-size:12px;display:flex}.numpanel-quick{padding:3px 7px;font-size:12px}.library{flex-direction:column;gap:6px;display:flex}.library-bar{flex-wrap:wrap;gap:6px;display:flex}.library-bar input{flex:100%;min-width:0}.library-status{font-style:italic}.library-empty{margin:6px 0;font-size:12px}.library-cat{text-transform:uppercase;letter-spacing:.04em;opacity:.75;margin-top:4px;font-size:11px;font-weight:600}.library-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;display:grid}.library-item{position:relative}.library-pick{text-align:center;flex-direction:column;align-items:center;gap:2px;width:100%;height:auto;padding:6px 4px;display:flex}.library-thumb{width:64px;height:48px;color:var(--text);display:flex}.library-thumb svg{width:100%;height:100%}.library-name{overflow-wrap:anywhere;font-size:12px;font-weight:600;line-height:1.2}.library-size{font-size:10px}.library-x{opacity:.6;width:20px;height:20px;padding:0;font-size:14px;line-height:1;position:absolute;top:2px;right:2px}.library-x:hover{opacity:1}.library-confirm{gap:4px;display:flex;position:absolute;inset:auto 2px 2px}.library-confirm button{flex:1;padding:2px;font-size:11px}.library-move-btn{opacity:.6;width:20px;height:20px;color:var(--muted);background:0 0;border-color:#0000;place-items:center;padding:0;display:grid;position:absolute;top:2px;right:24px}.library-move-btn:hover{opacity:1;color:var(--text);border-color:var(--accent)}.library-move-btn svg{pointer-events:none;width:15px;height:15px}.library-move{z-index:2;background:var(--panel);border:1px solid var(--accent);border-radius:4px;flex-direction:column;gap:4px;padding:4px;display:flex;position:absolute;inset:auto 2px 2px}.library-move .category-picker select,.library-move .category-picker input{width:100%;font-size:11px}.library-move-buttons{gap:4px;display:flex}.library-move-buttons button{flex:1;padding:2px;font-size:11px}.category-picker{flex-direction:column;gap:4px;min-width:0;display:flex}.eden-chip.waiting{cursor:pointer;border-color:var(--accent);color:var(--accent);font:inherit;background:0 0;height:auto;font-size:11px}.eden-chip.waiting:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.dxf-modal{width:min(640px,100vw - 32px)}.dxf-file{overflow-wrap:anywhere}.dxf-body{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.dxf-preview{min-width:200px;height:200px;color:var(--text);background:var(--bg);border:1px solid var(--panel-border);border-radius:4px;flex:220px;justify-content:center;align-items:center;padding:6px;display:flex}.dxf-preview svg{width:100%;height:100%}.dxf-facts{flex-direction:column;flex:220px;gap:6px;font-size:12px;display:flex}.dxf-facts p{margin:0}.dxf-warn{color:var(--warning,#e0a030)}.dxf-known{color:var(--text);border-left:3px solid var(--accent);padding-left:6px}.dxf-problem{color:var(--danger);margin:6px 0;font-size:12px}.dxf-save{flex-direction:column;gap:6px;display:flex}.dxf-save .insp-field input:not([type=checkbox]):not([type=color]):not([type=range]),.dxf-save .insp-field select,.dxf-save .category-picker{width:min(320px,60vw)}.dxf-save .category-picker select,.dxf-save .category-picker input{width:100%}.align-block{border-top:1px solid var(--border,#8080804d);flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;display:flex}.align-ref{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.align-ref>span{flex:100%}.align-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.align-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.align-block button{padding:4px 6px;font-size:12px}.align-block button:disabled{opacity:.45;cursor:not-allowed}.export-options .insp-field>select{min-width:10.5em}.pivot-block{flex-direction:column;gap:4px;display:flex}.pivot-grid{border:1px dashed var(--border,#3a4250);border-radius:6px;grid-template-rows:repeat(3,26px);grid-template-columns:repeat(3,26px);align-self:flex-end;gap:3px;padding:3px;display:grid}.pivot-grid button{border-radius:4px;place-items:center;padding:0;display:grid}.pivot-grid button span{border:1.5px solid;border-radius:50%;width:8px;height:8px}.pivot-grid button.on{color:#1b1b1b;background:#f0a030;border-color:#f0a030}.pivot-grid button.on span{background:currentColor}.library-fold{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:4px 2px;display:flex}.library-fold:hover{background:#ffffff0d}.pipe-block{border-top:1px solid var(--border,#8080804d);flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;display:flex}.inspector.pipe-block{border-top:none;margin-top:0;padding-top:0}.pipe-end-row{border:1px solid var(--panel-border);border-radius:4px;flex-direction:column;gap:4px;padding:5px 6px;font-size:12px;display:flex}.pipe-end-row.picked{border-color:#4d9fe1;box-shadow:inset 2px 0 #4d9fe1}.pipe-end-name{color:var(--text)}.pipe-connected{color:#4caf7d}.pipe-end-ctl,.pipe-end-state{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.pipe-end-state>.muted{flex:auto;min-width:0}.pipe-action input,.pipe-end-ctl select{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);border-radius:3px;padding:2px 5px;font-family:JetBrains Mono,monospace;font-size:11px}.pipe-action input{width:64px}.pipe-action input.invalid{border-color:var(--danger);animation:.6s flash-invalid}.pipe-block button{padding:3px 8px;font-size:12px}.colour-swatches{flex-wrap:wrap;gap:4px;display:flex}.pipe-block .colour-swatch{border:1px solid var(--panel-border);cursor:pointer;border-radius:3px;width:22px;height:22px;padding:0}.pipe-block .colour-swatch:hover{border-color:var(--accent)}.pipe-block .colour-swatch[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.pipe-block .colour-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.space-evenly{border-top:1px solid var(--panel-border);margin-top:8px;padding-top:6px}.space-evenly #space-mode{min-width:150px}.pipe-block .width-choice{padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:11px}.pipe-block .width-choice[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.pipe-block #component-width{width:64px}.pipe-block .wall-preset{padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:11px}.pipe-block button:disabled,.pipe-action input:disabled{opacity:.45;cursor:not-allowed}.library-star{z-index:1;width:26px;height:26px;color:var(--muted);background:0 0;border-color:#0000;place-items:center;padding:0;display:grid;position:absolute;top:2px;left:2px}.library-star svg{pointer-events:none;width:16px;height:16px}.library-star:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.library-star.on{color:var(--snap)}[data-theme=light] .library-star.on{color:#9a6f00}.library-cat-star{vertical-align:-2px;color:var(--snap);display:inline-flex}.library-cat-star svg{width:13px;height:13px}.library-favs{border-bottom:1px solid var(--panel-border);padding-bottom:6px}.library-none{margin:6px 0;font-size:12px}.library-filters{border:1px solid var(--panel-border);border-radius:6px;flex-direction:column;gap:5px;padding:6px;display:flex}.lf-row{flex-wrap:wrap;align-items:center;gap:5px 10px;display:flex}.lf-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.lf-chip{white-space:nowrap;border-radius:13px;min-height:26px;padding:2px 7px;font-size:12px}.lf-chip.on{background:var(--accent);border-color:var(--accent);color:#0b1d21;font-weight:600}.lf-chip.on:hover:not(:disabled){border-color:var(--text)}.lf-selects{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:4px 6px;display:grid}.lf-field{min-width:0;color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:11px;display:flex}.lf-row>.lf-field{flex:110px}.lf-field select{background:var(--bg);border:1px solid var(--panel-border);min-width:0;max-width:100%;min-height:26px;color:var(--text);border-radius:4px;flex:auto;padding:2px 4px;font-size:12px}.lf-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.lf-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;display:flex}.library-count{min-width:0;color:var(--muted);flex:140px;font-size:11px}.lf-clear{min-height:26px;padding:2px 10px;font-size:12px}@media (pointer:coarse){.lf-chip,.lf-clear,.lf-field select{min-height:38px}.lf-chip{padding:4px 13px}.library-star{width:38px;height:38px}.library-star svg{width:20px;height:20px}}
