/* ============================================================
   Task drag & drop — drop indicators, dropzones, dragging body flag
   ============================================================ */

.task-drop-before::before,
.task-drop-after::after,
.board-drop-before::before,
.board-drop-after::after {
    content: '';
    position: absolute;
    left: calc(1rem + var(--task-drop-offset, 0px));
    right: 1rem;
    height: 2px;
    background: #3b82f6;
    border-radius: 9999px;
    box-shadow: 0 0 0 2px rgba(219, 234, 254, 0.9);
}
.task-drop-before::before,
.board-drop-before::before { top: -1px; }
.task-drop-after::after,
.board-drop-after::after { bottom: -1px; }
.task-drop-child {
    background: rgba(239, 246, 255, 0.72);
}
.task-drop-into {
    background: linear-gradient(180deg, rgba(239, 246, 255, 0.92) 0%, rgba(219, 234, 254, 0.88) 100%);
    box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.32);
}
.task-drop-into::after {
    content: 'Drop into';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    padding: 0.2rem 0.55rem;
    border-radius: 9999px;
    border: 1px solid rgba(59, 130, 246, 0.22);
    background: rgba(255, 255, 255, 0.92);
    color: #2563eb;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    pointer-events: none;
}
.task-dropzone {
    position: relative;
    transition: background-color 0.15s ease;
}
.task-dropzone-active {
    background: rgba(59, 130, 246, 0.04);
}
.task-dropzone-empty {
    min-height: 60px;
    margin: 0.75rem 1rem 0.25rem;
    border: 1px dashed #cbd5e1;
    border-radius: 0.75rem;
}
.task-dropzone-empty-state {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    color: #94a3b8;
}
.task-dropzone-empty-active {
    background: #eff6ff;
    border-color: #60a5fa;
}
.task-dropzone-empty-active .task-dropzone-empty-state {
    color: #2563eb;
}
body.task-dragging-active .task-row,
body.task-dragging-active .task-drag-handle {
    user-select: none;
}
