/* ============================================================================
   Bootstrap 5 theme overrides
   Ports every customization that existed in the old customized Bootstrap 4.5.2
   build (see old-bootstrap.min.css) onto the stock Bootstrap 5.3.3 build.
   Load AFTER bootstrap.min.css and BEFORE app.css / custom.css.
   ============================================================================ */

:root {
    /* Theme palette (identical to old build) */
    --app-theme-color: #482BD9;
    --app-left-panel: #482BD9;
    --app-left-panel-a: #fff;
    --app-left-panel-icon: #fff;

    /* Map Bootstrap 5 color variables to the old theme palette */
    --bs-primary: var(--app-theme-color);
    --bs-primary-rgb: 72, 43, 217;
    --bs-secondary: #5a7684;
    --bs-secondary-rgb: 90, 118, 132;
    --bs-success: #32ab13;
    --bs-success-rgb: 50, 171, 19;
    --bs-info: #198fed;
    --bs-info-rgb: 25, 143, 237;
    --bs-warning: #ffc107;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger: #f02769;
    --bs-danger-rgb: 240, 39, 105;
    --bs-light: #f8f9fa;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark: #343a40;
    --bs-dark-rgb: 52, 58, 64;
    --bs-gray: #5a7684;
    --bs-gray-dark: #343a40;

    /* Links */
    --bs-link-color: var(--app-theme-color);
    --bs-link-color-rgb: 72, 43, 217;
    --bs-link-hover-color: var(--app-theme-color);
    --bs-link-hover-color-rgb: 72, 43, 217;

    /* Code color (old pink) */
    --bs-code-color: #e83e8c;

    /* Body typography (old build) */
    --bs-body-font-family: 'Roboto', sans-serif;
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: #212529;
    --bs-body-bg: #fff;

    /* Border radii — Bootstrap 4 values */
    --bs-border-radius: 0.25rem;
    --bs-border-radius-sm: 0.2rem;
    --bs-border-radius-lg: 0.3rem;
}

/* --- Typography / reboot differences ------------------------------------- */

body {
    font-size: 16px;
    letter-spacing: .1px;
}

h6,
.h6 {
    font-size: 17px;
}

b,
strong {
    font-weight: 500;
}

small,
.small {
    font-size: 80%;
    font-weight: 400;
}

label {
    margin-bottom: 0.2rem;
}

/* Old build: links are never underlined by default */
a {
    color: var(--app-theme-color);
    text-decoration: none;
}

a:hover {
    color: var(--app-theme-color);
    text-decoration: underline;
}

/* --- Grid — replicate old build exactly ---------------------------------- */
/* Old container padding: 15px each side */
.container,
.container-fluid,
.container-xxl,
.container-xl,
.container-lg,
.container-md,
.container-sm {
    --bs-gutter-x: 30px;
}

/* Old build: row margins -15px, column padding 10px each side */
.row {
    --bs-gutter-x: 20px;
    margin-right: -15px;
    margin-left: -15px;
}

/* Old build had no xxl breakpoint: keep max-width 1140px on very wide screens */
@media (min-width: 1400px) {

    .container-xxl,
    .container-xl,
    .container-lg,
    .container-md,
    .container-sm,
    .container {
        max-width: 1140px;
    }
}

/* --- Buttons (old build base style + palette) ----------------------------- */

.btn {
    padding: 6px 15px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    border-radius: 3px;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--app-theme-color);
    --bs-btn-border-color: var(--app-theme-color);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--app-theme-color);
    --bs-btn-hover-border-color: var(--app-theme-color);
    --bs-btn-focus-shadow-rgb: 120, 67, 215;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--app-theme-color);
    --bs-btn-active-border-color: var(--app-theme-color);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--app-theme-color);
    --bs-btn-disabled-border-color: var(--app-theme-color);
}

.btn-secondary {
    --bs-btn-color: #482BD9;
    --bs-btn-bg: #fff;
    --bs-btn-border-color: #482BD9;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #482BD9;
    --bs-btn-hover-border-color: #482BD9;
    --bs-btn-focus-shadow-rgb: 81, 108, 122;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #516c7a;
    --bs-btn-active-border-color: #516c7a;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #516c7a;
    --bs-btn-disabled-border-color: #516c7a;
}

