:root {
    --bosch-border-radius: 1px;

    --red-bosch-color: #ed0007;
    --red-bosch-hover-color: #be0004;
    --green-bosch-color: #00884a;
    --green-bosch-hover-color: #219557;
    --blue-bosch-color: #007bc0;
    --blue-bosch-hover-color: #00629a;

    --input-background-color: #e0e2e5;
    --input-background-color-hover: #c1c7cc;
    --input-background-color-focus: #d1e4ff;

    --bosch-input-height: 48px;
    --bosch-input-height-sm: 30px;
    --bosch-checkbox-size: 18px;
    --bosch-checkbox-margin: 1em;
    --bosch-checkbox-font-size: 1.2em;

    --bosch-switch-width: 60px;
    --bosch-switch-height: 30px;

    --table-action-btn-size: 35px;
    --table-action-btn-sm-size: 28px;
}

/* Buttons */
.btn {
    border-radius: var(--bosch-border-radius) !important;
    height: var(--bosch-input-height);
    border: none !important;

    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
}
.btn:hover {
    border: none !important;
}

.btn-danger {
    background-color: var(--red-bosch-color) !important;
}
.btn-danger:hover {
    background-color: var(--red-bosch-hover-color) !important;
}

.btn-success {
    background-color: var(--green-bosch-color) !important;
}
.btn-success:hover {
    background-color: var(--green-bosch-hover-color) !important;
}
.btn-primary {
    background-color: var(--blue-bosch-color) !important;
}
.btn-primary:hover {
    background-color: var(--blue-bosch-hover-color) !important;
}

.btn-outline-danger {
    border: 1px solid var(--red-bosch-color) !important;
}
.btn-outline-danger:hover {
    border: 1px solid var(--red-bosch-hover-color) !important;
    background-color: var(--red-bosch-hover-color) !important;
}

.btn-outline-success {
    border: 1px solid var(--green-bosch-color) !important;
}
.btn-outline-success:hover {
    border: 1px solid var(--green-bosch-hover-color) !important;
    background-color: var(--green-bosch-hover-color) !important;
}

.btn-outline-primary {
    border: 1px solid var(--blue-bosch-color) !important;
    color: var(--blue-bosch-color) !important;
}
.btn-outline-primary.active {
    border: 1px solid var(--blue-bosch-color) !important;
    background-color: var(--blue-bosch-color) !important;
    color: white !important;
}
.btn-outline-primary:hover {
    border: 1px solid var(--blue-bosch-hover-color) !important;
    background-color: var(--blue-bosch-hover-color) !important;
    color: white !important;
}

.table-action-btn {
    display: flex;
    justify-content: center;
    align-items: center;

    width: var(--table-action-btn-size) !important;
    height: var(--table-action-btn-size) !important;
}

.table-action-btn-sm {
    display: flex;
    justify-content: center;
    align-items: center;

    width: var(--table-action-btn-sm-size) !important;
    height: var(--table-action-btn-sm-size) !important;
}

/* Forms */
label.form-label {
    text-align: left !important;
    width: 100% !important;
}

input[type=text].form-control,
input[type=file].form-control,
input[type=email].form-control,
input[type=date].form-control,
input[type=number].form-control,
input[type=date].form-control,
input[type=search].form-control,
input[type=tel].form-control,
input[type=range].form-control:focus,
select.form-select {
    height: var(--bosch-input-height) !important;
    line-height: 1.15 !important;
    color: black !important;
    padding: 10px 10px !important;

    border-radius: var(--bosch-border-radius) !important;
}

input[type=checkbox].form-control-check,
input[type=radio].form-control-check {
    height: var(--bosch-checkbox-size) !important;
    width: var(--bosch-checkbox-size) !important;
    border-radius: var(--bosch-border-radius) !important;
}

input[type=file].form-control {
    line-height: 2.5 !important;
}

input[type=text].form-control,
input[type=email].form-control,
input[type=date].form-control,
input[type=search].form-control,
input[type=number].form-control,
input[type=tel].form-control,
input[type=range].form-control,
textarea.form-control,
select.form-select {
    background-color: var(--input-background-color) !important;
    border: 0 !important;
    border-bottom: 1px solid black !important;
}

