        .task-matrix-container {
            flex: 1;
            overflow: auto;
            min-width: 0;
            /* <-- KEY: keep horizontal scroll inside this container */
        }







        .task-matrix {
            min-width: 100%;
        }

        .matrix-header {
            display: flex;
            background: linear-gradient(to bottom, var(--tech-blue), var(--tech-blue-dark));
            position: sticky;
            top: 0;
            z-index: 10;
            padding-left: 3px; /* offset board-section's 3px left border so headers align with task cells */
        }



        /* Column drag insertion indicator (predictive drop target) */
        .matrix-header {
            position: sticky;
        }

        .matrix-header .col-insert-line {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 4px;
            background: rgba(253, 169, 41, 0.95);
            box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 6px 18px rgba(253, 169, 41, 0.25);
            border-radius: 4px;
            transform: translateX(-2px);
            display: none;
            z-index: 50;
            pointer-events: none;
        }

        .matrix-header .col-header.dragging {
            opacity: 0.55;
        }

        .matrix-header .col-header.drag-over {
            outline: 2px solid rgba(253, 169, 41, 0.70);
            outline-offset: -2px;
        }

        .header-cell {
            padding: 6px 8px;
            border: none;
            border-bottom: 1px solid rgba(255,255,255,0.08);
            border-right: 1px solid rgba(255,255,255,0.05);
            display: flex;
            align-items: center;
            justify-content: space-between;
            min-width: 200px;
            position: relative;
            background: transparent;
            box-sizing: border-box;
        }

        .header-cell:last-child,
        .header-cell.add-col {
            border-right: none;
        }


        .header-cell-content {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .header-cell.main-task-col {
            min-width: 380px;
            position: sticky;
            left: 0;
            z-index: 20;
            background: transparent;
        }



        .task-row .task-cell.main-task-col {
            align-items: center;
            padding-top: 6px;
            padding-bottom: 6px;
            background: #0d1f35 !important; /* task row sticky bg — matches row color */
        }

        .task-row.subtask .task-cell.main-task-col {
            background: #0f2336 !important; /* subtask sticky bg */
        }

        /* Center the checkbox within the (potentially multi-line) Main Task cell */
        .task-row .task-cell.main-task-col input[type="checkbox"] {
            align-self: center;
            flex: 0 0 auto;
            width: 16px;
            height: 16px;
            margin-top: 0;
            margin-bottom: 0;
        }


        /* Give multi-line titles breathing room in Main Task column only */
        .task-row .task-cell.main-task-col .task-title-input {
            padding-top: 3px;
            padding-bottom: 3px;
        }

        .header-cell svg {
            width: 16px;
            height: 16px;
        }

        .header-cell span {
            font-weight: 600;
            color: #6b7280;
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .header-cell.add-col {
            min-width: 48px;
            padding: 16px 8px;
            justify-content: center;
        }

        .resize-handle {
            position: absolute;
            right: 0;
            top: 0;
            bottom: 0;
            width: 4px;
            cursor: col-resize;
            transition: background 0.2s;
        }

        .resize-handle:hover {
            background: rgba(253, 169, 41, 0.12);
        }

        .resize-handle:hover::after {
            background: rgba(253, 169, 41, 0.65);
        }

        /* Column resize UX */
        body.is-resizing-col,
        body.is-resizing-col * {
            cursor: col-resize !important;
            user-select: none !important;
        }

        /* Keep header labels from stretching columns */
        .header-cell-content {
            min-width: 0;
        }

        .header-cell-content span {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .task-row {
            display: flex;
            border-radius: 0;
            margin: 0;
            min-width: 100%; /* ensures row spans full table width beyond last column */
            background: #0d1f35; /* task row — dark blue */
            border-bottom: 1px solid rgba(255,255,255,0.04);
            transition: background 0.15s ease;
            cursor: pointer;
            box-sizing: border-box;
        }

        /*
         * ROOT CAUSE FIX: renderCell() applies inline style="background: #082945/#0F3249"
         * on every tags/priority/assignee cell, AND the filler spacer cell at end of row
         * also carries an inline background. Inline styles beat CSS class rules.
         * !important overrides inline styles — targeting :not(.status-cell) to preserve
         * status cell's own green/red/grey background from JS logic.
         */
        .task-row .task-cell:not(.status-cell) {
            background: #0d1f35 !important;
        }

        /* Uniform hover — row container only, all child cells inherit */
        .task-row:hover {
            background: #112240;
        }

        .task-row:hover .task-cell:not(.status-cell) {
            background: #112240 !important;
        }

        /* Subtask rows — slightly lighter dark blue */
        .task-row.subtask {
            background: #0f2336;
            min-width: 100%;
        }

        .task-row.subtask .task-cell:not(.status-cell) {
            background: #0f2336 !important;
        }

        .task-row.subtask:hover {
            background: #112240;
        }

        .task-row.subtask:hover .task-cell:not(.status-cell) {
            background: #112240 !important;
        }

        .task-row.pinned {
            background: #0d1f35;
        }

        .task-row.private {
            background: #0d1f35;
        }

        .task-row.drag-over {
            border-top: 2px solid var(--tech-orange);
        }

        .task-row.drag-over-bottom {
            border-bottom: 2px solid var(--tech-orange);
        }

        .task-row.valid-drop {
            outline: 1px dashed rgba(253, 169, 41, 0.25);
            outline-offset: -1px;
        }

        .task-row.dragging {
            opacity: 0.5;
        }

        /* ===== Column drag (header) ===== */
        .col-header {
            user-select: none;
        }

        .col-drag-handle {
            cursor: grab;
            color: #6b7280;
            padding: 4px;
            display: flex;
            align-items: center;
            user-select: none;
            -webkit-user-select: none;
            touch-action: none;
        }

        .col-drag-handle:hover {
            color: white;
        }

        .col-drag-handle:active {
            cursor: grabbing;
        }

        .col-header.dragging {
            opacity: 0.6;
        }

        .col-header.drag-over {
            outline: 2px solid rgba(253, 169, 41, 0.6);
            outline-offset: -2px;
        }


        .task-cell {
            padding: 6px 8px;
            border: none;
            border-right: 1px solid rgba(255,255,255,0.05);
            display: flex;
            align-items: center;
            min-width: 200px;
            background: transparent;
            line-height: 1.25;
            box-sizing: border-box;

            /* ✅ Allow text to wrap inside the fixed column width */
            white-space: normal;
            overflow-wrap: anywhere;
            word-break: break-word;
        }

        .task-cell:last-child {
            border-right: none;
        }

        /* Allow flex children to shrink so wrapping can actually happen */
        .task-cell>* {
            min-width: 0;
        }


        .task-cell.subtask-cell {
            background: transparent; /* inherits from .task-row.subtask */
        }

        .task-cell.main-task-col {
            min-width: 380px;
            position: sticky;
            left: 0;
            z-index: 5;
            gap: 8px;
            justify-content: space-between;
            background: inherit; /* picks up row background (sticky cells need explicit) */
            border: none;
            border-right: 1px solid rgba(255,255,255,0.05);
            box-sizing: border-box;
        }



        .task-cell-content {
            flex: 1;
            display: flex;
            align-items: center;
            gap: 8px;
            min-width: 0;
        }

        .task-actions {
            display: flex;
            gap: 4px;
            opacity: 0;
            transition: opacity 0.2s;
        }

        .task-row:hover .task-actions {
            opacity: 1;
        }

        .menu-btn {
            padding: 4px;
            background: none;
            border: none;
            color: #6b7280;
            cursor: pointer;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .menu-btn:hover {
            color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.1);
        }

        .drag-handle {
            cursor: grab;
            color: #6b7280;
            padding: 4px;
            display: flex;
            align-items: center;
            user-select: none;
            -webkit-user-select: none;
            touch-action: none;
        }


        .drag-handle:hover {
            color: white;
        }

        .drag-handle:active {
            cursor: grabbing;
        }

        .task-title-wrapper {
            flex: 1;
            display: flex;
            align-items: flex-start;
            gap: 8px;
            min-width: 0;
        }

        .subtask-number {
            color: var(--tech-orange);
            font-size: 12px;
            font-weight: 500;
            opacity: 0.8;
            width: 18px;
            text-align: right;
            flex-shrink: 0;
            align-self: center;
        }

        .task-title-input {
            flex: 1;
            background: transparent;
            border: none;
            color: white;
            font-size: 11px;
            font-weight: 400;
            outline: none;
            font-family: inherit;
            min-width: 0;
            line-height: 1.35;
            white-space: pre-wrap;
            /* allow wrapping while preserving manual newlines */
            overflow-wrap: anywhere;
            word-break: break-word;
            resize: none;
            padding: 2px 0;
            margin: 0;
            height: 18px;
            /* will be auto-grown */
            max-height: 5.2em;
            /* cap so rows don't explode */
            overflow-y: hidden;
            display: block;
        }

        .task-title-input::placeholder {
            color: #6b7280;
        }

        .task-title-input.completed {
            text-decoration: line-through;
            color: #6b7280;
        }

        .subtask-number {
            color: var(--tech-orange);
            font-size: 12px;
            font-weight: 500;
            opacity: 0.8;
            display: inline-block;
            width: 18px;
            /* reserve space so bubbles align */
            text-align: right;
            flex-shrink: 0;
        }


        .pin-icon {
            color: var(--tech-orange);
            width: 12px;
            height: 12px;
        }

        .description-bubble {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            flex-shrink: 0;
            margin-left: auto;
            /* always align to the right */
        }


        .description-bubble.has-content {
            background: rgba(253, 169, 41, 0.2);
            border: 1px solid rgba(253, 169, 41, 0.3);
        }

        .description-bubble.has-content svg {
            color: var(--tech-orange);
        }

        .description-bubble.empty {
            background: rgba(107, 114, 128, 0.2);
            border: 1px solid rgba(107, 114, 128, 0.3);
        }

        .description-bubble.empty svg {
            color: #6b7280;
        }

        .description-bubble:hover {
            transform: scale(1.2);
        }

        .add-subtask-btn {
            padding: 4px;
            background: none;
            border: none;
            color: #808080;
            cursor: pointer;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .add-subtask-btn:hover {
            transform: scale(1.2);
            transition: 0.2s ease all;
            color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.08);
        }

        .subtasks-toggle-btn,
        .add-task-below-btn,
        .duplicate-task-inline-btn,
        .delete-task-inline-btn {
            padding: 4px;
            background: none;
            border: none;
            color: #666666;
            cursor: pointer;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            opacity: 1;
            transition: opacity 0.18s ease, color 0.18s ease, background 0.18s ease, border-color 0.18s ease;
        }

        .subtasks-toggle-btn {
            width: 24px;
            height: 24px;
            border-radius: 9999px;
            border: 1px solid rgba(58, 108, 147, 0.35);
            background: rgba(58, 108, 147, 0.12);
            color: #d1d5db;
        }

        .task-row:hover .subtasks-toggle-btn,
        .task-row:hover .add-task-below-btn,
        .task-row:hover .duplicate-task-inline-btn,
        .task-row:hover .delete-task-inline-btn {
            opacity: 1;
        }

        .subtasks-toggle-btn:hover {
            transform: scale(1.2);
            transition: 0.2s ease all;
            color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.08);
        }

        .subtasks-toggle-btn.is-collapsed {
            color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.08);
        }

        .subtasks-toggle-btn.is-disabled {
            opacity: 0.35;
            cursor: default;
            pointer-events: none;
        }

        .add-task-below-btn:hover {
            transform: scale(1.2);
            transition: 0.2s ease all;
            color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.08);
        }

        .duplicate-task-inline-btn:hover {
            transform: scale(1.2);
            transition: 0.2s ease all;
            color: #e5e7eb;
            background: rgba(255, 255, 255, 0.10);
        }

        .delete-task-inline-btn:hover {
            transform: scale(1.2);
            transition: 0.2s ease all;
            color: #f87171;
            background: rgba(239, 68, 68, 0.10);
        }

        .subtasks-toggle-btn svg,
        .add-task-below-btn svg,
        .duplicate-task-inline-btn svg,
        .delete-task-inline-btn svg {
            width: 12px;
            height: 12px;
        }

        .task-row.commit-hover-lock .subtasks-toggle-btn,
        .task-row.commit-hover-lock .add-task-below-btn,
        .task-row.commit-hover-lock .add-subtask-btn,
        .task-row.commit-hover-lock .duplicate-task-inline-btn,
        .task-row.commit-hover-lock .delete-task-inline-btn,
        .task-row.commit-hover-lock .description-bubble,
        .task-row.commit-hover-lock .task-actions {
            opacity: 1 !important;
            transition: none !important;
        }


        .status-cell {
            padding: 0;
        }

        .status-select-wrapper {
            width: 100%;
            height: 100%;
            position: relative;
        }

        .status-display {
            width: 100%;
            height: 100%;
            padding: 2px 5px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 12px;
            font-weight: 500;
            cursor: pointer;
            color: white;
        }

        .custom-dropdown {
            position: absolute;
            top: 100%;
            left: 0;
            width: max-content;
            min-width: 280px;
            max-width: 360px;
            max-height: 320px;
            overflow-y: auto;
            scrollbar-width: thin;
            scrollbar-color: rgba(255,255,255,0.2) transparent;
            background: linear-gradient(to bottom, var(--tech-blue), var(--tech-blue-dark));
            border: 1px solid rgba(58, 108, 147, 0.3);
            border-radius: 8px;
            z-index: 6000;
            /* higher so it sits above pipeline cards */
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
            display: none;
        }

        /* When we "float" pipeline dropdowns to <body> */
        .floating-dropdown {
            position: fixed !important;
            left: 0;
            top: 0;
            right: auto !important;
            z-index: 9999 !important;
        }


        .custom-dropdown.active {
            display: block;
        }

        .dropdown-option {
            padding: 6px 12px;
            margin: 1px 0;
            display: flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
            transition: background 0.2s;
            color: white;
            white-space: nowrap;
        }

        .dropdown-option:hover {
            background: rgba(58, 108, 147, 0.3);
        }

        .dropdown-option.selected {
            background: rgba(253, 169, 41, 0.1);
        }

        .dropdown-option .dot {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            flex-shrink: 0;
        }

        .dropdown-option .check {
            width: 16px;
            height: 16px;
            color: var(--tech-orange);
            margin-right: 4px;
        }

        .priority-cell {
            display: flex;
            align-items: center;
            gap: 12px;
            padding-left: 24px;
            position: relative;
        }

        .priority-display {
            display: flex;
            align-items: center;
            gap: 12px;
            cursor: pointer;
            padding: 8px 0;
        }

        .priority-dot {
            width: 12px;
            height: 12px;
            border-radius: 50%;
            flex-shrink: 0;
        }

        .priority-text {
            color: #d1d5db;
            font-size: 12px;
            font-weight: 700;
        }

        .assignee-cell {
            display: flex;
            align-items: center;
            gap: 12px;
            padding-left: 24px;
            position: relative;
        }

        .assignee-display {
            display: flex;
            align-items: center;
            gap: 12px;
            cursor: pointer;
            padding: 8px 0;
        }

        .assignee-avatar {
            width: 15px;
            height: 15px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            flex-shrink: 0;
        }

        .assignee-avatar.empty {
            border: 2px dashed #6b7280;
            color: #6b7280;
            font-size: 12px;
        }

        .assignee-name {
            color: #d1d5db;
            font-size: 12px;
            font-weight: 700;
        }

        /* ===== Multi-assignee UI ===== */
        .assignee-avatar-stack {
            display: flex;
            align-items: center;
        }

        .assignee-avatar-wrap {
            position: relative;
            margin-left: -6px;
            /* overlap */
            border: 2px solid #082945;
            /* outline to separate avatars */
            border-radius: 9999px;
            overflow: visible;
        }

        .task-row.subtask .assignee-avatar-wrap {
            border-color: #0F3249;
        }

        .assignee-remove-x {
            position: absolute;
            top: -5px;
            right: -5px;
            width: 14px;
            height: 14px;
            border-radius: 9999px;
            border: none;
            background: rgba(220, 38, 38, 0.95);
            color: white;
            font-size: 10px;
            font-weight: 800;
            display: none;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            line-height: 1;
        }

        .assignee-avatar-wrap:hover .assignee-remove-x {
            display: flex;
        }

        .assignee-count-pill {
            margin-left: 8px;
            font-size: 12px;
            font-weight: 800;
            color: #d1d5db;
            opacity: 0.9;
        }


        .date-cell {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            /* left align */
            gap: 8px;
            color: #9ca3af;
            font-size: 13px;
            padding-left: 12px;
            /* consistent left padding */
        }


        .date-input {
            background: transparent;
            border: none;
            color: #d1d5db;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
            outline: none;
            font-family: inherit;
        }

        .date-input::-webkit-calendar-picker-indicator {
            filter: invert(1);
            cursor: pointer;
        }

        .text-cell {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            position: relative;
        }

        .note-icons {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .note-icon {
            width: 32px;
            height: 24px;
            background: rgba(253, 169, 41, 0.2);
            border: 1px solid rgba(253, 169, 41, 0.3);
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            position: relative;
        }

        .note-icon:hover {
            background: rgba(253, 169, 41, 0.3);
            transform: scale(1.05);
        }

        .note-icon svg {
            color: var(--tech-orange);
            width: 16px;
            height: 16px;
        }

        .note-tooltip {
            display: none !important;
        }

        .note-hover-popover {
            position: fixed;
            left: 0;
            top: 0;
            width: 240px;
            max-width: min(240px, calc(100vw - 24px));
            background: var(--tech-blue);
            border: 1px solid rgba(58, 108, 147, 0.3);
            border-radius: 10px;
            padding: 12px;
            z-index: 20000;
            box-shadow: 0 14px 30px rgba(0, 0, 0, 0.35);
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transform: translateY(4px);
            transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s ease;
        }

        .note-hover-popover.show {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
            transform: translateY(0);
        }

        .note-hover-popover[data-placement="top"] {
            transform-origin: bottom center;
        }

        .note-hover-popover[data-placement="bottom"] {
            transform-origin: top center;
        }

        .note-tooltip-title {
            font-weight: 700;
            color: white;
            font-size: 13px;
            margin-bottom: 6px;
        }

        .note-tooltip-content {
            color: #9ca3af;
            font-size: 12px;
            line-height: 1.45;
            white-space: pre-wrap;
            word-break: break-word;
        }

        .note-tooltip-footer {
            margin-top: 8px;
            font-size: 11px;
            color: var(--tech-orange);
        }

        .note-tooltip-actions {
            display: flex;
            gap: 8px;
            margin-top: 10px;
        }

        .note-tooltip-btn {
            flex: 1;
            border: 1px solid rgba(58, 108, 147, 0.35);
            background: rgba(58, 108, 147, 0.12);
            color: #e5e7eb;
            border-radius: 8px;
            padding: 7px 10px;
            font-size: 11px;
            font-weight: 700;
            cursor: pointer;
        }

        .note-tooltip-btn:hover {
            border-color: rgba(253, 169, 41, 0.35);
            background: rgba(253, 169, 41, 0.10);
        }

        .note-tooltip-btn.danger {
            border-color: rgba(239, 68, 68, 0.35);
            background: rgba(239, 68, 68, 0.16);
            color: #fecaca;
        }

        .note-tooltip-btn.danger:hover {
            background: rgba(239, 68, 68, 0.24);
        }

        .add-note-btn {
            width: 20px;
            height: 20px;
            border: 1px dashed #6b7280;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            background: none;
        }

        .add-note-btn:hover {
            border-color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.2);
        }

        .add-note-btn svg {
            width: 10px;
            height: 10px;
            color: #6b7280;
        }

        .add-note-btn:hover svg {
            color: var(--tech-orange);
        }

        .note-count {
            font-size: 12px;
            color: #9ca3af;
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .empty-add-btn {
            width: 24px;
            height: 24px;
            border: 2px dashed #6b7280;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            background: none;
        }

        .empty-add-btn:hover {
            border-color: var(--tech-orange);
            background: rgba(253, 169, 41, 0.2);
        }

        .empty-add-btn svg {
            width: 12px;
            height: 12px;
            color: #6b7280;
        }

        .empty-add-btn:hover svg {
            color: var(--tech-orange);
        }

        .file-cell {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }

        .file-icons {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .file-icon {
            width: 32px;
            height: 24px;
            background: rgba(253, 169, 41, 0.2);
            border: 1px solid rgba(253, 169, 41, 0.3);
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: background 0.2s;
            position: relative;
        }

        .file-icon:hover {
            background: rgba(253, 169, 41, 0.3);
        }

        .file-icon svg {
            color: var(--tech-orange);
            width: 16px;
            height: 16px;
        }

        .file-icon.image-file svg {
            color: #10b981;
        }

        .file-icon.video-file svg {
            color: #8b5cf6;
        }

        .file-icon.audio-file svg {
            color: #f59e0b;
        }

        .file-icon.pdf-file svg {
            color: #ef4444;
        }

        .file-count {
            font-size: 12px;
            color: #9ca3af;
        }

        .color-cell {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .color-swatch {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            cursor: pointer;
            border: 2px solid transparent;
            transition: all 0.2s;
        }

        .color-swatch:hover {
            transform: scale(1.1);
            border-color: white;
        }

        .recording-cell {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }

        .recording-btn {
            width: 36px;
            height: 24px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            background: rgba(239, 68, 68, 0.2);
            border: 1px solid rgba(239, 68, 68, 0.3);
        }

        .recording-btn:hover {
            background: rgba(239, 68, 68, 0.3);
        }

        .recording-btn.recording {
            background: #ef4444;
            animation: pulse 1s infinite;
        }

        @keyframes pulse {

            0%,
            100% {
                opacity: 1;
            }

            50% {
                opacity: 0.5;
            }
        }

        .recording-btn svg {
            color: #ef4444;
            width: 16px;
            height: 16px;
        }

        .recording-btn.recording svg {
            color: white;
        }

        .recording-indicator {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 6px 12px;
            background: rgba(253, 169, 41, 0.2);
            border-radius: 6px;
            cursor: pointer;
        }

        .recording-indicator svg {
            color: var(--tech-orange);
            width: 16px;
            height: 16px;
        }

        .recording-indicator span {
            color: #d1d5db;
            font-size: 12px;
        }

        .add-task-row {
            display: flex;
            align-items: center;
            /* prevents vertical stretching */
            border-bottom: 1px solid rgba(58, 108, 147, 0.2);
            transition: background 0.2s;
            min-height: 20px;
            /* keeps it compact */
        }

        .add-task-row:hover {
            background: rgba(58, 108, 147, 0.08);
        }

        .add-task-trigger {
            display: flex;
            align-items: center;
            gap: 3px;
            /* smaller gap */
            padding: 4px 8px;
            /* reduced padding */
            color: #fda829ab;
            cursor: pointer;
            transition: color 0.2s;
            background: none;
            border: none;
            font-size: 12px;
            /* smaller font */
            font-family: inherit;
            line-height: 1.2;
        }

        .add-task-trigger:hover {
            color: var(--tech-orange);
        }

        .add-task-form {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 8px 32px;
            flex: 1;
        }

        .add-task-inputs {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .add-task-input {
            background: rgba(58, 108, 147, 0.3);
            border: 1px solid rgba(58, 108, 147, 0.5);
            border-radius: 6px;
            padding: 8px 12px;
            color: white;
            font-size: 14px;
            outline: none;
            font-family: inherit;
        }

        .add-task-input:focus {
            border-color: var(--tech-orange);
        }

        .add-task-input::placeholder {
            color: #fda829b4;
        }

        .add-task-actions {
            display: flex;
            flex-direction: column;
            gap: 6px;
            align-items: stretch;
        }

        .add-task-actions .btn {
            width: 100%;
            justify-content: center;
        }



        /* ===== TAGS (multi-select) ===== */
        .tags-cell {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            flex-wrap: nowrap;
            /* ✅ no wrapping */
            gap: 6px;
            padding: 6px 8px;
            width: 100%;
            min-width: 0;
            overflow: hidden;
            /* ✅ prevents row from growing */
        }

        /* inner row that holds pills */
        .tags-inline {
            display: flex;
            align-items: center;
            gap: 6px;
            width: 100%;
            min-width: 0;
            overflow: hidden;
            /* ✅ clip extra pills */
        }

        /* keep pills from pushing cell wider */
        .tag-pill {
            max-width: 140px;
            /* optional: prevents huge pills */
            overflow: hidden;
            text-overflow: ellipsis;
        }

        /* +N overflow pill */
        .tag-more {
            flex-shrink: 0;
            position: relative;
            cursor: default;
            opacity: 0.95;
        }

        /* hover popup for remaining tags */
        .tag-more .tags-tooltip {
            position: absolute;
            left: 0;
            top: calc(100% + 8px);
            background: rgba(6, 30, 52, 0.96);
            border: 1px solid rgba(58, 108, 147, 0.35);
            border-radius: 12px;
            padding: 10px 12px;
            min-width: 220px;
            max-width: 320px;
            color: #e5e7eb;
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
            z-index: 999999;
            /* ✅ above grid */
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s ease;
            transform: translateY(2px);
        }

        .tag-more:hover .tags-tooltip {
            opacity: 1;
            visibility: visible;
            transform: translateY(0px);
        }

        .tags-tooltip-title {
            font-weight: 900;
            font-size: 12px;
            margin-bottom: 8px;
        }

        .tags-tooltip-body {
            display: flex;
            flex-wrap: wrap;
            /* ✅ allow wrap INSIDE tooltip */
            gap: 6px;
        }



        .tag-pill {
            display: inline-flex;
            align-items: center;
            gap: 3px;
            padding: 2px 8px;
            border-radius: 9999px;
            font-size: 10px;
            font-weight: 600;
            line-height: 1.25;
            white-space: nowrap;

            /* pill gets colored inline */
            color: #e5e7eb;
            border: 1px solid rgba(58, 108, 147, 0.35);
            background: rgba(58, 108, 147, 0.10);
        }



        .tag-dot {
            width: 8px;
            height: 8px;
            border-radius: 9999px;
            flex-shrink: 0;
        }

        .tag-pill .tag-x {
            width: 16px;
            height: 16px;
            border-radius: 9999px;
            border: 1px solid rgba(255, 255, 255, 0.18);
            background: rgba(0, 0, 0, 0.15);
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-weight: 900;
            font-size: 12px;
            line-height: 1;
        }

        .tag-pill .tag-x:hover {
            background: rgba(0, 0, 0, 0.28);
        }

        /* Tags column layout */
        .task-cell.tags-cell {
            align-items: flex-start;
            justify-content: flex-start;
        }

        .tags-wrap {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            width: 100%;
        }

        .tag-chip {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 4px 8px;
            border-radius: 9999px;
            font-size: 12px;
            font-weight: 700;
            line-height: 1;
            max-width: 100%;
            white-space: nowrap;
        }



/* ===== Spacer / header-row overrides ===== */
        /* STYLE FOR THE ADD ROW ADD HEADER */
        /* =========================
   ========================= */
        .task-row.header-row {
            background: #0d1f35;
            min-height: 20px;
        }

        .task-row.header-row .task-cell {
            background: #0d1f35 !important;
            border-right: none !important; /* no vertical column dividers on header rows */
        }

        .task-row.header-row:hover {
            background: #112240;
        }

        .task-row.header-row:hover .task-cell {
            background: #112240 !important;
        }

        .task-row.header-row .task-title-input {
            font-weight: 800;
            font-size: 14px;
            color: #ffd18a;
        }

        .task-row.spacer-row {
            background: #0d1f35;
            height: 20px;
        }

        .task-row.spacer-row .task-cell {
            background: #0d1f35 !important;
            border-bottom: none !important;
            border-right: none !important; /* no vertical column dividers on spacer rows */
        }

        .task-row.spacer-row:hover {
            background: #112240;
        }

        .task-row.spacer-row:hover .task-cell {
            background: #112240 !important;
        }

        /* Spacer row: hide content, but KEEP menu + drag handle so it can be moved/duplicated/deleted */
        .task-row.spacer-row input,
        .task-row.spacer-row .description-bubble,
        .task-row.spacer-row .add-subtask-btn {
            display: none !important;
        }

        .task-row.spacer-row .task-actions {
            display: flex !important;
            align-items: center;
            gap: 8px;
        }

        .task-row.spacer-row .drag-handle {
            display: inline-flex !important;
        }

        /* ================================================================
           BOARDS SYSTEM — board section containers
           ================================================================ */

        .board-section {
            background: rgba(255,255,255,0.03);
            border-radius: 14px;
            border: 1px solid rgba(255,255,255,0.07);
            border-left: 3px solid #F59E0B;
            margin: 0 16px 20px 16px;
            padding: 0; /* removed bottom padding — was creating bottom stripe */
            box-shadow: 0 4px 20px rgba(0,0,0,0.2);
            overflow: visible; /* must be visible so dropdowns can escape the board boundary */
        }

        .board-section:first-of-type {
            margin-top: 16px;
        }

        .board-section-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 10px 16px;
            background: #0d1f35; /* dark navy — same as task rows */
            border-bottom: 1px solid rgba(255,255,255,0.06);
            border-radius: 14px 14px 0 0;
        }

        .board-section-header-left {
            display: flex;
            align-items: center;
            gap: 10px;
            min-width: 0;
            flex: 1;
        }

        .board-section-header-right {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-shrink: 0;
        }

        .board-title-input {
            background: transparent;
            border: none;
            outline: none;
            color: #ffffff; /* white — readable on dark navy */
            font-size: 13px;
            font-weight: 800;
            padding: 3px 6px;
            border-radius: 6px;
            min-width: 80px;
            max-width: 260px;
            cursor: text;
            letter-spacing: 0.02em;
        }

        .board-title-input:hover {
            background: rgba(58,108,147,0.18);
        }

        .board-title-input:focus {
            background: rgba(58,108,147,0.25);
            outline: 1px solid rgba(253,169,41,0.4);
        }

        .board-title-static {
            font-size: 13px;
            font-weight: 800;
            color: #ffffff; /* white — readable on dark navy */
            padding: 3px 6px;
            letter-spacing: 0.02em;
        }

        .board-task-count {
            font-size: 11px;
            font-weight: 600;
            color: #6b7280;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(58,108,147,0.2);
            border-radius: 9999px;
            padding: 1px 8px;
            white-space: nowrap;
        }

        .board-add-task-btn {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            font-size: 11px;
            font-weight: 700;
            color: #ffffff; /* white bold — visible on dark navy header */
            background: transparent;
            border: 1px solid transparent;
            border-radius: 7px;
            padding: 3px 8px;
            cursor: pointer;
            transition: all 0.12s ease;
        }

        .board-add-task-btn:hover {
            color: #ffffff;
            background: rgba(58,108,147,0.3);
            border-color: rgba(58,108,147,0.45);
        }

        .board-menu-btn {
            width: 26px;
            height: 26px;
            border-radius: 7px;
            border: 1px solid rgba(58,108,147,0.3);
            background: rgba(0,0,0,0.12);
            color: #9ca3af;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-size: 16px;
            line-height: 1;
        }

        .board-menu-btn:hover {
            background: rgba(58,108,147,0.3);
            color: #fff;
        }

        .board-menu {
            position: absolute;
            top: 32px;
            right: 0;
            min-width: 180px;
            background: linear-gradient(to bottom, var(--tech-blue), var(--tech-blue-dark));
            border: 1px solid rgba(58,108,147,0.45);
            border-radius: 12px;
            box-shadow: 0 16px 36px rgba(0,0,0,0.4);
            padding: 6px;
            z-index: 9999;
            display: none;
        }

        .board-menu.show {
            display: block;
        }

        .board-menu-item {
            width: 100%;
            text-align: left;
            border: none;
            background: transparent;
            color: #e5e7eb;
            padding: 8px 10px;
            border-radius: 8px;
            cursor: pointer;
            font-size: 12px;
            font-weight: 700;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .board-menu-item:hover { background: rgba(58,108,147,0.25); }
        .board-menu-item.danger { color: #fecaca; }
        .board-menu-item.danger:hover { background: rgba(239,68,68,0.18); }

        .board-menu-separator {
            height: 1px;
            background: rgba(58,108,147,0.25);
            margin: 4px 6px;
        }

        .board-section-body {
            padding-top: 4px;
        }

        /* ── Add Board button row ── */
        .add-board-row {
            padding: 10px 12px;
            border-top: 1px dashed rgba(58,108,147,0.2);
            margin-top: 4px;
        }

        .add-board-btn {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 12px;
            font-weight: 700;
            color: #6b7280;
            background: transparent;
            border: 1px dashed rgba(58,108,147,0.3);
            border-radius: 9px;
            padding: 5px 14px;
            cursor: pointer;
            transition: all 0.12s ease;
        }

        .add-board-btn:hover {
            color: #e5e7eb;
            background: rgba(58,108,147,0.14);
            border-color: rgba(58,108,147,0.5);
        }
