:root {
    /* ===== Colors ===== */
    --color-primary-light: #FFC800;
    --color-primary: #FFB300;
    --color-primary-dark: #E69900;
    --color-secondary-light: #0066CC;
    --color-secondary: #0059B3;
    --color-secondary-dark: #004C99;
    --color-white: #FDFDFD;
    --color-black: #020202;
    --color-gray-lighter: #F2F2F2;
    --color-gray-light: #D9D9D9;
    --color-gray-normal: #BFBFBF;
    --color-gray-dark: #A6A6A6;
    --color-gray-darker: #808080;
    --color-gray-darkest: #5A5A5A;
    --color-castell-d: #B3E6BF;
    --color-castell-d-dark: #59A66C;
    --color-castell-c: #F5E7A3;
    --color-castell-c-dark: #EAD157;
    --color-castell-if: #FAD1D1;
    --color-castell-if-dark: #D65C5C;
    --color-castell-id: #E6E6E6;
    --color-castell-id-dark: #999999;

    /* ===== Fonts ===== */
    --font-title: 'Plus Jakarta Sans', sans-serif;
    --font-body: 'Roboto', sans-serif;

    /* ===== Shadows ===== */
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-footer: 0 -1px 2px 0 rgb(0 0 0 / 0.03);
}

* {
    --bs-body-color: var(--color-black);
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    font-family: var(--font-body), sans-serif;
    font-weight: 300;
    color: var(--color-black);
}

.form-control {
    font-weight: 300;
}

a {
    text-underline-offset: 2px;
}

b, strong {
    font-weight: 500;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-title), sans-serif;
    font-weight: 600;
}

.bg-white {
    background-color: var(--color-white);
}

.bg-black {
    background-color: var(--color-black);
}

.bg-gray-lighter {
    background-color: var(--color-gray-lighter);
}

.bg-gray-light {
    background-color: var(--color-gray-light);
}

.bg-gray-normal {
    background-color: var(--color-gray-normal);
}

.bg-gray-dark {
    background-color: var(--color-gray-dark);
}

.bg-gray-darker {
    background-color: var(--color-gray-darker);
}

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

.bg-secondary {
    background-color: var(--color-secondary) !important;
}

.text-white {
    color: var(--color-white);
}

.text-black {
    color: var(--color-black);
}

.text-gray-dark {
    color: var(--color-gray-dark);
}

.text-gray-darker {
    color: var(--color-gray-darker);
}

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

.text-secondary {
    color: var(--color-secondary) !important;
}

.text-muted {
    --bs-secondary-color: var(--color-gray-darker);
}

.text-result-d {
    color: var(--color-castell-d-dark);
}

.text-result-c {
    color: var(--color-castell-c-dark);
}

.text-result-if {
    color: var(--color-castell-if-dark);
}

.text-result-id {
    color: var(--color-castell-id-dark);
}

.btn {
    --bs-btn-font-weight: 400;
    --bs-btn-border-radius: 0.75rem;

    &.btn-sm {
        --bs-btn-border-radius: 0.25rem;
    }
}

.btn-primary {
    --bs-btn-color: var(--color-white);
    --bs-btn-bg: var(--color-primary);
    --bs-btn-border-color: var(--color-primary);
    --bs-btn-hover-color: var(--color-white);
    --bs-btn-hover-bg: var(--color-primary-dark);
    --bs-btn-hover-border-color: var(--color-primary-dark);
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--color-white);
    --bs-btn-active-bg: var(--color-primary);
    --bs-btn-active-border-color: var(--color-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--color-white);
    --bs-btn-disabled-bg: var(--color-gray-dark);
    --bs-btn-disabled-border-color: var(--color-gray-dark);
}

.btn-secondary {
    --bs-btn-color: var(--color-white);
    --bs-btn-bg: var(--color-secondary);
    --bs-btn-border-color: var(--color-secondary);
    --bs-btn-hover-color: var(--color-white);
    --bs-btn-hover-bg: var(--color-secondary-dark);
    --bs-btn-hover-border-color: var(--color-secondary-dark);
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--color-white);
    --bs-btn-active-bg: var(--color-secondary);
    --bs-btn-active-border-color: var(--color-secondary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--color-white);
    --bs-btn-disabled-bg: var(--color-gray-dark);
    --bs-btn-disabled-border-color: var(--color-gray-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--color-primary);
    --bs-btn-border-color: var(--color-primary);
    --bs-btn-hover-color: var(--color-white);
    --bs-btn-hover-bg: var(--color-primary);
    --bs-btn-hover-border-color: var(--color-primary);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--color-white);
    --bs-btn-active-bg: var(--color-primary);
    --bs-btn-active-border-color: var(--color-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--color-gray-darker);
    --bs-btn-disabled-border-color: var(--color-gray-darker);
}

