/* 기본 박스 전환 효과 */
.add-box.add-file { transition: box-shadow .15s ease, background-color .15s ease, outline-color .15s ease; }

/* 드래그 진입 시 (하이라이트) */
.add-box.add-file.dnd-over {
    outline: 2px dashed #3b82f6;           /* 파란 점선 */
    outline-offset: 2px;
    background-color: rgba(59,130,246,.06); /* 살짝 파란 배경 */
    border-radius: 12px;
    box-shadow: 0 0 0 4px rgba(59,130,246,.12) inset;
}

/* 최대 개수 초과 등 드랍 불가 */
.add-box.add-file.dnd-deny {
    outline: 2px dashed #ef4444;
    background-color: rgba(239,68,68,.06);
    box-shadow: 0 0 0 4px rgba(239,68,68,.12) inset;
    cursor: not-allowed;
}

/* (선택) 드랍 실패시 살짝 흔들림 */
@keyframes dnd-shake {
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
}
.add-box.add-file.dnd-shake { animation: dnd-shake .35s; }
