body.modal-layer-open,html.modal-layer-open{overflow:hidden;width:100%}.acc-input.no-spin::-webkit-inner-spin-button,.acc-input.no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.acc-input.no-spin{-moz-appearance:textfield}.nudge-box{display:flex;flex-direction:column;gap:2px;margin-left:6px}.nudge-btn{width:18px;height:12px;line-height:12px;text-align:center;border:1px solid #d1d5db;border-radius:3px;background:#fff;cursor:pointer;user-select:none}.nudge-btn:active{background:#f3f4f6}.dim-backdrop{position:fixed;inset:0;z-index:2147483647;width:100dvw;height:100dvh;background:rgba(0,0,0,.45);display:grid;place-items:center;overflow:hidden;padding:16px}.dim-modal{--side-w:130px;width:1700px;height:940px;background:#fff;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.22);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:20px;box-sizing:border-box;overscroll-behavior:contain;display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:20px;overflow:hidden;max-width:calc(100dvw - 32px);max-height:calc(100dvh - 32px);z-index:1}.dim-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #eef2ff;display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;padding:6px 4px 10px;margin:0}.dim-header-left{display:flex;flex-direction:column}.dim-header-title{font-size:1.05rem;font-weight:800;letter-spacing:-.01em;color:#0b1021}.dim-header-sub{font-size:.92rem;color:#6b7280;margin-top:2px}.dim-header-right{display:flex;gap:8px;align-items:center;margin-left:8px}.chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:.8rem;color:#334155;background:#f1f5ff;border:1px solid #e6ecff}.dim-content{grid-row:2/3;min-height:0;height:100%;overflow:hidden;display:grid;grid-template-columns:var(--side-w) 1fr var(--side-w);gap:20px}.dim-leftmenu{gap:18px;padding:6px 2px 12px;margin:0 0 10px;border-bottom:0}.dim-leftmenu,.lm-item{display:flex;flex-direction:column;align-items:center}.lm-item{gap:6px;width:100%;background:transparent;border:0;cursor:pointer;color:#4b5563;font-weight:700}.lm-item:hover{color:#1f2937}.lm-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;border:1.5px solid #cfd8ff;background:#fff}.lm-ico svg{width:20px;height:20px}.lm-label{font-size:.92rem;letter-spacing:-.01em}.dim-left.dim-sidebar{position:relative;z-index:2;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;border:1px solid #e6ecff;border-radius:12px;padding:12px;background:#fafbff;min-height:0;max-height:100%;width:var(--side-w);flex:0 0 var(--side-w);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable}.tool-group{display:flex;flex-direction:column;gap:8px}.tool-btn{padding:10px 12px;border-radius:10px;border:1px solid #e6ecff;background:#fff;cursor:pointer;font-weight:600;text-align:left;text-wrap:nowrap}.tool-btn.active{background:#3b5bcc;color:#fff;border-color:#3b5bcc}.dim-right.dim-sidebar{position:relative;z-index:2;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;border:1px solid #e6ecff;border-radius:12px;padding:12px;background:#fafbff;min-height:0;max-height:100%;width:var(--side-w);flex:0 0 var(--side-w);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable}.accordion{display:none}.accordion.open{display:block;border:1px solid #e6ecff;border-radius:10px;background:#fff;padding:10px}.acc-section{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.acc-title{font-weight:700;color:#374151;font-size:.92rem}.acc-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.acc-input{flex:1 1 auto;height:34px;border:1px solid #e6ecff;background:#fff}.acc-add,.acc-input{padding:8px 10px;border-radius:8px}.acc-add{border:1px solid #e6ecff;background:#f8fbff;cursor:pointer}.acc-note{font-size:.85rem;color:#6b7280}.row-label{width:86px;font-size:.9rem;color:#374151}.unit{font-size:.85rem;color:#6b7280}.lm-item.disabled{opacity:.45;pointer-events:none;cursor:default}.dim-main{position:relative;display:flex;flex-direction:column;min-height:0;overflow:hidden;overscroll-behavior:contain}.dim-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:52px}.dim-field{display:inline-flex;align-items:center;gap:8px}.dim-field-label{font-size:.9rem;color:#374151;font-weight:600;letter-spacing:-.01em}.dim-input{width:90px;height:36px;padding:8px 10px;border:1px solid #e6ecff;border-radius:8px;background:#fff}.dim-notice{margin-left:auto;padding:8px 12px;border:1px dashed #ef4444;border-radius:8px;background:#fff7f7;color:#b91c1c;font-size:12px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dim-guide{flex:1 1 auto;border:1px solid #e6ecff;border-radius:12px;background:#fafbff;overflow:hidden}.dim-guide,.editor-wrap{position:relative;min-height:0}.editor-wrap{width:100%;height:100%;display:block}.editor-wrap>canvas,.svg-grid-wrap,.svg-test-wrap{position:absolute;inset:0}.svg-grid-wrap{z-index:0}.svg-test-wrap{z-index:1}.editor-wrap>canvas{z-index:2;background:transparent;border:0;touch-action:none;user-select:none;-webkit-user-select:none}.dim-text-editor{position:absolute;z-index:20;padding:0;border:none;background:transparent;box-shadow:none;font:inherit;color:inherit;resize:none}.dim-text-editor:focus{outline:none}.dim-zoom{gap:8px;padding:6px 10px;border-top:1px solid #eef0f2;background:#fff}.dim-zoom,.dim-zoom .dz-left{display:flex;align-items:center}.dim-zoom .dz-left{gap:6px;min-width:220px;margin-right:auto}.dim-zoom .dz-left .dz-label{display:none}.dim-zoom .dz-left .dz-perc{min-width:40px;text-align:right;color:#6b7280}.dim-zoom .dz-center{display:flex;justify-content:center;flex:0 0 auto}.dim-zoom .dz-right{margin-left:auto;display:flex;gap:6px;align-items:center}.dim-side-toggle{display:inline-flex;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.02);background:#fff}.dim-side-toggle>button{padding:6px 14px;font-size:12px;line-height:1;background:#fff;border:0;cursor:pointer;color:#374151;transition:background .12s ease,color .12s ease}.dim-mini-previews{display:flex;align-items:center;gap:12px}.dim-mini-previews .mini{display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:0;cursor:pointer}.dim-mini-previews .mini .thumb{width:75px;height:45px;border-radius:10px;background:#e5e7eb;box-shadow:inset 0 0 0 1px #d1d5db;overflow:hidden}.dim-mini-previews .mini .thumb img{width:100%;height:100%;object-fit:cover;display:block}.dim-mini-previews .mini .thumb .ph{width:100%;height:100%;background:linear-gradient(135deg,#eee,#ddd)}.dim-mini-previews .mini .label{font-size:11px;color:#374151}.dim-mini-previews .mini.on .thumb{box-shadow:inset 0 0 0 2px #111827}.dim-mini-previews .mini.on .label{font-weight:700;color:#111827}.dim-side-toggle>button+button{border-left:1px solid #e5e7eb}.dim-side-toggle>button.on{background:#111827;color:#fff;font-weight:700}.dim-side-toggle>button:not(.on):hover{background:#f3f4f6}.dim-actions{display:flex;gap:8px;justify-content:flex-end}.dim-btn{padding:10px 14px;border-radius:10px;border:1px solid #e6ecff;background:#f8fbff;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.dim-btn.primary{background:#3b5bcc;color:#fff;border-color:#3b5bcc;text-wrap:nowrap}.dim-btn.ghost{background:#fff;text-wrap:nowrap}.dim-btn.success{text-wrap:nowrap;white-space:nowrap}.dim-x{position:absolute;right:12px;top:8px;border:none;background:transparent;font-size:22px;cursor:pointer}.group-title{font-weight:700;margin-bottom:8px;color:#0b1021}.acc-box{width:100%;box-sizing:border-box;overflow:hidden;border:1px solid #e6ecff;border-radius:10px;background:#fff;padding:10px 12px}.acc-box-title{font-weight:700;margin-bottom:8px}.acc-box-title,.switch{font-size:.9rem;color:#374151}.switch{display:flex;align-items:center;gap:6px}.switch span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acc-row.switches{display:flex!important;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px;width:100%;min-width:0}.acc-row.switches .switch{display:inline-flex;align-items:center;gap:8px;flex:0 1 auto;min-width:0;max-width:100%}.acc-box-title,.group-title,.row-label{white-space:nowrap!important;word-break:keep-all!important;overflow:hidden;text-overflow:ellipsis}.shape-popover{position:fixed!important;z-index:999999999;will-change:top,left;min-width:220px;max-width:300px;max-height:min(65vh,720px);padding:10px 12px;background:#fff;border:1px solid #dbe4ff;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.14);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.shape-title{font-weight:800;color:#0b1021;margin-bottom:8px;font-size:.95rem}.shape-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shape-popover .shape-btn{display:grid;grid-template-columns:28px 1fr;align-items:center;column-gap:10px;min-height:44px;padding:10px 12px;border:1px solid #e6ecff;border-radius:10px;background:#f8fbff;color:#334155;font-weight:700;text-align:left;cursor:pointer}.shape-popover .shape-btn:hover{background:#eef4ff;border-color:#cfe0ff}.shape-popover .shape-btn .ico{width:28px;height:28px;display:grid;place-items:center}.shape-popover .shape-btn .ico svg{width:20px;height:20px}.shape-popover .shape-btn .txt{line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-wrap canvas{touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}.layer-popover{width:240px;max-height:260px;overflow:auto}.layer-toolbar{display:flex;gap:6px;margin:6px 0 8px}.layer-toolbar .small{padding:4px 6px;font-size:12px}.layer-toolbar .danger{color:#b91c1c;border-color:#fecaca}.layer-list{list-style:none;margin:0;padding:0}.layer-item{display:grid;grid-template-columns:14px 18px 1fr 78px;align-items:center;gap:8px;padding:6px 8px;margin-bottom:6px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.layer-item.is-active{background:#eef3ff;border-color:#cfe0ff}.layer-item.is-hidden .layer-name-text{opacity:.55}.layer-item.is-locked .layer-name-text{opacity:.8}.layer-handle{width:14px;height:14px;cursor:grab;border-radius:2px;opacity:.7;background:radial-gradient(currentColor 1px,transparent 2px) 0 0/4px 4px,radial-gradient(currentColor 1px,transparent 2px) 2px 2px/4px 4px;color:#94a3b8}.layer-check{width:16px;height:16px;cursor:pointer}.layer-name{min-width:0}.layer-name-input{width:100%;font-size:12px}.layer-name-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.layer-actions{display:flex;gap:6px;justify-content:flex-end}.btn-icon{font-size:12px;padding:2px 6px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer}.btn-icon.off{opacity:.75}.btn-icon.on{color:#0f172a;border-color:#cbd5e1}.btn-icon.danger{color:#b91c1c;border-color:#fecaca}.lm-item.tool-active-blue{position:relative;border-radius:12px;box-shadow:0 0 0 2px #c7d2fe,0 12px 28px rgba(59,130,246,.18);background:#fff}.lm-item.tool-active-blue:before{content:"";position:absolute;inset:-8px;border-radius:16px;background:radial-gradient(60% 60% at 50% 50%,rgba(59,130,246,.25),rgba(59,130,246,0) 70%);filter:blur(10px);z-index:-1;pointer-events:none}.bg-move-btn.active{position:relative;border-radius:12px;box-shadow:0 0 0 2px #c7d2fe,0 12px 28px rgba(59,130,246,.18);background:#fff;color:#2154ee;border-color:#2154ee!important}.bg-move-btn.active:before{content:"";position:absolute;inset:-8px;border-radius:16px;background:radial-gradient(60% 60% at 50% 50%,rgba(59,130,246,.25),rgba(59,130,246,0) 70%);filter:blur(10px);z-index:-1;pointer-events:none}.shape-popover .bg-remove-btn{padding:8px 12px;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#b91c1c;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .06s}.shape-popover .bg-remove-btn:hover{background:#fff5f5;border-color:#fca5a5}.shape-popover .bg-remove-btn:active{transform:translateY(1px)}.shape-popover .bg-remove-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #fee2e2,inset 0 0 0 1px #fca5a5}.dim-content>*{min-width:0;min-height:0}.dim-guide .editor-wrap .ruler-corner{position:absolute;top:0;left:0;width:22px;height:22px;background:#f8fafc;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;pointer-events:none;z-index:3}.dim-guide .editor-wrap .ruler-h{position:absolute;top:0;left:22px;right:0;height:22px;pointer-events:none;z-index:3}.dim-guide .editor-wrap .ruler-v{position:absolute;top:22px;left:0;bottom:0;width:22px;pointer-events:none;z-index:3}@media (min-width:2500px){.dim-modal{width:2300px}}@media (max-width:1440px){.dim-modal{width:1350px;height:740px;gap:16px}.dim-content{grid-template-columns:var(--side-w) 1fr var(--side-w);gap:16px;overflow:hidden}.lm-label{display:block!important;font-size:.75rem;line-height:1.1;letter-spacing:-.01em;max-width:100%;white-space:wrap;overflow:hidden;text-overflow:ellipsis}.switch{font-size:.85rem}.dim-zoom .dz-left .dz-label{display:none}.dim-side-toggle>button{padding:6px 10px;font-size:11px}.dim-mini-previews .mini .thumb{width:55px;height:35px;border-radius:10px}.dim-mini-previews .mini .label{font-size:11px}}