.editor-body{height:100vh;overflow:hidden}.editor-mobile-block{display:none;height:100vh;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding:40px}.editor-mobile-block .logo img{height:22px}.editor-mobile-block p{color:var(--muted);font-size:.9rem;line-height:1.6;max-width:320px}.editor-shell{display:flex;flex-direction:column;height:100vh}.editor-shell.is-entering{opacity:0;transform:translateY(10px)}.editor-shell.is-ready{animation:editor-shell-in .4s ease forwards}@keyframes editor-shell-in{to{opacity:1;transform:translateY(0)}}.editor-loading-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--bg);transition:opacity .3s ease}.editor-loading-overlay.is-hidden{opacity:0;pointer-events:none}.editor-loading-canvas{display:block}.editor-topbar{display:flex;align-items:center;gap:20px;padding:0 20px;height:56px;flex:none;border-bottom:1px solid var(--line)}.editor-back{display:flex;align-items:center}.editor-back img{height:22px;width:22px;object-fit:contain}.editor-title{font-size:.8rem;letter-spacing:.04em;color:var(--fg)}.editor-beta-badge{margin-left:-12px;background:none;border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:3px;cursor:pointer;transition:color .15s,border-color .15s}.editor-beta-badge:hover{color:var(--fg);border-color:var(--fg)}.editor-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.editor-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:1rem;cursor:pointer;transition:background .15s,color .15s}.editor-icon-btn:hover:not(:disabled){color:var(--fg);background:#ffffff14}.editor-icon-btn:disabled{cursor:not-allowed;opacity:.5}.editor-topbar-actions .btn{margin-top:0}.editor-topbar-actions .btn:disabled{cursor:not-allowed}.editor-browser-warning{flex:none;display:flex;align-items:center;gap:14px;padding:8px 20px;background:#ff3b3b14;border-bottom:1px solid rgba(255,59,59,.3);color:#ff8080;font-family:var(--mono);font-size:.72rem}.editor-browser-warning[hidden]{display:none}.editor-browser-warning span{flex:1}.editor-browser-warning-dismiss{flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:inherit;font-size:1rem;line-height:1;cursor:pointer;opacity:.8}.editor-browser-warning-dismiss:hover{opacity:1}.editor-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:10000;max-width:360px;padding:10px 16px;background:#1a1a1a;border:1px solid var(--line);border-radius:6px;color:var(--fg);font-family:var(--mono);font-size:.72rem;line-height:1.5;text-align:center;box-shadow:0 8px 24px #0006;opacity:0;transition:opacity .2s ease;pointer-events:none}.editor-toast.is-visible{opacity:1}.editor-main{position:relative;flex:1;display:grid;grid-template-columns:112px 1fr auto;grid-template-rows:1fr auto;min-height:0}.editor-toolbar{grid-column:1;grid-row:1 / 3}.editor-canvas-area{grid-column:2;grid-row:1}.editor-renderings{grid-column:3;grid-row:1}.editor-bottombar{grid-column:2 / 4;grid-row:2}.editor-toolbar{border-right:1px solid var(--line);padding:16px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.editor-tool-group{display:flex;flex-direction:column;gap:2px}.editor-tool{display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 4px;background:transparent;border:none;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.editor-tool:hover:not(.is-active){color:var(--fg);background:#ffffff14}.editor-tool.is-active{color:var(--bg);background:var(--fg);cursor:default}.editor-tool-icon{width:20px;height:20px;flex:none}.editor-tool-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase}.editor-tool-divider{height:1px;background:var(--line);margin:10px 4px}.editor-zoom{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:8px}.editor-zoom-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.editor-zoom-controls{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.68rem;color:var(--muted)}.editor-zoom-controls .editor-icon-btn{width:22px;height:22px;font-size:.85rem}.editor-zoom-value{min-width:34px;text-align:center}.editor-recenter-btn{width:22px;height:22px}.editor-recenter-btn svg{width:14px;height:14px}.editor-help-btn{margin-top:14px;width:26px;height:26px;padding:0;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--muted);font-family:var(--mono);font-size:.72rem;line-height:1;display:flex;align-items:center;justify-content:center;align-self:center;cursor:pointer}.editor-help-btn:hover{color:var(--fg);border-color:var(--fg);background:#ffffff14}.editor-side-panel{position:absolute;top:0;bottom:0;left:112px;z-index:20;width:0;overflow:hidden;background:var(--bg);transition:width .18s ease-out}.editor-side-panel.is-open{width:240px;border-right:1px solid var(--line);box-shadow:4px 0 16px #00000059}.editor-side-panel-section{display:none;width:240px;padding:24px 20px;height:100%;box-sizing:border-box;flex-direction:column;min-height:0}.editor-side-panel-section.is-active{display:flex}.editor-side-panel-section h2{font-size:1rem;margin-bottom:12px;flex:none}.editor-side-panel-empty{font-size:.78rem;color:var(--muted);line-height:1.6;flex:none}.editor-layers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none}.editor-layers-list::-webkit-scrollbar{display:none}.editor-layer-item{display:flex;align-items:center;gap:8px;padding:6px 8px;color:var(--muted);font-size:.75rem;cursor:pointer;user-select:none}.editor-layer-item:hover{background:#ffffff0f;color:var(--fg)}.editor-layer-item.is-active{background:#ffffff1a;color:var(--fg)}.editor-layer-item[draggable=true]{cursor:grab}.editor-layer-item.is-drop-above{box-shadow:inset 0 2px #fff}.editor-layer-item.is-drop-below{box-shadow:inset 0 -2px #fff}.editor-layer-item.is-drop-group{box-shadow:inset 0 0 0 2px #fff}.editor-layer-item-icon{width:16px;height:16px;flex:none}.editor-layer-item-thumb{width:16px;height:16px;flex:none;object-fit:contain}.editor-layer-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-layer-item-finish-icon{width:13px;height:13px;flex:none;opacity:.6}.editor-layer-item:hover .editor-layer-item-finish-icon,.editor-layer-item.is-active .editor-layer-item-finish-icon{opacity:.9}.editor-layer-toggle{width:14px;height:14px;flex:none;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;color:var(--muted);font-size:.6rem;line-height:1;cursor:pointer}.editor-layer-toggle:hover{color:var(--fg)}.editor-layer-toggle-spacer{width:14px;flex:none}.editor-canvas-area{display:flex;flex-direction:column;min-height:0;min-width:0;position:relative}.editor-text-toolbar{display:flex;flex-wrap:wrap;visibility:hidden;pointer-events:none;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--bg);position:absolute;top:0;left:0;right:0;z-index:30;opacity:0;transform:translateY(-6px);transition:opacity .16s ease-out,transform .16s ease-out,visibility 0s linear .16s,margin-left .18s ease-out}.editor-side-panel.is-open~.editor-canvas-area .editor-text-toolbar{margin-left:240px}.editor-text-toolbar.is-visible{visibility:visible;pointer-events:auto;opacity:1;transform:translateY(0);transition:opacity .16s ease-out,transform .16s ease-out}.editor-text-toolbar input{background:transparent;border:1px solid var(--line);color:var(--fg);font-family:var(--mono);font-size:.82rem;letter-spacing:.03em;padding:6px 8px}select{background-color:var(--bg);color:var(--fg);color-scheme:dark}select option{background-color:var(--bg);color:var(--fg)}.editor-text-toolbar input[type=number]{width:56px}.editor-custom-select{position:relative}.editor-custom-select-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.editor-custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;background:transparent;border:1px solid var(--line);color:var(--fg);font-family:var(--mono);font-size:.82rem;letter-spacing:.03em;padding:6px 8px;cursor:pointer}.editor-custom-select-trigger:hover,.editor-custom-select.is-open .editor-custom-select-trigger{background:#ffffff14}.editor-custom-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-custom-select-caret{width:12px;height:12px;flex:none;color:var(--muted);transition:transform .15s ease-out}.editor-custom-select.is-open .editor-custom-select-caret{transform:rotate(180deg)}.editor-custom-select-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--bg);border:1px solid var(--line);max-height:240px;overflow-y:auto;box-shadow:0 8px 24px #0006}.editor-custom-select-option{padding:7px 8px;font-family:var(--mono);font-size:.78rem;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.editor-custom-select-option:hover,.editor-custom-select-option.is-active{background:#ffffff1a}.editor-custom-select-option.is-selected{color:var(--bg);background:var(--fg)}.editor-custom-select-option.is-selected.is-active{background:var(--fg)}#text-font-family-wrapper{width:130px;flex:none}.editor-next-modal-select-field .editor-custom-select{flex:1;min-width:0}.editor-next-modal-select-field .editor-custom-select-trigger{font-size:.72rem;padding:7px 8px}.editor-text-toolbar-divider{width:1px;height:20px;background:var(--line)}.editor-align-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);color:var(--muted);cursor:pointer}.editor-align-btn svg{width:16px;height:16px}.editor-align-btn:hover:not(.is-active){color:var(--fg);background:#ffffff14}.editor-align-btn.is-active{color:var(--bg);background:var(--fg)}.editor-align-btn.is-unavailable{opacity:.4}.editor-align-btn.is-unavailable:hover{color:var(--muted);background:transparent}.editor-align-dropdown{position:relative;flex:none}.editor-align-dropdown-btn{height:28px;display:flex;align-items:center;gap:4px;padding:0 8px;background:transparent;border:1px solid var(--line);color:var(--muted);cursor:pointer}.editor-align-dropdown-btn:hover,.editor-align-dropdown.is-open .editor-align-dropdown-btn{color:var(--fg);background:#ffffff14}.editor-align-dropdown-btn svg:first-child{width:16px;height:16px}.editor-align-dropdown-caret{width:12px;height:12px;transition:transform .15s ease-out}.editor-align-dropdown.is-open .editor-align-dropdown-caret{transform:rotate(180deg)}.editor-align-dropdown-panel{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:20;background:var(--bg);border:1px solid var(--line);padding:10px;width:max-content;box-shadow:0 8px 24px #0006}.editor-align-dropdown.is-open .editor-align-dropdown-panel{display:block}.editor-align-dropdown-label{color:var(--muted);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px}.editor-align-dropdown-row{display:flex;gap:4px}.editor-align-dropdown-row+.editor-align-dropdown-label{margin-top:10px}.editor-anchor-icon .anchor-dot{fill:var(--muted)}.editor-anchor-icon .anchor-dot.is-active{fill:var(--fg)}.editor-anchor-grid{display:grid;grid-template-columns:repeat(3,28px);grid-template-rows:repeat(3,28px);gap:4px}.editor-anchor-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);cursor:pointer}.editor-anchor-btn:hover:not(.is-active){background:#ffffff14;border-color:var(--fg)}.editor-anchor-btn.is-active{background:var(--fg);border-color:var(--fg)}.editor-anchor-dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.editor-anchor-btn:hover:not(.is-active) .editor-anchor-dot{background:var(--fg)}.editor-anchor-btn.is-active .editor-anchor-dot{background:var(--bg)}.editor-anchor-btn[data-anchor=tl]{grid-column:1;grid-row:1}.editor-anchor-btn[data-anchor=tr]{grid-column:3;grid-row:1}.editor-anchor-btn[data-anchor=c]{grid-column:2;grid-row:2}.editor-anchor-btn[data-anchor=bl]{grid-column:1;grid-row:3}.editor-anchor-btn[data-anchor=br]{grid-column:3;grid-row:3}.editor-field{display:flex;align-items:center;gap:5px;flex:none;color:var(--muted)}.editor-field-stack{display:flex;flex-direction:column;gap:4px;flex:none}.editor-field-icon{width:15px;height:15px;flex:none}.editor-field-label{font-size:.8rem;font-family:var(--mono);width:11px;flex:none}.editor-field-unit{font-size:.75rem;letter-spacing:.03em;font-family:var(--mono);flex:none}.editor-checkbox-field{display:flex;align-items:center;gap:6px;flex:none;color:var(--muted);font-size:.68rem;font-family:var(--mono);cursor:pointer}.editor-checkbox-field input[type=checkbox]{width:13px;height:13px;margin:0;accent-color:var(--fg);cursor:pointer}.editor-text-toolbar.mode-shape .editor-mode-text,.editor-text-toolbar.mode-text .editor-mode-shape{display:none!important}#stroke-settings-dropdown{display:none}#stroke-settings-dropdown.is-visible{display:block}#shape-fill-mode-group.is-hidden,#line-style-group.is-hidden,#corner-radius-field.is-hidden{display:none!important}.editor-line-style-btn svg{width:18px;height:12px}.editor-field-label--wide{width:auto}.editor-stroke-align-btn svg{width:15px;height:15px}.editor-shape-type-group{display:flex;gap:4px;flex:none}.editor-shape-type-btn svg{width:15px;height:15px}.editor-finish-btn{height:28px;padding:0 12px;display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:.72rem;white-space:nowrap;cursor:pointer}.editor-finish-btn svg{width:14px;height:14px;flex:none}.editor-finish-btn:hover:not(.is-active){color:var(--fg);background:#ffffff14}.editor-finish-btn.is-active{color:var(--bg);background:var(--fg)}.editor-finish-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.editor-finish-texture-slider{display:none;align-items:center;gap:8px}.editor-finish-texture-slider.is-visible{display:flex}.editor-finish-texture-slider input[type=range]{width:100px;height:16px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.editor-finish-texture-slider input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--bg);border:1px solid var(--fg)}.editor-finish-texture-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;border-radius:50%;background:var(--fg)}.editor-finish-texture-slider input[type=range]::-moz-range-track{height:4px;background:var(--bg);border:1px solid var(--fg)}.editor-finish-texture-slider input[type=range]::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--fg)}.editor-finish-texture-value{width:34px;background:transparent;border:1px solid var(--line);color:var(--fg);font-family:var(--mono);font-size:.72rem;padding:6px 4px;text-align:right}.editor-finish-texture-value::-webkit-outer-spin-button,.editor-finish-texture-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.editor-finish-help{display:flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--muted);font-family:var(--mono);font-size:.72rem;white-space:nowrap;cursor:pointer}.editor-finish-help:hover{color:var(--fg)}.editor-finish-help svg{width:16px;height:16px;flex:none}.editor-finish-help-placeholder{display:flex;align-items:center;justify-content:center;height:140px;margin-bottom:20px;border:1px dashed var(--line);color:var(--muted);font-family:var(--mono);font-size:.72rem}.editor-finish-help-image{display:block;width:100%;height:auto;margin-bottom:20px;border-radius:14px;max-height:calc(100vh - 200px);object-fit:contain}#finish-help-modal .editor-modal{width:900px;max-width:calc(100vw - 32px)}.editor-text-toolbar #text-rotation{width:52px;-moz-appearance:textfield}.editor-text-toolbar #text-pos-x,.editor-text-toolbar #text-pos-y,.editor-text-toolbar #text-size-w,.editor-text-toolbar #text-size-h{width:72px;-moz-appearance:textfield}.editor-text-toolbar #shape-stroke-width,.editor-text-toolbar #shape-corner-radius{-moz-appearance:textfield}.editor-text-toolbar #text-rotation::-webkit-outer-spin-button,.editor-text-toolbar #text-rotation::-webkit-inner-spin-button,.editor-text-toolbar #text-pos-x::-webkit-outer-spin-button,.editor-text-toolbar #text-pos-x::-webkit-inner-spin-button,.editor-text-toolbar #text-pos-y::-webkit-outer-spin-button,.editor-text-toolbar #text-pos-y::-webkit-inner-spin-button,.editor-text-toolbar #text-size-w::-webkit-outer-spin-button,.editor-text-toolbar #text-size-w::-webkit-inner-spin-button,.editor-text-toolbar #text-size-h::-webkit-outer-spin-button,.editor-text-toolbar #text-size-h::-webkit-inner-spin-button,.editor-text-toolbar #shape-stroke-width::-webkit-outer-spin-button,.editor-text-toolbar #shape-stroke-width::-webkit-inner-spin-button,.editor-text-toolbar #shape-corner-radius::-webkit-outer-spin-button,.editor-text-toolbar #shape-corner-radius::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.editor-canvas-scroll{flex:1;min-width:0;min-height:0;overflow:auto;scrollbar-width:none;background-color:#0a0a0a;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px}.editor-canvas-scroll::-webkit-scrollbar{display:none}.editor-canvas-pan-area{width:2400px;height:1600px;display:grid;place-items:center}.editor-canvas-scroll.is-panning,.editor-canvas-scroll.is-panning *{cursor:grabbing}.editor-canvas-frame-sizer{position:relative}.editor-canvas-frame{display:grid;grid-template-columns:34px 16px 774px;grid-template-rows:18px 34px 16px 486px;width:824px;height:554px;position:absolute;top:0;left:0;transform-origin:top left}.safe-zone-label{grid-column:3;grid-row:1;align-self:end;font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#ff3b3b;z-index:1}.ruler-corner{grid-column:1;grid-row:2;border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:1}.ruler-top{grid-column:3;grid-row:2;position:relative;border-bottom:1px solid var(--line);z-index:1}.ruler-left{grid-column:1;grid-row:4;position:relative;border-right:1px solid var(--line);z-index:1}.ruler-tick{position:absolute;background:var(--line)}.ruler-top .ruler-tick{bottom:0;width:1px}.ruler-top .ruler-tick.major{height:10px;background:var(--muted)}.ruler-top .ruler-tick.minor{height:5px}.ruler-left .ruler-tick{right:0;height:1px}.ruler-left .ruler-tick.major{width:12px;background:var(--muted)}.ruler-left .ruler-tick.minor{width:6px}.ruler-label{position:absolute;font-family:var(--mono);font-size:.85rem;letter-spacing:.05em;line-height:1;color:var(--muted)}.ruler-top .ruler-label{top:0;transform:translate(-50%)}.ruler-left .ruler-label{right:16px;width:16px;text-align:right;transform:translateY(-50%)}.editor-canvas-wrap{position:relative;grid-column:3;grid-row:4;width:774px;height:486px}.editor-card{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;outline:1.5px solid var(--line-strong);border-radius:27px}.editor-card-label{position:absolute;bottom:-20px;left:0;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.editor-shape-draw-label{display:none;position:absolute;z-index:10;padding:3px 6px;background:var(--bg);border:1px solid var(--line);color:var(--fg);font-family:var(--mono);font-size:.66rem;white-space:nowrap;pointer-events:none}.editor-shape-draw-label.is-visible{display:block}.editor-safe-zone{position:absolute;inset:9px;pointer-events:none}.editor-safe-zone rect{fill:none;stroke:#ff3b3b;stroke-width:1;stroke-dasharray:20 12}.editor-bottombar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:14px 32px;border-top:1px solid var(--line)}.editor-bottombar .editor-sides{justify-self:start}.editor-bottombar .editor-cardtype-btn{justify-self:center}.editor-bottombar .editor-price-block{justify-self:end}.editor-sides{flex:none;display:flex;align-items:center;gap:14px}.editor-price{font-family:var(--mono);font-size:.78rem;color:var(--fg);white-space:nowrap}.editor-safe-zone-warning{font-family:var(--mono);font-size:.68rem;color:#ff3b3b;white-space:nowrap}.editor-price-qty{color:var(--muted)}.editor-price-block{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.editor-price-help{display:flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--muted);font-family:var(--mono);font-size:.68rem;white-space:nowrap;cursor:pointer}.editor-price-help:hover{color:var(--fg)}.editor-price-help svg{width:14px;height:14px;flex:none}#price-help-modal .editor-modal{width:340px}.editor-cardtype-btn{display:flex;align-items:center;gap:10px;background:transparent;border:1.5px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;transition:border-color .15s,background .15s}.editor-cardtype-btn:hover,.editor-cardtype-btn:focus-visible{border-color:var(--fg);background:#ffffff0a}.editor-cardtype-btn-swatch{width:22px;height:22px;flex:none;border-radius:5px;border:1.5px solid var(--line);background:#3a3a3a}.editor-cardtype-btn-text{display:flex;flex-direction:column;gap:2px;text-align:left}.editor-cardtype-btn-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.editor-cardtype-btn-value{font-family:var(--mono);font-size:.78rem;color:var(--fg);white-space:nowrap}#card-type-modal .editor-modal{width:820px}.editor-cardtype-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;max-height:60vh;overflow-y:auto;scrollbar-width:none}.editor-cardtype-list::-webkit-scrollbar{display:none}.editor-cardtype-row{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;border:1.5px solid var(--line);border-radius:8px;padding:14px}.editor-cardtype-row-options{display:flex;justify-content:center;gap:10px;width:100%}.editor-cardtype-option{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;background:transparent;border:none;padding:0;cursor:pointer}.editor-cardtype-option-preview{width:340px;aspect-ratio:86 / 54;border-radius:12px;border:1.5px solid transparent;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;transition:border-color .15s}.editor-cardtype-option:hover .editor-cardtype-option-preview,.editor-cardtype-option:focus-visible .editor-cardtype-option-preview,.editor-cardtype-option.is-selected .editor-cardtype-option-preview{border-color:var(--fg)}.editor-cardtype-option-preview-canvas{display:block;width:100%;height:100%}.editor-cardtype-option-thickness{font-family:var(--mono);font-size:.62rem;letter-spacing:.02em;color:var(--muted);transition:color .15s}.editor-cardtype-option.is-selected .editor-cardtype-option-thickness,.editor-cardtype-option:hover .editor-cardtype-option-thickness{color:var(--fg)}.editor-cardtype-row-color{font-family:var(--mono);font-size:.85rem;letter-spacing:.02em;color:var(--fg);text-align:center}.editor-cardtype-section-label{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;margin:4px 0 -2px}.editor-cardtype-option.is-disabled{cursor:not-allowed}.editor-cardtype-option.is-disabled:hover .editor-cardtype-option-preview{border-color:transparent}.editor-cardtype-option.is-disabled .editor-cardtype-option-preview-canvas{opacity:.35}.editor-cardtype-option.is-disabled .editor-cardtype-option-thickness{opacity:.5}.editor-cardtype-option-soon{position:absolute;top:0;left:0;right:0;aspect-ratio:86 / 54;display:flex;align-items:center;justify-content:center;pointer-events:none}.editor-cardtype-option-soon span{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--fg);background:#000000b3;border:1px solid var(--line);border-radius:4px;padding:4px 9px}.editor-price-help-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.editor-price-help-list li{font-size:.75rem;line-height:1.5;color:var(--muted);opacity:0;transform:translateY(6px);transition:opacity .16s ease-out,transform .16s ease-out}.editor-price-help-list li strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--fg);margin-bottom:3px}.editor-modal-overlay.is-open .editor-price-help-list li{opacity:1;transform:translateY(0)}.editor-price-help-list li:nth-child(1){transition-delay:.1s}.editor-price-help-list li:nth-child(2){transition-delay:.16s}.editor-price-help-list li:nth-child(3){transition-delay:.22s}#templates-modal .editor-modal{width:760px}.editor-templates-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;max-height:60vh;overflow-y:auto;scrollbar-width:none}.editor-templates-list::-webkit-scrollbar{display:none}.editor-template-card{display:flex;align-items:center;gap:16px;width:100%;background:transparent;border:1.5px solid var(--line);border-radius:8px;padding:14px;cursor:pointer;transition:border-color .15s,background .15s}.editor-template-card:hover,.editor-template-card:focus-visible{border-color:var(--fg);background:#ffffff0a}.editor-template-card-previews{display:flex;gap:10px;flex:none}.editor-template-card-side{display:flex;flex-direction:column;align-items:center;gap:4px}.editor-template-card-preview{display:block;width:190px;aspect-ratio:86 / 54;border-radius:6px;border:1.5px solid var(--line)}.editor-template-card-info{display:flex;flex-direction:column;gap:4px;text-align:left}.editor-template-card-label{font-family:var(--mono);font-size:.85rem;letter-spacing:.02em;color:var(--fg)}.editor-template-card-side-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.editor-side-thumb,.editor-side-add{display:flex;flex-direction:column;align-items:center;gap:6px;background:transparent;border:none;padding:0;cursor:pointer}.editor-side-thumb-card{display:block;width:54px;height:34px;background:#3a3a3a;border:1.5px solid var(--line);border-radius:3px;transition:border-color .15s,background .15s}.editor-side-thumb:hover:not(.is-active) .editor-side-thumb-card{border-color:#ffffff80;background:#444}.editor-side-thumb.is-active .editor-side-thumb-card{border-color:var(--fg)}.editor-side-thumb-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);transition:color .15s}.editor-side-thumb:hover:not(.is-active) .editor-side-thumb-label{color:var(--fg)}.editor-side-thumb.is-active .editor-side-thumb-label{color:var(--fg)}.editor-side-add-box{width:54px;height:34px;display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--line);font-size:.9rem;color:var(--muted);transition:border-color .15s,color .15s}.editor-side-add:hover .editor-side-add-box{border-color:var(--fg);color:var(--fg)}.editor-renderings{width:clamp(320px,24vw,520px);flex:none;border-left:1px solid var(--line);padding:24px 20px;display:flex;flex-direction:column;min-height:0}.editor-renderings h2{font-size:1rem;margin-bottom:8px}.editor-renderings-hint{font-size:.72rem;color:var(--muted);margin-bottom:2px}.editor-renderings-hint:last-of-type{margin-bottom:20px}.editor-renderings-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:0;overflow-y:auto;padding:0 4px}.editor-renderings-canvas{display:block;aspect-ratio:86 / 54;width:100%;max-width:clamp(260px,20vw,440px);flex:none;border-radius:8px;cursor:zoom-in;transition:box-shadow .15s}.editor-renderings-canvas:hover{box-shadow:0 0 0 2px var(--fg)}.editor-render-modal-overlay{z-index:300;flex-direction:column;gap:20px}.editor-render-modal-canvas{display:block;aspect-ratio:86 / 54;width:auto;height:auto;max-width:min(80vw,1200px);max-height:75vh;border-radius:14px;box-shadow:0 24px 64px #0009}.editor-render-modal-close{position:fixed;top:24px;right:32px;width:40px;height:40px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.editor-render-modal-close:hover{border-color:var(--fg)}.editor-context-menu{display:none;position:fixed;z-index:100;min-width:170px;background:var(--bg);border:1px solid var(--line);padding:4px;box-shadow:0 8px 24px #0006;font-family:var(--mono)}.editor-context-menu.is-open{display:block}.editor-context-menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 10px;background:none;border:none;color:var(--fg);font-family:inherit;font-size:.72rem;cursor:pointer}.editor-context-menu-item:hover:not(:disabled){background:#ffffff14}.editor-context-menu-item:disabled{color:var(--muted);cursor:default;opacity:.5}.editor-context-menu-icon{width:14px;height:14px;flex:none}.editor-context-menu-item--danger:hover:not(:disabled){background:#ff505026;color:#ff6b6b}.editor-context-menu-divider{height:1px;background:var(--line);margin:4px 2px}.editor-help-overlay{position:fixed;inset:0;z-index:500;background:#0009;cursor:pointer;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .22s ease-out,visibility 0s linear .22s}.editor-help-overlay.is-open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .22s ease-out}.editor-help-callout{position:fixed;z-index:501;width:240px;background:var(--bg);border:1px solid var(--line);padding:14px 16px;box-shadow:0 12px 32px #0009;font-family:var(--mono);cursor:default;opacity:0;transition:opacity .2s ease-out,transform .2s ease-out}.editor-help-callout h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.editor-help-callout ul{list-style:none;display:flex;flex-direction:column;gap:8px}.editor-help-callout li{font-size:.7rem;line-height:1.5;color:var(--muted)}.editor-help-callout li strong{color:var(--fg)}.editor-help-callout:after{content:"";position:absolute;width:0;height:0;border:8px solid transparent}.editor-help-callout--left{transform:translate(-16px,-50%)}.editor-help-callout--left:after{right:100%;top:50%;transform:translateY(-50%);border-right-color:var(--line)}.editor-help-overlay.is-open .editor-help-callout--left{transform:translateY(-50%);opacity:1;transition-delay:0s}.editor-help-callout--top-right{transform:translate(-50%,-16px)}.editor-help-callout--top-right:after{bottom:100%;left:50%;transform:translate(-50%);border-bottom-color:var(--line)}.editor-help-overlay.is-open .editor-help-callout--top-right{transform:translate(-50%);opacity:1;transition-delay:.06s}.editor-help-callout--bottom{transform:translate(-50%,16px)}.editor-help-callout--bottom:after{top:100%;left:50%;transform:translate(-50%);border-top-color:var(--line)}.editor-help-overlay.is-open .editor-help-callout--bottom{transform:translate(-50%);opacity:1;transition-delay:.12s}.editor-help-callout--cardtype{transform:translate(-50%,16px)}.editor-help-callout--cardtype:after{top:100%;left:50%;transform:translate(-50%);border-top-color:var(--line)}.editor-help-overlay.is-open .editor-help-callout--cardtype{transform:translate(-50%);opacity:1;transition-delay:.15s}.editor-help-callout--price{transform:translateY(16px)}.editor-help-callout--price:after{top:100%;right:20px;border-top-color:var(--line)}.editor-help-overlay.is-open .editor-help-callout--price{transform:translateY(0);opacity:1;transition-delay:.18s}.editor-help-hint{position:fixed;left:50%;top:24px;transform:translate(-50%);font-family:var(--mono);font-size:.72rem;color:var(--muted);z-index:501;opacity:0;transition:opacity .2s ease-out;transition-delay:0s}.editor-help-overlay.is-open .editor-help-hint{opacity:1;transition-delay:.16s}.editor-settings-popup{display:none;position:fixed;z-index:100;width:220px;background:var(--bg);border:1px solid var(--line);padding:10px;box-shadow:0 8px 24px #0006;font-family:var(--mono)}.editor-settings-popup.is-open{display:block}.editor-settings-popup-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.editor-settings-unit-row{display:flex;gap:6px}.editor-settings-unit-btn{flex:1;height:30px;background:transparent;border:1px solid var(--line);color:var(--muted);font-family:inherit;font-size:.75rem;cursor:pointer}.editor-settings-unit-btn:hover:not(.is-active){color:var(--fg);background:#ffffff14}.editor-settings-unit-btn.is-active{color:var(--bg);background:var(--fg);border-color:var(--fg)}.editor-modal-overlay{display:flex;position:fixed;inset:0;z-index:200;background:#00000080;align-items:center;justify-content:center;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s ease-out,visibility 0s linear .2s}.editor-modal-overlay.is-open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .2s ease-out}.editor-modal{background:var(--bg);border:1px solid var(--line);padding:20px;width:220px;box-shadow:0 12px 32px #00000080;font-family:var(--mono);transform:translateY(10px);opacity:0;transition:opacity .18s ease-out,transform .18s ease-out}.editor-modal-overlay.is-open .editor-modal{transform:translateY(0);opacity:1;transition-delay:.03s}.editor-modal-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--fg);margin-bottom:16px}.editor-modal-message{font-size:.78rem;line-height:1.5;color:var(--muted);margin-bottom:20px}#plm-dialog-overlay .editor-modal,.editor-beta-modal{width:300px}.editor-beta-modal .editor-modal-message a{color:var(--fg);text-decoration:none}.editor-beta-modal-footer{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.editor-beta-modal-footer span{font-size:.72rem;font-style:italic;color:var(--muted)}.editor-beta-modal-mark{width:20px;height:20px;object-fit:contain;opacity:.85}.editor-welcome-modal{width:560px;max-width:calc(100vw - 32px)}.editor-welcome-options{display:flex;gap:12px}.editor-welcome-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 16px;background:transparent;border:1.5px solid var(--line);color:var(--fg);font-family:var(--mono);cursor:pointer;transition:background .15s,border-color .15s}.editor-welcome-btn:hover{background:#ffffff14;border-color:var(--fg)}.editor-welcome-btn svg{width:36px;height:36px;flex:none}.editor-welcome-btn-title{font-size:.86rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.editor-welcome-btn-sub{font-size:.7rem;color:var(--muted);text-align:center}@media (max-width: 480px){.editor-welcome-options{flex-direction:column}}#plm-dialog-overlay{z-index:300}.editor-rfq-success-modal{width:320px;text-align:center}.editor-rfq-success-check{width:72px;height:72px;margin:0 auto 18px;animation:rfq-success-pop .45s cubic-bezier(.34,1.56,.64,1) both}.editor-rfq-success-check svg{width:100%;height:100%}.editor-rfq-success-check-circle{stroke:#3ddc71;stroke-dasharray:227;stroke-dashoffset:227;animation:rfq-success-draw .7s ease-out .2s forwards}.editor-rfq-success-check-mark{stroke:#3ddc71;stroke-dasharray:49;stroke-dashoffset:49;animation:rfq-success-draw .45s ease-out .9s forwards}@keyframes rfq-success-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes rfq-success-draw{to{stroke-dashoffset:0}}.editor-rfq-success-modal .editor-modal-title,.editor-rfq-success-modal .editor-modal-message{text-align:center}.editor-rfq-success-actions{display:flex;flex-direction:column;gap:8px}.editor-rfq-success-actions .btn{width:100%}.editor-rfq-success-actions em{display:block;font-style:normal;font-size:.62rem;opacity:.75;margin-top:2px}#plm-dialog-cancel[hidden]{display:none}.editor-modal-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.editor-modal-fields .editor-field{width:100%}.editor-modal-fields .editor-field.is-hidden{display:none}.editor-modal-fields .editor-field-label{width:auto}.editor-modal-fields input[type=number],.editor-modal-fields input[type=text]{flex:1;min-width:0;width:100%;box-sizing:border-box;background:var(--bg);color:var(--fg);border:1px solid var(--line);font-family:var(--mono);font-size:.72rem;padding:6px 8px;-moz-appearance:textfield}.editor-modal-fields input[type=number]::-webkit-outer-spin-button,.editor-modal-fields input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.editor-modal-actions{display:flex;justify-content:flex-end;gap:8px}.editor-modal-message{font-size:.75rem;line-height:1.5;color:var(--muted);margin-bottom:20px}#svg-oversize-modal .editor-modal{width:320px}#svg-oversize-modal .editor-modal-actions{flex-wrap:wrap}#save-as-modal .editor-modal{width:280px}#next-modal .editor-modal{width:1040px;max-height:97vh;overflow-y:auto;padding:14px 20px}.editor-next-modal{position:relative}.editor-next-modal-intro{font-size:.76rem;line-height:1.4;color:var(--muted);max-width:640px;margin:-4px 0 12px}#next-modal .editor-modal-title{margin-bottom:8px}.editor-next-modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;font-size:1.2rem}.editor-next-modal-body{display:flex;gap:32px;align-items:flex-start}.editor-next-modal-renderings{flex:none;width:420px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0}.editor-next-modal-canvas{display:block;width:100%;aspect-ratio:86 / 54;border-radius:8px;box-shadow:0 8px 24px #0006}.editor-next-modal-canvas.is-hidden{display:none}.editor-next-modal-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.editor-next-modal-section{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px 14px}.editor-next-modal-section-label{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.editor-next-modal-cardtype{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.78rem;color:var(--fg)}.editor-next-modal-cardtype-swatch{width:16px;height:16px;flex:none;border-radius:4px;border:1px solid var(--line);background:#3a3a3a}.editor-next-modal-select-field{display:flex;align-items:center;gap:10px}.editor-next-modal-select-field span{font-family:var(--mono);font-size:.78rem;color:var(--fg);flex:none}.editor-next-modal-select-field select{flex:1;min-width:0;box-sizing:border-box;background:var(--bg);color:var(--fg);border:1px solid var(--line);font-family:var(--mono);font-size:.72rem;padding:7px 8px}.editor-next-modal-summary{font-family:var(--mono);font-size:.85rem;color:var(--fg)}.contact-form.editor-next-modal-form{border:1px solid var(--line);border-radius:8px;padding:10px 14px;gap:7px}.editor-next-modal-form label{gap:4px}.editor-next-modal-form input,.editor-next-modal-form textarea{padding:6px 0}.editor-next-modal-form textarea{min-height:44px}.editor-next-modal-form-row{display:flex;gap:12px}.editor-next-modal-form-row label{flex:2;min-width:0}.editor-next-modal-form-row label:nth-child(2){flex:1}.editor-next-modal-form-row label:nth-child(3){flex:1.2}@media (max-width: 900px){.editor-shell{display:none}.editor-mobile-block{display:flex}.editor-modal-overlay,.editor-context-menu,.editor-settings-popup,.editor-help-overlay,.editor-toast{display:none!important}}#survey-modal .editor-modal{width:440px;max-width:92vw;max-height:96vh;overflow-y:auto}#survey-modal .editor-modal-title em{color:var(--muted);font-style:normal;text-transform:none;letter-spacing:0}.contact-form.editor-survey-form{gap:10px;margin-bottom:4px}.editor-survey-form label{gap:4px}.editor-survey-form input,.editor-survey-form textarea{padding:6px 0}.editor-survey-form textarea{min-height:44px}#survey-modal .form-status{margin:8px 0 0;min-height:1em}#survey-modal .editor-modal-actions{margin-top:12px}.editor-survey-rating{display:flex;flex-direction:column;gap:8px}.editor-survey-rating-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.editor-survey-faces{display:flex;justify-content:space-between;gap:6px}.editor-survey-face{flex:1;display:flex;justify-content:center;cursor:pointer;color:var(--muted)}.editor-survey-face input{position:absolute;opacity:0;pointer-events:none}.editor-survey-face svg{width:42px;height:42px;transition:color .15s,transform .15s}.editor-survey-face:hover svg{color:var(--fg);transform:scale(1.08)}.editor-survey-face input:checked+svg{color:var(--fg);transform:scale(1.18)}.editor-survey-face input:focus-visible+svg{outline:1px solid var(--fg);outline-offset:3px;border-radius:50%}
