:root {
    --bs-primary: #2b6cb0;
    --bs-primary-rgb: 43, 108, 176;
    --bs-link-color: #2b6cb0;
    --bs-link-hover-color: #1f4e80;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #f4f6f8;
}

body.bg-light {
    background-color: #f4f6f8 !important;
}

main {
    flex: 1;
}

.navbar.bg-dark {
    background-color: #152238 !important;
}

.hero {
    background: linear-gradient(135deg, #152238, #1f3a5f);
    color: #fff;
    border-radius: 0.5rem;
    padding: 3rem 2rem;
    position: relative;
    overflow: hidden;
}

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(58, 143, 168, 0.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(58, 143, 168, 0.15) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
}

.hero > * {
    position: relative;
}

.btn-primary {
    background-color: #2b6cb0;
    border-color: #2b6cb0;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: #1f4e80 !important;
    border-color: #1f4e80 !important;
}

.btn-outline-primary {
    color: #2b6cb0;
    border-color: #2b6cb0;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    background-color: #2b6cb0 !important;
    border-color: #2b6cb0 !important;
}

.card,
.table {
    background-color: #fff;
}

.btn-success {
    background-color: #4c8c6d !important;
    border-color: #4c8c6d !important;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active {
    background-color: #3d7159 !important;
    border-color: #3d7159 !important;
}

.btn-outline-success {
    color: #4c8c6d;
    border-color: #4c8c6d;
}

.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active {
    background-color: #4c8c6d !important;
    border-color: #4c8c6d !important;
}

.btn-danger {
    background-color: #c05c52 !important;
    border-color: #c05c52 !important;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
    background-color: #a14a41 !important;
    border-color: #a14a41 !important;
}

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

.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:active {
    background-color: #c05c52 !important;
    border-color: #c05c52 !important;
}

.btn-warning {
    background-color: #cf9a3e !important;
    border-color: #cf9a3e !important;
    color: #fff !important;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active {
    background-color: #b18132 !important;
    border-color: #b18132 !important;
    color: #fff !important;
}

.btn-outline-warning {
    color: #b18132;
    border-color: #cf9a3e;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:active {
    background-color: #cf9a3e !important;
    border-color: #cf9a3e !important;
    color: #fff !important;
}

.btn-info {
    background-color: #3a8fa8 !important;
    border-color: #3a8fa8 !important;
    color: #fff !important;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active {
    background-color: #2e7288 !important;
    border-color: #2e7288 !important;
    color: #fff !important;
}

.btn-outline-info {
    color: #3a8fa8;
    border-color: #3a8fa8;
}

.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info:active {
    background-color: #3a8fa8 !important;
    border-color: #3a8fa8 !important;
    color: #fff !important;
}

.btn-secondary {
    background-color: #66748c !important;
    border-color: #66748c !important;
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    background-color: #525e72 !important;
    border-color: #525e72 !important;
}

.btn-outline-secondary {
    color: #525e72;
    border-color: #66748c;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active {
    background-color: #66748c !important;
    border-color: #66748c !important;
}

.badge.bg-warning {
    background-color: #cf9a3e !important;
    color: #fff !important;
}

.badge.bg-success {
    background-color: #4c8c6d !important;
}

.badge.bg-danger {
    background-color: #c05c52 !important;
}

.badge.bg-info {
    background-color: #3a8fa8 !important;
}

.badge.bg-secondary {
    background-color: #66748c !important;
}

.alert-success {
    background-color: #e6ede8;
    border-color: #c8d8cd;
    color: #3d5c46;
}

.alert-danger {
    background-color: #f3e6e4;
    border-color: #e0c5c1;
    color: #7a3b34;
}

.alert-warning {
    background-color: #f5eede;
    border-color: #e3d3b3;
    color: #7a5c26;
}