.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: #32ab13;
    --bs-btn-border-color: #32ab13;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #2c9610;
    --bs-btn-hover-border-color: #2c9610;
    --bs-btn-focus-shadow-rgb: 50, 171, 19;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #2c9610;
    --bs-btn-active-border-color: #2c9610;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #32ab13;
    --bs-btn-disabled-border-color: #32ab13;
}

.btn-info {
    --bs-btn-color: #fff;
    --bs-btn-bg: #198fed;
    --bs-btn-border-color: #198fed;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #127fd6;
    --bs-btn-hover-border-color: #127fd6;
    --bs-btn-focus-shadow-rgb: 25, 143, 237;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #127fd6;
    --bs-btn-active-border-color: #127fd6;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #198fed;
    --bs-btn-disabled-border-color: #198fed;
}

.btn-warning {
    --bs-btn-color: #212529;
    --bs-btn-bg: #ffc107;
    --bs-btn-border-color: #ffc107;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #e0a800;
    --bs-btn-hover-border-color: #d39e00;
    --bs-btn-focus-shadow-rgb: 255, 193, 7;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #e0a800;
    --bs-btn-active-border-color: #d39e00;
    --bs-btn-disabled-color: #212529;
    --bs-btn-disabled-bg: #ffc107;
    --bs-btn-disabled-border-color: #ffc107;
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: #940000;
    --bs-btn-border-color: #940000;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #940000;
    --bs-btn-hover-border-color: #940000;
    --bs-btn-focus-shadow-rgb: 148, 0, 0;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #940000;
    --bs-btn-active-border-color: #940000;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #940000;
    --bs-btn-disabled-border-color: #940000;
}

.btn-light {
    --bs-btn-color: #212529;
    --bs-btn-bg: #e5e8ea;
    --bs-btn-border-color: #e5e8ea;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #dcddde;
    --bs-btn-hover-border-color: #dcddde;
    --bs-btn-focus-shadow-rgb: 229, 232, 234;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #dcddde;
    --bs-btn-active-border-color: #dcddde;
    --bs-btn-disabled-color: #212529;
    --bs-btn-disabled-bg: #e5e8ea;
    --bs-btn-disabled-border-color: #e5e8ea;
}

.btn-dark {
    --bs-btn-color: #fff;
    --bs-btn-bg: #343a40;
    --bs-btn-border-color: #343a40;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #23272b;
    --bs-btn-hover-border-color: #1d2124;
    --bs-btn-focus-shadow-rgb: 82, 88, 93;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #23272b;
    --bs-btn-active-border-color: #1d2124;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #343a40;
    --bs-btn-disabled-border-color: #343a40;
}

.btn-outline-primary {
    --bs-btn-color: var(--app-theme-color);
    --bs-btn-border-color: var(--app-theme-color);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--app-theme-color);
    --bs-btn-hover-border-color: var(--app-theme-color);
    --bs-btn-focus-shadow-rgb: 120, 67, 215;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--app-theme-color);
    --bs-btn-active-border-color: var(--app-theme-color);
    --bs-btn-disabled-color: var(--app-theme-color);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--app-theme-color);
}

.btn-outline-secondary {
    --bs-btn-color: #5a7684;
    --bs-btn-border-color: #5a7684;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #5a7684;
    --bs-btn-hover-border-color: #5a7684;
    --bs-btn-focus-shadow-rgb: 81, 108, 122;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #5a7684;
    --bs-btn-active-border-color: #5a7684;
    --bs-btn-disabled-color: #5a7684;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #5a7684;
}

.btn-outline-success {
    --bs-btn-color: #32ab13;
    --bs-btn-border-color: #32ab13;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #32ab13;
    --bs-btn-hover-border-color: #32ab13;
    --bs-btn-focus-shadow-rgb: 50, 171, 19;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #32ab13;
    --bs-btn-active-border-color: #32ab13;
    --bs-btn-disabled-color: #32ab13;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #32ab13;
}

