.tool-page.sd-page-root{max-width:1440px}.sd-steps{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.sd-steps li{color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:7px 14px 7px 8px;font-size:13px;font-weight:600;display:flex}.sd-steps li b{background:var(--bg-2);width:22px;height:22px;color:var(--text-2);border-radius:50%;place-items:center;font-size:12px;display:grid}.sd-steps li.cur{color:var(--primary);border-color:var(--primary-mid);background:var(--primary-light)}.sd-steps li.cur b{background:var(--primary);color:#fff}.sd-steps li.done{color:var(--success)}.sd-steps li.done b{background:var(--success);color:#fff}.sd-alert{border-radius:var(--radius);color:var(--danger);background:#fef2f2;margin-bottom:12px;padding:12px 16px;font-size:14px;font-weight:600}.sd-busy{z-index:120;background:var(--text-1);color:#fff;box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:10px;padding:11px 18px;font-size:13px;font-weight:600;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.sd-busy i{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite sd-spin}@keyframes sd-spin{to{transform:rotate(360deg)}}.sd-drop{text-align:center;border:2px dashed var(--primary-mid);background:linear-gradient(180deg, var(--surface), var(--primary-light));cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:280px;transition:border-color .15s,transform .15s;display:flex}.sd-drop.over,.sd-drop:hover{border-color:var(--primary)}.sd-drop.over{transform:scale(1.01)}.sd-drop input{display:none}.sd-drop-icon{font-size:42px}.sd-drop b{color:var(--text-1);font-size:18px}.sd-drop span{color:var(--text-2);font-size:14px}.sd-drop small{color:var(--success);margin-top:6px;font-size:12.5px;font-weight:600}.sd-preview-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.sd-preview-head>div:first-child{flex-direction:column;gap:3px;min-width:0;display:flex}.sd-preview-head b{color:var(--text-1);word-break:break-all;font-size:16px}.sd-preview-head span{color:var(--text-2);font-size:13px}.sd-note{color:var(--text-2);background:var(--bg);border-radius:var(--radius-sm);margin:0 0 12px;padding:8px 12px;font-size:13px}.sd-thumbs-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.sd-thumbs-grid.large{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.sd-thumb{border:1px solid var(--border-2);cursor:default;box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;padding:0;position:relative;overflow:hidden}.sd-thumb canvas{display:block;width:100%!important;height:auto!important}.sd-thumb span{color:#fff;background:#0f0e2ab3;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700;position:absolute;bottom:6px;right:6px}.sd-inline-btns{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sd-inline-btns a.btn{text-decoration:none}.sd-workspace{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}.sd-side{flex-direction:column;gap:18px;max-height:calc(100vh - 96px);margin:0;padding:16px;display:flex;position:sticky;top:80px;overflow-y:auto}.sd-side h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-2);margin:0 0 10px;font-size:13px;font-weight:800}.sd-hint{color:var(--text-3);margin:8px 0 0;font-size:12px;line-height:1.5}.sd-full{justify-content:center;width:100%}.sd-tpls{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.sd-tpl{align-items:center;gap:6px;display:flex}.sd-tpl-main{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-sm);cursor:grab;flex:1;justify-content:center;align-items:center;min-height:58px;padding:6px;transition:border-color .15s,box-shadow .15s;display:flex}.sd-tpl-main:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.sd-x{color:var(--text-3);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:22px;line-height:1}.sd-x:hover{color:var(--danger)}.sd-x.sm{font-size:18px}.sd-field-name{color:var(--text-2);flex-direction:column;gap:5px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.sd-fields{grid-template-columns:1fr 1fr;gap:6px;display:grid}.sd-fields button{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--surface);color:var(--text-1);cursor:pointer;padding:9px 8px;font-family:inherit;font-size:13px;font-weight:600}.sd-fields button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.sd-input{width:100%;color:var(--text-1);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-sm);outline:none;padding:8px 10px;font-family:inherit;font-size:13.5px}.sd-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.sd-input.sm{width:auto;padding:6px 8px;font-size:12.5px}.sd-props{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.sd-props label{color:var(--text-2);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.sd-props .sd-range{flex-direction:row;align-items:center}.sd-prop-row{color:var(--text-2);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.sd-prop-btns{flex-wrap:wrap;gap:6px;display:flex}.sd-toggles{gap:6px;display:flex}.sd-toggles button{border:1px solid var(--border-2);background:var(--surface);cursor:pointer;border-radius:6px;width:36px;height:32px;font-size:14px}.sd-toggles button.on{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.sd-swatches{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sd-swatches>button{width:24px;height:24px;box-shadow:0 0 0 1px var(--border-2);cursor:pointer;border:2px solid #fff;border-radius:50%;padding:0}.sd-swatches>button.on{box-shadow:0 0 0 2px var(--primary)}.sd-swatch-custom{cursor:pointer;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:50%;width:26px;height:26px;display:inline-block;position:relative;overflow:hidden}.sd-swatch-custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.sd-range{color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.sd-range input{accent-color:var(--primary);flex:1;min-width:80px}.sd-range b{text-align:right;min-width:30px;color:var(--text-1)}.sd-check{color:var(--text-2);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.sd-check input{accent-color:var(--primary)}.sd-main{flex-direction:column;gap:12px;min-width:0;display:flex}.sd-toolbar{z-index:30;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:10px 14px;display:flex;position:sticky;top:72px}.sd-zoom span{color:var(--text-2);text-align:center;min-width:44px;font-size:13px;font-weight:700}.sd-count{color:var(--text-2);font-size:12.5px}.sd-viewer{border-radius:var(--radius-lg);overscroll-behavior:contain;background:#e9ecf4;flex-direction:column;align-items:center;gap:18px;height:calc(100vh - 170px);min-height:520px;padding:20px;display:flex;overflow:auto}.sd-page-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.sd-page{touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;position:relative;box-shadow:0 4px 18px #0f0e2a24}.sd-page.placing{cursor:crosshair}.sd-page-canvas{display:block;position:absolute;inset:0}.sd-page-loading{color:var(--text-3);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.sd-page-no{color:var(--text-2);font-size:12px;font-weight:600}.sd-item{cursor:move;touch-action:none;outline:1px dashed #0000;position:absolute}.sd-item:hover{outline-color:#5b4fe899}.sd-item.sel{outline:2px solid var(--primary);background:#5b4fe80d}.sd-item:focus-visible{outline:2px solid var(--primary)}.sd-item-canvas{pointer-events:none;width:100%;height:100%;display:block}.sd-handle{border:2px solid var(--primary);touch-action:none;background:#fff;border-radius:50%;width:14px;height:14px;position:absolute}.sd-handle.nw{cursor:nwse-resize;top:-8px;left:-8px}.sd-handle.ne{cursor:nesw-resize;top:-8px;right:-8px}.sd-handle.sw{cursor:nesw-resize;bottom:-8px;left:-8px}.sd-handle.se{cursor:nwse-resize;bottom:-8px;right:-8px}.sd-modal-backdrop{z-index:200;background:#0f0e2a8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.sd-modal{background:var(--surface);border-radius:var(--radius-lg);width:min(720px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);padding:20px;overflow-y:auto}.sd-modal-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sd-modal-head h3{margin:0;font-size:18px;font-weight:800}.sd-tabs{background:var(--bg-2);border-radius:var(--radius-sm);gap:4px;margin-bottom:14px;padding:4px;display:flex}.sd-tabs button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:9px;font-family:inherit;font-size:13.5px;font-weight:700}.sd-tabs button.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.sd-tab{flex-direction:column;gap:12px;display:flex}.sd-pad{border:1px solid var(--border-2);border-radius:var(--radius);background:#fff;position:relative;overflow:hidden}.sd-pad canvas{touch-action:none;cursor:crosshair;display:block}.sd-pad-hint{color:var(--text-3);pointer-events:none;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.sd-pad-line{pointer-events:none;border-bottom:1px dashed #cbd5e1;position:absolute;bottom:52px;left:8%;right:8%}.sd-controls{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.sd-controls .sd-range{flex:1;min-width:200px}.sd-name-input{padding:11px 12px;font-size:16px}.sd-fonts{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;max-height:250px;padding:2px;display:grid;overflow-y:auto}.sd-fonts button{border:1px solid var(--border-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;text-align:left;background:#fff;padding:10px 12px;font-size:26px;line-height:1.3;overflow:hidden}.sd-fonts button.on{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.sd-preview-box{border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:6px;padding:12px;display:flex}.sd-preview-box>span{text-transform:uppercase;color:var(--text-3);letter-spacing:.5px;font-size:11px;font-weight:700}.sd-preview-box img{max-width:100%;max-height:160px}.sd-preview-box.checker{background-color:#fff;background-image:linear-gradient(45deg,#eef0f6 25%,#0000 25%),linear-gradient(-45deg,#eef0f6 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eef0f6 75%),linear-gradient(-45deg,#0000 75%,#eef0f6 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.sd-upload-drop{border:2px dashed var(--primary-mid);border-radius:var(--radius);cursor:pointer;text-align:center;background:var(--primary-light);flex-direction:column;align-items:center;gap:4px;padding:26px;display:flex}.sd-upload-drop input{display:none}.sd-upload-drop span{color:var(--primary);font-weight:700}.sd-upload-drop small{color:var(--text-2);font-size:12px}.sd-error{color:var(--danger);margin:0;font-size:13px}.sd-modal-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:flex}.sd-toast{z-index:110;background:var(--success);color:#fff;box-shadow:var(--shadow-lg);border-radius:999px;padding:10px 18px;font-size:13px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=980px){.sd-workspace{grid-template-columns:minmax(0,1fr)}.sd-side{max-height:none;position:static}.sd-viewer{height:75vh;padding:10px}.sd-toolbar{top:60px}}@media (width<=600px){.sd-thumbs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sd-thumbs-grid.large{grid-template-columns:minmax(0,1fr)}.sd-modal{padding:14px}.sd-fonts{grid-template-columns:minmax(0,1fr)}.sd-handle{width:20px;height:20px}.sd-handle.nw{top:-11px;left:-11px}.sd-handle.ne{top:-11px;right:-11px}.sd-handle.sw{bottom:-11px;left:-11px}.sd-handle.se{bottom:-11px;right:-11px}}
