.kanban-board { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem; }
.kanban-column { flex: 0 0 18rem; background: var(--vl-surface-2); border-radius: var(--vl-sheet-radius); display: flex; flex-direction: column; min-height: 30rem; }
/* Re-mixed against --vl-surface-2 rather than taking --vl-accent-softer: that role mixes into
   --vl-surface, and the column is painted --vl-surface-2. */
.kanban-column--hover { background: color-mix(in srgb, var(--vl-accent) 7%, var(--vl-surface-2)); }
.kanban-column-header { padding: .75rem 1rem; font-weight: 600; border-bottom: 1px solid var(--vl-line); }
.kanban-column-body { padding: .5rem; display: flex; flex-direction: column; gap: .5rem; min-height: 5rem; }
.kanban-card { background: var(--vl-surface); border-radius: var(--vl-control-radius); box-shadow: var(--vl-shadow-card); padding: .75rem; cursor: grab; user-select: none; }
.kanban-card:active { cursor: grabbing; }
.kanban-card--dragging { opacity: .4; }
.kanban-card-priority { height: .25rem; border-radius: .125rem; margin-bottom: .5rem; }
.kanban-card-priority.priority-high { background: var(--dxds-color-surface-utility-red-default-rest, #de350b); }
.kanban-card-priority.priority-normal { background: var(--dxds-color-surface-utility-blue-default-rest, #0052cc); }
.kanban-card-priority.priority-low { background: var(--dxds-color-surface-utility-green-default-rest, #36b37e); }
.kanban-card-title { font-weight: 500; margin-bottom: .25rem; }
.kanban-card-assignee, .kanban-card-due { font-size: .85rem; color: var(--vl-text-muted); }
