label.required:after {
    content:" *";
    color: red;
}

label.required {
    font-weight: bold;
}

.auth-card {
    max-width: 500px;
}

.plugin-card {
    transition: transform 120ms ease, box-shadow 120ms ease;
}

.plugin-card:focus-within,
.plugin-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--bs-box-shadow-lg);
}

.plugin-card a.btn:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.35);
}

.list-filter-card {
    border: 1px solid var(--bs-border-color-translucent);
}
.auth-card .card-body {
    padding: 1.5rem;
}

@media (min-width: 768px) {
    .auth-card .card-body {
        padding: 2.25rem;
    }
}

.auth-card .form-control:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.auth-card .btn-primary {
    box-shadow: var(--bs-box-shadow-lg);
}

.list-filter-card {
    border: 1px solid var(--bs-border-color-translucent);
}

/* Fix sticky table headers appearing above navbar dropdowns */
.table thead.sticky-top {
    z-index: 100; /* Below navbar (1030) and dropdowns (1000) */
}

/* Dashboard Cards */
.dashboard-card {
    transition: transform 150ms ease, box-shadow 150ms ease;
}

.dashboard-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 8px 24px rgba(0, 0, 0, 0.08) !important;
}

/* Dashboard table row hover */
.dashboard-card .table-hover tbody tr {
    transition: background-color 150ms ease;
}

/* Dashboard list item hover */
.dashboard-card .list-group-item {
    transition: background-color 150ms ease;
}

.dashboard-card .list-group-item:hover {
    background-color: var(--bs-light);
}

/* Tab navigation hover effects */
.list-group-item-action {
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}

/* Button hover transitions */
.dashboard-card .btn {
    transition: all 150ms ease;
}

/* Badge subtle animation */
.dashboard-card .badge {
    transition: transform 150ms ease;
}

.dashboard-card .badge:hover {
    transform: scale(1.05);
}

/* Icon container pulse on card hover */
.dashboard-card:hover .card-header .rounded-2 {
    transform: scale(1.05);
    transition: transform 150ms ease;
}
