.required::after {
    content: '✲ required';
    font-size: 0.9rem;
    color: orangered;
}

.accordion {
    border-radius: 16px;
    overflow: hidden;
}

.accordion-item:last-child .accordion-button {
    border-radius: 0 0 16px 16px !important;
    border: none;
}

.accordion-item:last-child .accordion-button:not(.collapsed) {
    border-radius: 0 0 0 0 !important;
}

.accordion-item:first-child .accordion-button {
    border-radius: 16px 16px 0 0 !important;
}

.accordion-item:not(:first-child):not(:last-child) .accordion-button {
    border-radius: 0 !important;
}

.accordion-item:last-child .accordion-button::after {
    border-radius: 0 0 16px 16px !important;
}

.form-label, .form-label-check, .col-form-label {
    font-weight: 600 !important;
    color: teal;
    margin-left: 4px;
}


/* CSS untuk input yang tidak valid */
input.invalid, textarea.invalid, select.invalid {
    border: 2px solid #ff0000 !important;
    background-color: #ffe6e6;
}

/* Efek blink sekilas */
@keyframes blink {
    0% { background-color: #ffe6e6; }
    50% { background-color: #ffcccc; }
    100% { background-color: #ffe6e6; }
}

input.invalid.blink {
    animation: blink 0.5s ease-in-out;
}

.cardDB {
    width: 300px;
    min-width: 250px;
    height: 300px;
}

.scrollable-table {
    border-collapse: collapse;
    margin: 0;
}

.scrollable-table thead {
    position: sticky;
    top: 0;
    z-index: 10;
}
