/* ── QA Tool Custom Styles (Tabler overrides) ──────────────── */

/* Status badges */
.badge-backlog { background-color: #667382; color: #fff; }
.badge-assigned { background-color: #4299e1; color: #fff; }
.badge-in_progress { background-color: #f59f00; color: #fff; }
.badge-dev_testing { background-color: #f76707; color: #fff; }
.badge-done_awaiting_qa { background-color: #4263eb; color: #fff; }
.badge-qa_passed { background-color: #2fb344; color: #fff; }
.badge-qa_failed { background-color: #d63939; color: #fff; }
.badge-released { background-color: #ae3ec9; color: #fff; }

/* Type badges */
.badge-bug { background-color: #d63939; color: #fff; }
.badge-change_request { background-color: #f76707; color: #fff; }
.badge-new_feature { background-color: #4263eb; color: #fff; }
.badge-improvement { background-color: #0ca678; color: #fff; }

/* Dashboard stat cards */
.card-stat {
    border-left: 4px solid;
    border-radius: 8px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.card-stat:hover,
.card-sm[style*="cursor:pointer"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Clickable card transition */
.card-sm[style*="cursor:pointer"] {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

/* Weight/Impact bar indicators */
.weight-bar, .impact-bar {
    display: inline-block;
    height: 6px;
    border-radius: 3px;
    vertical-align: middle;
}
.weight-bar { background: linear-gradient(90deg, #f59f00, #f76707); }
.impact-bar { background: linear-gradient(90deg, #d63939, #ae3ec9); }

/* Sprint Kanban board */
.kanban-column {
    min-height: 220px;
    background: var(--tblr-bg-surface);
    border: 1px solid var(--tblr-border-color);
    border-radius: 8px;
    padding: 12px;
}
.kanban-column .card {
    margin-bottom: 8px;
    cursor: pointer;
    border-radius: 6px;
    transition: box-shadow 0.15s ease;
}
.kanban-column .card:hover {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

/* History timeline */
.history-item {
    border-left: 2px solid var(--tblr-border-color);
    padding-left: 16px;
    margin-left: 8px;
    margin-bottom: 16px;
    padding-bottom: 4px;
    position: relative;
}
.history-item::before {
    content: '';
    position: absolute;
    left: -6px;
    top: 5px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--tblr-primary);
    border: 2px solid #fff;
}
.history-item.qa_pass::before { background: #2fb344; }
.history-item.qa_fail::before { background: #d63939; }
.history-item.status_change::before { background: #f59f00; }
.history-item.created::before { background: #4263eb; }
.history-item.assigned::before { background: #4299e1; }

/* Module tree */
.module-tree .submodule {
    margin-left: 28px;
    border-left: 2px solid var(--tblr-border-color);
    padding-left: 12px;
}

/* Clickable table rows */
.table-clickable tbody tr {
    cursor: pointer;
}
.table-clickable tbody tr:hover {
    background-color: rgba(var(--tblr-primary-rgb), 0.04);
}

/* Loading spinner */
.loading-spinner {
    text-align: center;
    padding: 60px 20px;
    color: var(--tblr-secondary);
}

/* Active nav link emphasis */
.navbar-nav .nav-link.active {
    font-weight: 600;
}

/* Nav badge counters */
.nav-badge {
    font-size: 0.65rem;
    min-width: 18px;
    padding: 2px 5px;
    line-height: 1;
    vertical-align: top;
    color: #fff !important;
}

/* Page header utility */
.page-header-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}
