*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin-top: 0;
}

button,
input,
select,
textarea {
    font: inherit;
}

.nav {
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.flex-column {
    flex-direction: column;
}

.nav-link {
    display: block;
    text-decoration: none;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .45rem .78rem;
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.btn-sm {
    min-height: 30px;
    padding: .25rem .52rem;
    font-size: .86rem;
}

.btn:disabled,
.btn.disabled {
    opacity: .65;
    cursor: default;
}

.btn-outline-danger {
    border-color: #f1b8b1;
    color: #b42318;
}

.btn-outline-danger:hover {
    background: #fff1ef;
}

.form-control,
.form-select {
    display: block;
    width: 100%;
    min-height: 40px;
    padding: .48rem .68rem;
    border: 1px solid #ced4da;
    background-color: #fff;
    background-clip: padding-box;
    color: #212529;
    appearance: none;
}

textarea.form-control {
    min-height: auto;
}

.form-select {
    padding-right: 2rem;
    background-image: linear-gradient(45deg, transparent 50%, #667085 50%), linear-gradient(135deg, #667085 50%, transparent 50%);
    background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.form-check {
    display: flex;
    gap: .48rem;
    align-items: center;
    min-height: 1.5rem;
}

.form-check-input {
    width: 1rem;
    height: 1rem;
    margin: 0;
}

.form-check-label {
    margin: 0;
}

.form-label {
    display: inline-block;
}

.alert {
    padding: .85rem 1rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 8px;
}

.alert-success {
    background: #eaf1ff;
    border-color: #b8cffc;
    color: #0b1f3a;
}

.alert-danger {
    background: #fff1ef;
    border-color: #f1b8b1;
    color: #b42318;
}

.alert-warning {
    background: #fff7e8;
    border-color: #f4d394;
    color: #8a5a12;
}

.table {
    width: 100%;
    border-collapse: collapse;
}

.table th,
.table td {
    padding: .62rem .72rem;
    border-bottom: 1px solid #dee2e6;
}

.table-hover tbody tr:hover td {
    background: #f8faf7;
}

.table-sm th,
.table-sm td {
    padding: .42rem .5rem;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
}

.align-middle {
    vertical-align: middle;
}

.progress {
    display: flex;
    width: 100%;
    overflow: hidden;
    background-color: #e9ecef;
    border-radius: 999px;
}

.progress-bar {
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    background-color: #0d6efd;
    transition: width .6s ease;
}

.bg-success {
    background-color: #2f6fed !important;
}

.d-flex {
    display: flex !important;
}

.d-grid {
    display: grid !important;
}

.align-items-center {
    align-items: center !important;
}

.align-items-end {
    align-items: flex-end !important;
}

.justify-content-between {
    justify-content: space-between !important;
}

.justify-content-end {
    justify-content: flex-end !important;
}

.gap-2 {
    gap: .5rem !important;
}

.gap-3 {
    gap: 1rem !important;
}

.w-100 {
    width: 100% !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-3 {
    margin-bottom: 1rem !important;
}

.mb-4 {
    margin-bottom: 1.5rem !important;
}

.mt-2 {
    margin-top: .5rem !important;
}

.p-3 {
    padding: 1rem !important;
}

.small {
    font-size: .875em;
}

.text-muted {
    color: #667085 !important;
}