.btn-outline-info {
    --bs-btn-color: #198fed;
    --bs-btn-border-color: #198fed;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #198fed;
    --bs-btn-hover-border-color: #198fed;
    --bs-btn-focus-shadow-rgb: 25, 143, 237;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #198fed;
    --bs-btn-active-border-color: #198fed;
    --bs-btn-disabled-color: #198fed;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #198fed;
}

.btn-outline-warning {
    --bs-btn-color: #ffc107;
    --bs-btn-border-color: #ffc107;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #ffc107;
    --bs-btn-hover-border-color: #ffc107;
    --bs-btn-focus-shadow-rgb: 255, 193, 7;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #ffc107;
    --bs-btn-active-border-color: #ffc107;
    --bs-btn-disabled-color: #ffc107;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #ffc107;
}

.btn-outline-danger {
    --bs-btn-color: #f02769;
    --bs-btn-border-color: #f02769;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #f02769;
    --bs-btn-hover-border-color: #f02769;
    --bs-btn-focus-shadow-rgb: 240, 39, 105;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #f02769;
    --bs-btn-active-border-color: #f02769;
    --bs-btn-disabled-color: #f02769;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #f02769;
}

.btn-outline-light {
    --bs-btn-color: #f8f9fa;
    --bs-btn-border-color: #f8f9fa;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #f8f9fa;
    --bs-btn-hover-border-color: #f8f9fa;
    --bs-btn-focus-shadow-rgb: 248, 249, 250;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #f8f9fa;
    --bs-btn-active-border-color: #f8f9fa;
    --bs-btn-disabled-color: #f8f9fa;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #f8f9fa;
}

.btn-outline-dark {
    --bs-btn-color: #343a40;
    --bs-btn-border-color: #343a40;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #343a40;
    --bs-btn-hover-border-color: #343a40;
    --bs-btn-focus-shadow-rgb: 52, 58, 64;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #343a40;
    --bs-btn-active-border-color: #343a40;
    --bs-btn-disabled-color: #343a40;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #343a40;
}

.btn-link {
    --bs-btn-color: var(--app-theme-color);
    --bs-btn-hover-color: #0056b3;
    --bs-btn-active-color: #0056b3;
    --bs-btn-disabled-color: #5a7684;
}

/* --- Forms (old build form-control shell) --------------------------------- */

.form-control {
    height: calc(1.7em + 0.90rem + 2px);
    padding: 10px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    border: 1px solid #ced4da;
    border-radius: 6px;
    box-shadow: 0 0.1rem 0.7rem rgba(0, 0, 0, .10);
}

.form-control:focus {
    color: #495057;
    background-color: #fff;
    border-color: var(--app-theme-color);
    box-shadow: 0 0.1rem 0.7rem rgba(0, 0, 0, .10);
}

.form-control::placeholder {
    color: #6c757d;
    opacity: 1;
}

textarea.form-control {
    height: auto;
}

.form-select {
    font-size: 15px;
    color: #495057;
    border: 1px solid #ced4da;
    border-radius: 6px;
    box-shadow: 0 0.1rem 0.7rem rgba(0, 0, 0, .10);
}

.form-select:focus {
    border-color: var(--app-theme-color);
    box-shadow: 0 0.1rem 0.7rem rgba(0, 0, 0, .10);
}

.form-check-input:checked {
    background-color: var(--app-theme-color);
    border-color: var(--app-theme-color);
}

.form-check-input:focus {
    border-color: var(--app-theme-color);
    box-shadow: 0 0 0 0.25rem rgba(72, 43, 217, .25);
}