.btn-outline-secondary {
    --bs-btn-color: var(--color-secondary);
    --bs-btn-border-color: var(--color-secondary);
    --bs-btn-hover-color: var(--color-white);
    --bs-btn-hover-bg: var(--color-secondary);
    --bs-btn-hover-border-color: var(--color-secondary);
    --bs-btn-focus-shadow-rgb: 108, 117, 125;
    --bs-btn-active-color: var(--color-white);
    --bs-btn-active-bg: var(--color-secondary);
    --bs-btn-active-border-color: var(--color-secondary);
    --bs-btn-disabled-color: var(--color-gray-darker);
    --bs-btn-disabled-border-color: var(--color-gray-darker);
}

.list-group {
    --bs-list-group-color: var(--color-black);
    --bs-list-group-border-color: var(--color-gray-light);
    --bs-list-group-border-radius: 0.75rem;
    --bs-list-group-active-bg: var(--color-primary);
    --bs-list-group-active-border-color: var(--color-primary);

    &.radio-list {
        li {
            padding: 0 !important;

            > label {
                cursor: pointer;
                padding: 0.5rem 1rem;

                &:hover {
                    background-color: var(--color-gray-lighter);
                }
            }
        }
    }
}

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

.rounded-lg {
    border-radius: 0.5rem;
}

.rounded-xl {
    border-radius: 0.75rem;
}

.shadow-md {
    box-shadow: var(--shadow-md);
}

.shadow-sm {
    box-shadow: var(--shadow-sm);
}

.shadow-xs {
    box-shadow: var(--shadow-xs);
}

a.badge {
    text-decoration: none;

    &:hover {
        text-decoration: underline;
    }
}

.badge {
    --bs-badge-font-size: 0.8rem;
    --bs-badge-font-weight: 400;
    --bs-badge-color: var(--color-white);
    letter-spacing: 0.025em;
}

.btn.btn-with-icon,
.alert.alert-with-icon {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.5rem;

    svg {
        margin-top: 0.15em;
        font-size: 1.15em;
        flex-shrink: 0;
    }
}

.tooltip-nowrap .tooltip-inner {
    white-space: nowrap;
    max-width: unset;
}

.edicio-table-wrapper {
    --edicio-table-border-radius: 0.5rem;
    width: 100%;
    overflow-x: auto;

    .edicio-table {
        border-collapse: collapse;
        font-size: 0.9rem;

        > thead {
            tr {
                th {
                    &:not(:first-child) {
                        background-color: var(--color-gray-light);
                        color: var(--color-gray-darkest);
                        font-weight: 600;
                        text-align: center;
                        padding: 0.5rem 0.75rem;
                        font-size: 0.8rem;
                        text-transform: uppercase;
                    }

                    &:nth-of-type(2) {
                        border-top-left-radius: var(--edicio-table-border-radius);
                    }

                    &:last-of-type {
                        border-top-right-radius: var(--edicio-table-border-radius);
                    }
                }
            }
        }

        > tbody {
            tr {
                background-color: var(--color-white);

                td {
                    font-weight: 300;
                    padding: 0.5rem 0.75rem;
                    text-align: center;
                    color: var(--color-gray-darkest);
                    border-bottom: 1px solid var(--color-gray-light);

                    &:first-child {
                        width: fit-content;
                        text-align: left;
                        padding-right: 1.5rem;
                    }

                    &.castell-cell {
                        white-space: nowrap;

                        &.castell-cell-clickable {
                            cursor: pointer;

                            &:hover {
                                background-color: var(--color-gray-lighter);
                            }

                            &.selected {
                                background-color: var(--color-primary-light);
                                color: var(--color-white);
                            }
                        }
                    }
                }

                &:first-child {
                    td:first-child {
                        border-top-left-radius: var(--edicio-table-border-radius);
                    }
                }

                &:last-child {
                    td {
                        border-bottom: none;

                        &:first-child {
                            border-bottom-left-radius: var(--edicio-table-border-radius);
                        }

                        &:last-child {
                            border-bottom-right-radius: var(--edicio-table-border-radius);
                        }
                    }
                }
            }
        }
    }
}

main .dropdown-menu {
    --bs-dropdown-link-active-color: var(--color-white);
    --bs-dropdown-link-active-bg: var(--color-primary);

    &.dropdown-menu-secondary {
        --bs-dropdown-link-active-bg: var(--color-secondary);
    }

    .dropdown-item {
        font-weight: 300;
    }
}
