.dfvn-wrap{max-width:1200px;margin:30px auto;display:grid;grid-template-columns:360px minmax(0,1fr);gap:30px;font-family:inherit}
.dfvn-panel,.dfvn-result{background:#fff;border:1px solid #ddd;border-radius:4px;padding:24px;box-sizing:border-box}
.dfvn-panel h3{margin-top:0}.dfvn-upload-area{border:2px dashed #bbb;border-radius:4px;padding:30px 15px;text-align:center;cursor:pointer;position:relative;transition:.2s ease}
.dfvn-upload-area:hover,.dfvn-upload-area.dfvn-drag{border-color:#222;background:#fafafa}.dfvn-upload-area strong,.dfvn-upload-area span{display:block}.dfvn-upload-area span{font-size:13px;margin-top:7px;opacity:.7}
.dfvn-native-file{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}.dfvn-select-files{margin-top:14px!important;border:1px solid #222!important;border-radius:4px!important;background:#111!important;color:#fff!important;padding:9px 14px!important;cursor:pointer!important;font-weight:600!important}.dfvn-file-list{margin-top:15px}.dfvn-file{display:grid;grid-template-columns:minmax(0,1fr) 72px 68px 25px;align-items:center;gap:8px;border-bottom:1px solid #eee;padding:8px 0;font-size:13px}
.dfvn-file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dfvn-file-size{opacity:.6;text-align:right}.dfvn-qty-wrap{display:flex;align-items:center;gap:4px}.dfvn-qty-label{font-size:11px;opacity:.65}.dfvn-qty{width:50px!important;min-width:50px!important;height:32px!important;padding:4px 6px!important;border:1px solid #ccc!important;border-radius:4px!important}
.dfvn-remove{border:none!important;background:none!important;padding:0!important;cursor:pointer;font-size:18px}.dfvn-settings{display:grid;gap:13px;margin-top:25px}.dfvn-field label{display:block;font-weight:600;font-size:13px;margin-bottom:5px}.dfvn-input-unit{display:flex;align-items:center}
.dfvn-input-unit input{width:100%;height:42px;border:1px solid #ccc;border-radius:4px 0 0 4px!important;padding:7px 10px;box-sizing:border-box}.dfvn-input-unit span{height:42px;display:flex;align-items:center;padding:0 12px;background:#eee;border:1px solid #ccc;border-left:0;border-radius:0 4px 4px 0}.dfvn-checkbox-field{margin-top:5px}.dfvn-checkbox-field label{display:flex;align-items:center;gap:8px}
.dfvn-actions{display:grid;gap:8px;margin-top:25px}.dfvn-actions button{width:100%;border:1px solid #222;border-radius:4px;padding:11px 15px;cursor:pointer;background:#fff;font-weight:600}.dfvn-actions button.dfvn-primary{background:#111;color:#fff}.dfvn-actions button:disabled{opacity:.4;cursor:default}#dfvn-message{margin-top:15px;font-size:13px}.dfvn-error{color:#b90000}.dfvn-success{color:#187b32}
.dfvn-result-header{display:flex;justify-content:space-between;margin-bottom:15px;font-size:13px}.dfvn-preview-wrap{width:100%;overflow:auto;background:#eee;min-height:400px;display:flex;align-items:center;justify-content:center}#dfvn-preview{width:100%;max-height:720px;background:#fff}#dfvn-preview .dfvn-sheet{fill:#fff;stroke:#222;stroke-width:2;vector-effect:non-scaling-stroke}#dfvn-preview .dfvn-boundary{fill:none;stroke:#aaa;stroke-dasharray:8 8;stroke-width:1;vector-effect:non-scaling-stroke}#dfvn-preview .dfvn-object *{vector-effect:non-scaling-stroke}
@media(max-width:800px){.dfvn-wrap{grid-template-columns:1fr}.dfvn-file{grid-template-columns:minmax(0,1fr) 62px 62px 25px}}

/* Multi-sheet preview */
.dfvn-preview-wrap{display:block!important;padding:16px;box-sizing:border-box;min-height:400px}
.dfvn-previews{display:grid;gap:22px;width:100%}
.dfvn-sheet-card{background:#fff;border:1px solid #d8d8d8;border-radius:4px;padding:12px;box-sizing:border-box}
.dfvn-sheet-title{font-size:13px;font-weight:600;margin:0 0 9px}
.dfvn-preview{display:block;width:100%;height:auto;max-height:720px;background:#fff}
.dfvn-preview .dfvn-sheet{fill:#fff;stroke:#222;stroke-width:2;vector-effect:non-scaling-stroke}
.dfvn-preview .dfvn-boundary{fill:none;stroke:#aaa;stroke-dasharray:8 8;stroke-width:1;vector-effect:non-scaling-stroke}
.dfvn-preview .dfvn-object *{vector-effect:non-scaling-stroke}
.dfvn-help{display:block;margin-top:6px;font-size:12px;line-height:1.4;opacity:.65;}

.dfvn-mirror-wrap{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.dfvn-mirror-wrap input{margin:0}
