.fdf-wrap{--fdf-border:var(--border,#e5e7eb);--fdf-bg:var(--surface,#fff);--fdf-bg-muted:var(--surface-muted,#f9fafb);--fdf-text:var(--text-main,#111827);--fdf-muted:var(--text-muted,#6b7280);--fdf-primary:var(--primary,#2563eb);--fdf-success:var(--success,#22c55e);--fdf-danger:var(--danger,#ef4444);margin:0 auto;}
.fdf-drop{border:2px dashed var(--fdf-border);border-radius:16px;padding:clamp(1.5rem,4vw,2.5rem);text-align:center;background:var(--fdf-bg-muted);cursor:pointer;transition:border-color .2s,background .2s;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.fdf-drop:hover{border-color:var(--fdf-primary);background:var(--fdf-bg);}
.fdf-drop.fdf-dragover{border-color:var(--fdf-primary);background:var(--fdf-bg);box-shadow:0 0 0 4px rgba(37,99,235,.12);}
.fdf-drop-icon{font-size:2.5rem;color:var(--fdf-primary);margin-bottom:.75rem;opacity:.9;}
.fdf-drop-title{font-weight:600;color:var(--fdf-text);margin-bottom:.25rem;}
.fdf-drop-hint{font-size:.875rem;color:var(--fdf-muted);}
.fdf-input-file{display:none;}
.fdf-panel{margin-top:1.25rem;background:var(--fdf-bg);border-radius:12px;border:1px solid var(--fdf-border);overflow:hidden;}
.fdf-options-summary{padding:1rem 1.25rem;font-weight:600;color:var(--fdf-text);cursor:pointer;display:flex;align-items:center;gap:.5rem;list-style:none;}
.fdf-options-summary::-webkit-details-marker{display:none;}
.fdf-options-summary::before{content:'';width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--fdf-muted);transition:transform .2s;}
details[open] .fdf-options-summary::before{transform:rotate(180deg);}
.fdf-options-inner{padding:0 1.25rem 1.25rem;border-top:1px solid var(--fdf-border);}
.fdf-field{margin-bottom:1rem;}
.fdf-field:last-child{margin-bottom:0;}
.fdf-label{display:block;font-size:.875rem;font-weight:500;color:var(--fdf-text);margin-bottom:.35rem;}
.fdf-select{width:100%;max-width:100%;padding:.5rem .75rem;border:1px solid var(--fdf-border);border-radius:8px;font-size:1rem;background:var(--fdf-bg);color:var(--fdf-text);}
.fdf-check-row{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;}
.fdf-checkbox{width:1.125rem;height:1.125rem;accent-color:var(--fdf-primary);}
.fdf-check-label{font-size:.9375rem;color:var(--fdf-text);}
.fdf-file-list{margin-top:1rem;max-height:220px;overflow-y:auto;}
.fdf-file-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:var(--fdf-bg-muted);border-radius:8px;margin-bottom:.5rem;border:1px solid var(--fdf-border);}
.fdf-file-item:last-child{margin-bottom:0;}
.fdf-file-info{min-width:0;}
.fdf-file-name{font-weight:500;color:var(--fdf-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fdf-file-meta{font-size:.8125rem;color:var(--fdf-muted);margin-top:.15rem;}
.fdf-file-remove{padding:.35rem .5rem;border:none;background:transparent;color:var(--fdf-muted);cursor:pointer;border-radius:6px;transition:color .2s,background .2s;}
.fdf-file-remove:hover{color:var(--fdf-danger);background:rgba(239,68,68,.08);}
.fdf-actions{margin-top:1.25rem;}
.fdf-scan-btn{width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;background:var(--fdf-primary);color:#fff;cursor:pointer;transition:transform .05s,box-shadow .2s;}
.fdf-scan-btn:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 14px rgba(37,99,235,.35);}
.fdf-scan-btn:active:not(:disabled){transform:scale(.99);}
.fdf-scan-btn:disabled{opacity:.6;cursor:not-allowed;}
.fdf-progress-wrap{margin-top:1rem;display:none;}
.fdf-progress-wrap.fdf-visible{display:block;}
.fdf-progress-bar{height:8px;border-radius:999px;background:var(--fdf-bg-muted);overflow:hidden;}
.fdf-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--fdf-primary),#6366f1);border-radius:999px;transition:width .25s;}
.fdf-progress-text{font-size:.8125rem;color:var(--fdf-muted);margin-top:.35rem;}
.fdf-results{margin-top:1.5rem;}
.fdf-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1.25rem;}
.fdf-stat{background:var(--fdf-bg-muted);border-radius:10px;padding:1rem;border:1px solid var(--fdf-border);}
.fdf-stat-value{font-size:1.25rem;font-weight:700;color:var(--fdf-text);}
.fdf-stat-label{font-size:.8125rem;color:var(--fdf-muted);margin-top:.2rem;}
.fdf-groups{margin-top:1rem;}
.fdf-group{border-radius:12px;border:1px solid var(--fdf-border);background:var(--fdf-bg);margin-bottom:1rem;overflow:hidden;}
.fdf-group:last-child{margin-bottom:0;}
.fdf-group-head{padding:.875rem 1.25rem;background:var(--fdf-bg-muted);font-weight:600;color:var(--fdf-text);font-size:.9375rem;border-bottom:1px solid var(--fdf-border);}
.fdf-group-files{padding:1rem 1.25rem;}
.fdf-dup-file{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--fdf-border);}
.fdf-dup-file:last-child{border-bottom:none;}
.fdf-dup-file .fdf-file-info{flex:1;min-width:0;}
.fdf-no-dup{text-align:center;padding:2.5rem 1.5rem;color:var(--fdf-muted);}
.fdf-no-dup-icon{font-size:2.5rem;color:var(--fdf-success);margin-bottom:.75rem;opacity:.85;}
.fdf-empty-state{text-align:center;padding:2rem 1.5rem;color:var(--fdf-muted);}
.fdf-empty-state .fdf-drop-icon{margin-bottom:.5rem;}
@media (min-width:640px){.fdf-file-list{max-height:260px;}.fdf-stats{grid-template-columns:repeat(3,1fr);}}
@media (min-width:768px){.fdf-drop{min-height:160px;}.fdf-scan-btn{max-width:280px;}}
