.li-card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;padding:16px;margin-bottom:16px}.editor-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}@media(max-width:760px){.editor-layout{grid-template-columns:1fr}}.upload-area{border:2px dashed var(--border);border-radius:14px;padding:60px 24px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--card-alt)}.upload-area:hover,.upload-area.drag-over{border-color:var(--primary);background:var(--primary-muted)}.upload-icon{font-size:52px;margin-bottom:12px}.upload-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:6px}.upload-sub{font-size:13px;color:var(--sub)}.ctrl-panel{position:sticky;top:12px;max-height:calc(100vh - 80px);overflow-y:auto}.panel-title{font-size:11px;font-weight:700;color:var(--sub);letter-spacing:.6px;text-transform:uppercase;margin-bottom:7px;margin-top:14px}.panel-title:first-child{margin-top:0}.panel-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mode-grid{display:grid;gap:5px}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-5{grid-template-columns:repeat(5,1fr)}.mode-btn{padding:8px 4px;border-radius:8px;border:1.5px solid var(--border);background:transparent;font-size:12px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .15s;text-align:center;line-height:1.35}.mode-btn small{font-size:10px;font-weight:400;display:block;opacity:.85}.mode-btn:hover{border-color:var(--primary);color:var(--primary)}.mode-btn.active{border-color:var(--primary);background:var(--primary-muted);color:var(--primary)}.bg-row{display:flex;gap:8px;align-items:center}.bg-swatch{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--border);cursor:pointer;padding:0;position:relative;overflow:hidden;transition:border-color .15s}.bg-swatch:hover{border-color:var(--primary)}.bg-swatch.active{border-color:var(--primary);border-width:2.5px}.bg-checker{position:absolute;inset:0;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;background-color:#fff}#bgColorInput{width:32px;height:32px;border:1.5px solid var(--border);border-radius:8px;cursor:pointer;padding:0;background:transparent}.slider-row{display:flex;align-items:center;gap:8px;margin-top:4px}.slider-row input[type=range]{flex:1;accent-color:var(--primary)}.slider-val{font-size:13px;font-weight:700;color:var(--primary);min-width:38px;text-align:right}.btn-primary{width:100%;background:linear-gradient(135deg,var(--primary),var(--primary-end));color:#fff;border:none;border-radius:10px;padding:13px 18px;font-size:15px;font-weight:700;cursor:pointer;transition:filter .15s;margin-top:16px}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:active{filter:brightness(.95)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;filter:none}.btn-ghost{width:100%;background:transparent;color:var(--sub);border:1.5px solid var(--border);border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;margin-top:8px}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.li-mini-btn{background:transparent;border:1.5px solid var(--border);color:var(--primary);font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px;cursor:pointer;transition:all .15s}.li-mini-btn:hover{background:var(--primary-muted);border-color:var(--primary)}.smart-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:6px 0}.smart-toggle input[type=checkbox]{display:none}.smart-track{width:36px;height:20px;border-radius:10px;background:var(--border);position:relative;flex-shrink:0;transition:background .15s;margin-top:2px}.smart-knob{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}.smart-toggle input:checked~.smart-track{background:var(--primary)}.smart-toggle input:checked~.smart-track .smart-knob{transform:translate(16px)}.smart-text{display:flex;flex-direction:column;gap:2px;min-width:0}.smart-title{font-size:13px;font-weight:600;color:var(--text)}.smart-sub{font-size:11px;color:var(--sub);line-height:1.35}.smart-toggle.disabled{opacity:.5;cursor:not-allowed}.smart-toggle.disabled .smart-track{background:var(--border)!important}.thumb-list{display:flex;flex-direction:column;gap:6px}.thumb-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;background:var(--card-alt);cursor:grab;transition:background .15s,opacity .15s}.thumb-item.dragging{opacity:.4;cursor:grabbing}.thumb-item.drag-over-top{box-shadow:inset 0 2px 0 var(--primary)}.thumb-item.drag-over-bottom{box-shadow:inset 0 -2px 0 var(--primary)}.thumb-handle{color:var(--sub);font-size:16px;cursor:grab;user-select:none;padding:0 2px}.thumb-img{width:48px;height:48px;flex-shrink:0;border-radius:6px;background:var(--card);object-fit:cover}.thumb-meta{flex:1;min-width:0;font-size:12px;color:var(--text)}.thumb-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thumb-size{color:var(--sub);font-size:11px}.thumb-del{background:transparent;border:none;cursor:pointer;color:var(--sub);font-size:18px;padding:4px 8px;border-radius:6px;transition:all .15s}.thumb-del:hover{color:#e53e3e;background:#e53e3e14}.preview-card{padding:12px}.preview-info{font-size:12px;color:var(--sub);margin-bottom:10px;padding:0 4px;display:flex;justify-content:space-between}.preview-info .info-strong{color:var(--text);font-weight:700}.preview-wrap{background:var(--card-alt);border-radius:10px;overflow:auto;max-height:600px;text-align:center;padding:12px}#previewCanvas{margin:0 auto}#previewCanvas{display:block;max-width:100%;height:auto;border-radius:4px}@media(max-width:600px){input,textarea,select{font-size:16px!important}.btn-primary{min-height:52px}.ctrl-panel{position:static;max-height:none}.preview-wrap{max-height:400px}}