input[type=text].form-control:hover,
input[type=number].form-control:hover,
input[type=email].form-control:hover,
input[type=search].form-control:hover,
input[type=tel].form-control:hover,
input[type=range].form-control:hover,
textarea.form-control:hover,
select.form-select:hover {
    background-color: var(--input-background-color-hover);
}

input[type=text].form-control:focus,
input[type=email].form-control:focus,
input[type=number].form-control:focus,
input[type=email].form-control:focus,
input[type=search].form-control:focus,
input[type=tel].form-control:focus,
input[type=range].form-control:focus,
textarea.form-control:focus,
select.form-select:focus {
    background-color: var(--input-background-color-focus);
    border: 2px solid black;
}

input[type=search].form-control-sm {
    height: var(--bosch-input-height-sm) !important;
}

select.form-select option {
    background-color: white;
}

input[type=checkbox].form-check-input, input[type=radio].form-check-input {
    height: var(--bosch-checkbox-size) !important;
    width: var(--bosch-checkbox-size) !important;
}
input[type=checkbox].form-check-input + label.form-check-label, input[type=radio].form-check-input + label.form-check-label {
    margin-left: var(--bosch-checkbox-margin);
    font-size: var(--bosch-checkbox-font-size);
}
div.form-switch > input[type=checkbox].form-check-input, div.form-switch input[type=radio].form-check-input {
    width: var(--bosch-switch-width) !important;
    height: var(--bosch-switch-height) !important;
    border-radius: var(--bosch-border-radius) !important;
}
div.form-switch > label.form-check-label {
    margin-left: calc(var(--bosch-switch-width) - 10px) !important;
    font-weight: bold;
}

textarea.form-control {
    border-radius: var(--bosch-border-radius);
}

.input-group {
    align-items: end !important;
}

.input-group-text {
    display: flex;
    justify-content: center;
    align-items: center;

    height: var(--bosch-input-height) !important;
    width: var(--bosch-input-height) !important;
    border-radius: var(--bosch-border-radius) !important;
    background-color: var(--input-background-color-hover);

    border-bottom: 1px solid black;
}

/* Cards */
.card {
    border-radius: var(--bosch-border-radius);
}

/* Menu */
.nav-link {
    display: flex !important;
    justify-content: start !important;
    align-items: center !important;
    gap: 5px;
}

/* Tables */
table.table {
    border-collapse: collapse !important;
    line-height: 1.5 !important;
}

table.table tbody td {
    padding: 10px 10px;
    background-color: white !important;
}

table.table tr:hover td {
    --td-hover-bg-color: #eff1f2;

    background-color: var(--td-hover-bg-color) !important;
    color: black !important;
}

thead.thead-light th {
    --table-bg-color: white;
    --th-border-color: black;

    background-color: var(--table-bg-color) !important;
    font-weight: bold !important;
    color: black !important;

    border: 0 !important;
    border-bottom: 0.06rem solid var(--th-border-color) !important;
}

table:not(.horizontal-table):not(.table-bordered).table tbody td {
    --td-border-color: #979ea4;

    border: 0 !important;
    border-bottom: 0.06rem solid var(--td-border-color) !important;
}

/* Collapse */
a[data-bs-toggle="collapse"] {
    text-decoration: none;
}

/* Badges */
.badge {
    border-radius: var(--bosch-border-radius) !important;
}

.badge i {
    font-weight: bold;
}

/* Modals */
.modal-content {
    border-radius: var(--bosch-border-radius) !important;
}

/* Tabs */
ul.nav-tabs {
    border-bottom: none !important;
}

button[data-bs-toggle="tab"] {
    height: 100%;

    border-radius: var(--bosch-border-radius) !important;
    border: 1px solid #dee2e6 !important;

    color: var(--blue-bosch-color);
}

button[data-bs-toggle="tab"].active, button[data-bs-toggle="tab"]:hover {
    border-top: 3px solid var(--blue-bosch-color) !important;
}