.barcode-preview{max-width:600px;margin:20px auto}
.tool-dropzone{border:2px dashed #dee2e6;border-radius:10px;padding:18px 16px;background:#f8f9fa;cursor:pointer;transition:none;position:relative;min-height:260px;overflow:hidden}
.tool-dropzone.has-files{padding:0;border-style:dashed}
.tool-dropzone.is-dragover{background:#e7f1ff;border-color:#0d6efd}
.tool-dropzone__inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.tool-dropzone__title{font-weight:600;color:#343a40;font-size:0.95rem}
.tool-dropzone__sub{margin-top:6px;color:#6c757d;font-size:0.8rem}
.file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.file-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dee2e6;border-radius:10px;background:#fff}
#previewArea.file-list{position:absolute;inset:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;overflow:auto;width:100%;height:100%;padding:6px 12px 12px;margin:0;border:0;border-radius:0;background:transparent}
#previewArea .file-item{position:relative;justify-content:center;gap:6px;padding:8px 10px;border-radius:8px;border:1px solid #e9ecef;box-shadow:0 1px 0 rgba(16,24,40,0.02)}
#previewArea .file-item__name{font-size:0.82rem;text-align:center;max-width:100%}
#previewArea .file-item [data-role="badge"]{position:absolute;top:6px;left:6px;font-size:0.65rem;padding:2px 6px}
#previewArea .file-item__remove{position:absolute;top:6px;right:6px;width:22px;height:22px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;opacity:1}
.file-item__name{flex:1;min-width:0;color:#495057;font-size:0.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-item__remove{flex:0 0 auto}
.bar-item{position:relative;padding:15px;border:1px solid #dee2e6;border-radius:4px;background:#fff;height:100%}
.bar-item .flex-grow-1{min-width:0}
.bar-item img{width:80px !important;height:80px !important;object-fit:contain}
.bar-item img.img-fluid{display:block;margin:0 auto}
.bar-item p{display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.25;max-height:2.5em}
.bar-item .gen-index{position:absolute;top:8px;left:8px;min-width:22px;height:22px;line-height:22px;padding:0 6px;border-radius:999px;background:rgba(25,135,84,.9);color:#fff;font-size:12px;font-weight:600;text-align:center;z-index:2}
.param-panel{border:1px solid #dee2e6;border-radius:4px;margin-bottom:1rem}
.param-header{padding:12px 15px;background:#f8f9fa;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-radius:4px;transition:all 0.2s ease}
.param-header:hover{background:#e9ecef}
.param-header h6{margin:0;font-weight:500;color:#444}
.param-header .bi{transition:transform 0.2s ease}
.param-header.collapsed .bi{transform:rotate(-90deg)}
.param-body{padding:15px;border-top:1px solid #dee2e6}
.param-body .form-text{font-size:0.875rem;color:#6c757d}
@media (max-width: 768px){.param-header{padding:10px 12px}.param-body{padding:12px}}