.input-group-text {
    color: #495057;
    background-color: #e9ecef;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}

/* --- Tables (old padding + no double header border) ----------------------- */

.table {
    --bs-table-color: #212529;
}

.table> :not(caption)>*>* {
    padding: 0.75rem;
}

.table thead th {
    vertical-align: bottom;
    border-bottom-width: 0;
}

/* --- Dropdowns (old build font size / item padding) ----------------------- */

.dropdown-menu {
    font-size: 1rem;
    color: #212529;
}

.dropdown-item {
    padding: 10px 10px;
    color: #212529;
}

.dropdown-item.active,
.dropdown-item:active {
    color: #fff;
    background-color: var(--app-theme-color);
}

/* --- Pagination (old build colors) ---------------------------------------- */

.pagination {
    --bs-pagination-padding-x: 0.95rem;
    --bs-pagination-padding-y: 0.6rem;
    --bs-pagination-color: var(--app-theme-color);
    --bs-pagination-bg: #fff;
    --bs-pagination-border-color: #eee5ff;
    --bs-pagination-hover-color: #0056b3;
    --bs-pagination-hover-bg: #eee5ff;
    --bs-pagination-hover-border-color: #eee5ff;
    --bs-pagination-focus-color: var(--app-theme-color);
    --bs-pagination-focus-bg: #eee5ff;
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: var(--app-theme-color);
    --bs-pagination-active-border-color: var(--app-theme-color);
    --bs-pagination-disabled-color: #5a7684;
    --bs-pagination-disabled-bg: #fff;
    --bs-pagination-disabled-border-color: #eee5ff;
}

.page-link {
    line-height: 1.25;
}

.page-link:focus {
    box-shadow: 0 0 0 0.2rem rgb(103 58 183 / 35%);
}

/* --- Nav pills (old build: underline style instead of filled) -------------- */

/* Old build: .nav-link had padding 0 (stock padding was commented out) */
.nav-link {
    padding: 0;
}

.nav-pills {
    /* Old build had the pill border-radius commented out: keep the active
       tab's bottom border perfectly square */
    --bs-nav-pills-border-radius: 0;
    --bs-nav-pills-link-active-color: var(--app-theme-color);
    --bs-nav-pills-link-active-bg: transparent;
}

.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
    color: var(--app-theme-color) !important;
    border-bottom: 4px solid var(--app-theme-color);
}

/* --- Misc components with theme color -------------------------------------- */

.alert-primary {
    --bs-alert-color: var(--app-theme-color);
    --bs-alert-bg: #e8e2f4;
    --bs-alert-border-color: #cfc6e0;
}

.alert-secondary {
    --bs-alert-color: #5a7684;
    --bs-alert-bg: #e6ebed;
}

.list-group {
    --bs-list-group-active-color: #fff;
    --bs-list-group-active-bg: var(--app-theme-color);
    --bs-list-group-active-border-color: var(--app-theme-color);
}

.progress,
.progress-stacked {
    --bs-progress-bar-bg: var(--app-theme-color);
}

.card {
    border-radius: 0.25rem;
}

.modal-content {
    border-radius: 0.3rem;
}

/* --- Color utilities (old palette; BS5.3 changed several of these) --------- */

.text-primary {
    color: var(--app-theme-color) !important;
}

a.text-primary:hover,
a.text-primary:focus {
    color: #0056b3 !important;
}

.text-secondary {
    color: #5a7684 !important;
}

.text-success {
    color: #32ab13 !important;
}

.text-info {
    color: #198fed !important;
}

.text-warning {
    color: #ffc107 !important;
}

.text-danger {
    color: #f02769 !important;
}

.text-light {
    color: #f8f9fa !important;
}

.text-dark {
    color: #343a40 !important;
}

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

.bg-primary {
    background-color: var(--app-theme-color) !important;
}

.bg-secondary {
    background-color: #5a7684 !important;
}

.bg-success {
    background-color: #32ab13 !important;
}

.bg-info {
    background-color: #198fed !important;
}

.bg-warning {
    background-color: #ffc107 !important;
}

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

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

.bg-dark {
    background-color: #343a40 !important;
}

.border-primary {
    border-color: var(--app-theme-color) !important;
}

.border-secondary {
    border-color: #5a7684 !important;
}

.border-success {
    border-color: #32ab13 !important;
}

.border-info {
    border-color: #198fed !important;
}

.border-warning {
    border-color: #ffc107 !important;
}

.border-danger {
    border-color: #f02769 !important;
}

.border-light {
    border-color: #f8f9fa !important;
}

.border-dark {
    border-color: #343a40 !important;
}
