/*
 * Theme layer. Loaded after bootstrap.css and before the per-company tokens
 * that partials/head.ejs writes into :root, so everything here follows the
 * colour the super-admin picked under Company Profile.
 *
 * Semantic colours (danger, warning, success) are deliberately left alone —
 * a red delete button should stay red whatever the brand colour is.
 */

body {
    font-family: var(--bs-font-sans-serif);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 700;
    letter-spacing: -0.015em;
}

/* ------------------------------------------------------------------ banner */
.head-banner-bg {
    background-color: var(--brand-primary, #151A21);
    color: var(--brand-on-primary, #fff);
}

/* Views ask for white banner text; honour the readable colour instead so a
   light brand colour does not produce white-on-white. */
.head-banner-bg .text-white {
    color: var(--brand-on-primary, #fff) !important;
}

/* ----------------------------------------------------------------- buttons */
.btn {
    border-radius: 0.5rem;
    font-weight: 600;
}

.btn-sm {
    border-radius: 0.4rem;
}

.btn-primary {
    --bs-btn-color: var(--brand-on-primary);
    --bs-btn-bg: var(--brand-primary);
    --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-color: var(--brand-on-primary);
    --bs-btn-hover-bg: var(--brand-hover);
    --bs-btn-hover-border-color: var(--brand-hover);
    --bs-btn-focus-shadow-rgb: var(--brand-primary-rgb);
    --bs-btn-active-color: var(--brand-on-primary);
    --bs-btn-active-bg: var(--brand-active);
    --bs-btn-active-border-color: var(--brand-active);
    --bs-btn-disabled-color: var(--brand-on-primary);
    --bs-btn-disabled-bg: var(--brand-primary);
    --bs-btn-disabled-border-color: var(--brand-primary);
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-primary);
    --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-color: var(--brand-on-primary);
    --bs-btn-hover-bg: var(--brand-primary);
    --bs-btn-hover-border-color: var(--brand-primary);
    --bs-btn-focus-shadow-rgb: var(--brand-primary-rgb);
    --bs-btn-active-color: var(--brand-on-primary);
    --bs-btn-active-bg: var(--brand-primary);
    --bs-btn-active-border-color: var(--brand-primary);
    --bs-btn-disabled-color: var(--brand-primary);
    --bs-btn-disabled-border-color: var(--brand-primary);
}

/* ------------------------------------------------------------------- forms */
.form-control,
.form-select {
    border-radius: 0.5rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--brand-primary, #151A21);
    box-shadow: 0 0 0 0.2rem rgba(var(--brand-primary-rgb, 21, 26, 33), 0.2);
}

.form-check-input:checked {
    background-color: var(--brand-primary, #151A21);
    border-color: var(--brand-primary, #151A21);
}

.form-check-input:focus {
    border-color: var(--brand-primary, #151A21);
    box-shadow: 0 0 0 0.2rem rgba(var(--brand-primary-rgb, 21, 26, 33), 0.2);
}

.form-group.required .form-label:after {
    content: "*";
    color: red;
}

/* ----------------------------------------------------------------- accents */
.text-primary {
    color: var(--brand-primary, #151A21) !important;
}

.bg-primary {
    background-color: var(--brand-primary, #151A21) !important;
    color: var(--brand-on-primary, #fff);
}

.badge.bg-primary {
    color: var(--brand-on-primary, #fff);
}

.nav-tabs .nav-link.active {
    color: var(--brand-primary, #151A21);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--brand-primary, #151A21);
    color: var(--brand-on-primary, #fff);
}

.list-group-item.active {
    background-color: var(--brand-primary, #151A21);
    border-color: var(--brand-primary, #151A21);
    color: var(--brand-on-primary, #fff);
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--brand-primary, #151A21);
    color: var(--brand-on-primary, #fff);
}

.progress-bar {
    background-color: var(--brand-primary, #151A21);
}

.card {
    border-radius: 0.75rem;
}

/* -------------------------------------------------------------- DataTables */
/* Keep the grid inside its container. A table that is still too wide scrolls
   within its own row, so the length, search, info and paging controls stay
   where they are instead of being pushed out of view. */
.dt-container {
    max-width: 100%;
}

.dt-container .dt-layout-table {
    overflow-x: auto;
}

table.dataTable {
    max-width: 100%;
}

/* DataTables sets `color: inherit !important` on paging buttons under
   `div.dt-container ...`, so the selectors below have to match that shape or
   the active page number ends up dark-on-dark. */
div.dt-container .dt-paging .dt-paging-button.current,
div.dt-container .dt-paging .dt-paging-button.current:hover {
    background: var(--brand-primary, #151A21) !important;
    border: 1px solid var(--brand-primary, #151A21) !important;
    color: var(--brand-on-primary, #fff) !important;
    font-weight: 700;
}

div.dt-container .dt-paging .dt-paging-button {
    border-radius: 0.375rem;
}

div.dt-container .dt-paging .dt-paging-button:hover:not(.current):not(.disabled) {
    background: rgba(var(--brand-primary-rgb, 21, 26, 33), 0.08) !important;
    border: 1px solid transparent !important;
    color: var(--brand-primary, #151A21) !important;
}

div.dt-container .dt-paging .dt-paging-button.disabled {
    color: #adb5bd !important;
}

[v-cloak] {
    display: none;
}
