.election-cycle-kanban { display: flex; flex-direction: column; min-height: 0; gap: 12px; } .election-cycle-kanban__toolbar { align-items: center; display: flex; justify-content: space-between; gap: 16px; } .election-cycle-kanban__toolbar h2 { margin: 0; } .election-cycle-kanban__lanes { display: grid; grid-auto-columns: minmax(280px, 1fr); grid-auto-flow: column; gap: 12px; min-height: 480px; overflow-x: auto; padding-bottom: 4px; } .election-cycle-kanban__lane { border: 1px solid var(--workspace-border); border-radius: 6px; display: flex; flex-direction: column; min-height: 0; max-height: calc(100vh - 230px); overflow-y: auto; background: var(--workspace-surface); } .election-cycle-kanban__lane-header { background: var(--workspace-surface); border-bottom: 1px solid var(--workspace-border); padding: 10px 12px; position: sticky; top: 0; z-index: 1; } .election-cycle-kanban__lane-header > div { align-items: center; display: flex; justify-content: space-between; gap: 8px; } .election-cycle-kanban__card-list { display: flex; flex-direction: column; gap: 8px; padding: 10px; } .election-cycle-kanban__card { border: 1px solid var(--workspace-border); border-radius: 6px; display: flex; flex-direction: column; gap: 8px; padding: 10px; } .election-cycle-kanban__card:focus, .election-cycle-kanban__card:focus-visible, .election-cycle-kanban__card button:focus-visible { outline: 3px solid var(--workspace-focus); outline-offset: 2px; } .election-cycle-kanban__card > div:first-child { align-items: flex-start; display: flex; justify-content: space-between; gap: 8px; } .election-cycle-kanban__empty, .election-cycle-kanban__window-note { padding: 8px 2px; } .election-cycle-kanban__keyboard-hint { align-items: center; color: var(--workspace-text-secondary); display: flex; gap: 6px; justify-content: flex-end; }