/* E!A Comprehensive Color Override - Primary: #1c71d8 */

/* ============================================== */
/* BOOTSTRAP 5 CSS CUSTOM PROPERTIES (ROOT)      */
/* ============================================== */
:root,
[data-bs-theme=light] {
    /* Core primary color */
    --bs-primary: #1c71d8;
    --bs-primary-rgb: 28, 113, 216;
    
    /* Link colors */
    --bs-link-color: #1c71d8;
    --bs-link-color-rgb: 28, 113, 216;
    --bs-link-hover-color: #1860b8;
    --bs-link-hover-color-rgb: 24, 96, 184;
    
    /* Primary emphasis/subtle (for alerts, badges, etc.) */
    --bs-primary-text-emphasis: #114482;
    --bs-primary-bg-subtle: #ddeaf9;
    --bs-primary-border-subtle: #609ce4;
    
    /* Focus ring color */
    --bs-focus-ring-color: rgba(28, 113, 216, 0.25);
    
    /* E!A custom properties */
    --ea-primary: #1c71d8;
    --ea-primary-dark: #1860b8;
    --ea-primary-darker: #1555a2;
    --ea-primary-darkest: #114482;
    --ea-primary-light: #609ce4;
    --ea-primary-lighter: #8eb8ec;
    --ea-primary-very-light: #d2e3f7;
    --ea-primary-subtle: #ddeaf9;
    --ea-primary-rgb: 28, 113, 216;
}

/* Dark theme support */
[data-bs-theme=dark] {
    --bs-primary: #1c71d8;
    --bs-primary-rgb: 28, 113, 216;
    --bs-link-color: #609ce4;
    --bs-link-hover-color: #8eb8ec;
    --bs-link-color-rgb: 28, 113, 216;
    --bs-primary-text-emphasis: #609ce4;
    --bs-primary-bg-subtle: #114482;
    --bs-primary-border-subtle: #1860b8;
}

/* ============================================== */
/* BUTTONS - Primary                             */
/* ============================================== */
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #1c71d8;
    --bs-btn-border-color: #1c71d8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1860b8;
    --bs-btn-hover-border-color: #1860b8;
    --bs-btn-focus-shadow-rgb: 28, 113, 216;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1555a2;
    --bs-btn-active-border-color: #1555a2;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #1c71d8;
    --bs-btn-disabled-border-color: #1c71d8;
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #1860b8 !important;
    border-color: #1860b8 !important;
}

.btn-primary:active,
.btn-primary.active {
    background-color: #1555a2 !important;
    border-color: #1555a2 !important;
}

/* Outline Primary Button */
.btn-outline-primary {
    --bs-btn-color: #1c71d8;
    --bs-btn-border-color: #1c71d8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1c71d8;
    --bs-btn-hover-border-color: #1c71d8;
    --bs-btn-focus-shadow-rgb: 28, 113, 216;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1c71d8;
    --bs-btn-active-border-color: #1c71d8;
    --bs-btn-disabled-color: #1c71d8;
    --bs-btn-disabled-border-color: #1c71d8;
    color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:active {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
    color: #fff !important;
}

/* Success button (often used as primary action) */
.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: #1c71d8;
    --bs-btn-border-color: #1c71d8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1860b8;
    --bs-btn-hover-border-color: #1860b8;
    --bs-btn-focus-shadow-rgb: 28, 113, 216;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1555a2;
    --bs-btn-active-border-color: #1555a2;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #1c71d8;
    --bs-btn-disabled-border-color: #1c71d8;
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

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

.btn-outline-success {
    --bs-btn-color: #1c71d8;
    --bs-btn-border-color: #1c71d8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1c71d8;
    --bs-btn-hover-border-color: #1c71d8;
    --bs-btn-focus-shadow-rgb: 28, 113, 216;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1c71d8;
    --bs-btn-active-border-color: #1c71d8;
    --bs-btn-disabled-color: #1c71d8;
    --bs-btn-disabled-border-color: #1c71d8;
}

/* ============================================== */
/* LINKS                                         */
/* ============================================== */
a {
    color: #1c71d8;
}

a:hover,
a:focus {
    color: #1860b8;
}

.link-primary {
    color: #1c71d8 !important;
}

.link-primary:hover,
.link-primary:focus {
    color: #1860b8 !important;
}

/* ============================================== */
/* FORM ELEMENTS                                 */
/* ============================================== */
.form-control:focus,
.form-select:focus {
    border-color: #609ce4 !important;
    box-shadow: 0 0 0 0.25rem rgba(28, 113, 216, 0.25) !important;
}

/* Checkboxes and Radios */
.form-check-input:checked {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

.form-check-input:focus {
    border-color: #609ce4 !important;
    box-shadow: 0 0 0 0.25rem rgba(28, 113, 216, 0.25) !important;
}

.form-check-input[type=checkbox]:indeterminate {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

/* Form Switch */
.form-switch .form-check-input:focus {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#609ce4'/%3e%3c/svg%3e");
}

/* Form Range */
.form-range::-webkit-slider-thumb {
    background-color: #1c71d8 !important;
}

.form-range::-moz-range-thumb {
    background-color: #1c71d8 !important;
}

.form-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(28, 113, 216, 0.25) !important;
}

.form-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(28, 113, 216, 0.25) !important;
}

/* ============================================== */
/* NAVIGATION                                    */
/* ============================================== */

/* Nav Links */
.nav-link {
    color: #1c71d8;
}

.nav-link:hover,
.nav-link:focus {
    color: #1860b8;
}

.nav-link:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(28, 113, 216, 0.25);
}

/* Nav Pills */
.nav-pills {
    --bs-nav-pills-link-active-bg: #1c71d8;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: #1c71d8 !important;
    color: #fff !important;
}

/* Nav Tabs */
.nav-tabs .nav-link.active {
    color: #1555a2;
}

/* Nav Underline */
.nav-underline .nav-link.active {
    color: #1555a2;
}

/* ============================================== */
/* DROPDOWNS                                     */
/* ============================================== */
.dropdown-menu {
    --bs-dropdown-link-active-bg: #1c71d8;
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: #1c71d8 !important;
    color: #fff !important;
}

/* ============================================== */
/* PAGINATION                                    */
/* ============================================== */
.pagination {
    --bs-pagination-active-bg: #1c71d8;
    --bs-pagination-active-border-color: #1c71d8;
}

.page-link:focus {
    box-shadow: 0 0 0 0.25rem rgba(28, 113, 216, 0.25);
}

.page-item.active .page-link {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

/* ============================================== */
/* LIST GROUPS                                   */
/* ============================================== */
.list-group {
    --bs-list-group-active-bg: #1c71d8;
    --bs-list-group-active-border-color: #1c71d8;
}

.list-group-item.active {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

.list-group-item-primary {
    --bs-list-group-color: #114482;
    --bs-list-group-bg: #ddeaf9;
    --bs-list-group-border-color: #609ce4;
}

/* ============================================== */
/* PROGRESS BARS                                 */
/* ============================================== */
.progress,
.progress-stacked {
    --bs-progress-bar-bg: #1c71d8;
}

.progress-bar {
    background-color: #1c71d8 !important;
}

/* ============================================== */
/* BADGES                                        */
/* ============================================== */
.badge.bg-primary {
    background-color: #1c71d8 !important;
}

.badge.text-bg-primary {
    background-color: #1c71d8 !important;
    color: #fff !important;
}

/* ============================================== */
/* ALERTS                                        */
/* ============================================== */
.alert-primary {
    --bs-alert-color: #114482;
    --bs-alert-bg: #ddeaf9;
    --bs-alert-border-color: #609ce4;
    --bs-alert-link-color: #114482;
}

.alert-success {
    --bs-alert-color: #114482;
    --bs-alert-bg: #ddeaf9;
    --bs-alert-border-color: #609ce4;
    --bs-alert-link-color: #114482;
}

/* ============================================== */
/* TABLES                                        */
/* ============================================== */
.table-primary {
    --bs-table-bg: #ddeaf9;
    --bs-table-border-color: #609ce4;
}

/* ============================================== */
/* ACCORDION                                     */
/* ============================================== */
.accordion {
    --bs-accordion-active-color: #114482;
    --bs-accordion-active-bg: #ddeaf9;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(28, 113, 216, 0.25);
}

.accordion-button:not(.collapsed) {
    color: #114482;
    background-color: #ddeaf9;
}

/* ============================================== */
/* CARDS                                         */
/* ============================================== */
.card.border-primary {
    border-color: #1c71d8 !important;
}

.card.selected,
.card.active {
    border-color: #1c71d8 !important;
    border-width: 2px !important;
    background-color: #d2e3f7 !important;
}

.card.selected .card-title,
.card.selected .card-text,
.card.active .card-title,
.card.active .card-text {
    color: #1555a2 !important;
}

/* ============================================== */
/* TEXT UTILITIES                                */
/* ============================================== */
.text-primary {
    color: #1c71d8 !important;
}

.text-bg-primary {
    background-color: #1c71d8 !important;
    color: #fff !important;
}

/* ============================================== */
/* BACKGROUND UTILITIES                          */
/* ============================================== */
.bg-primary {
    background-color: #1c71d8 !important;
}

.bg-primary-subtle {
    background-color: #ddeaf9 !important;
}

/* ============================================== */
/* BORDER UTILITIES                              */
/* ============================================== */
.border-primary {
    border-color: #1c71d8 !important;
}

.border-primary-subtle {
    border-color: #609ce4 !important;
}

/* ============================================== */
/* FOCUS RING                                    */
/* ============================================== */
.focus-ring-primary {
    --bs-focus-ring-color: rgba(28, 113, 216, 0.25);
}

/* ============================================== */
/* SPINNERS                                      */
/* ============================================== */
.spinner-border.text-primary,
.spinner-grow.text-primary {
    color: #1c71d8 !important;
}

/* ============================================== */
/* CLOSE BUTTON FOCUS                            */
/* ============================================== */
.btn-close:focus {
    box-shadow: 0 0 0 0.25rem rgba(28, 113, 216, 0.25);
}

/* ============================================== */
/* E!A HEADER / NAVBAR                           */
/* ============================================== */
#header,
.navbar-dark,
.navbar-dark .navbar-brand,
.bg-primary.navbar {
    background-color: #1c71d8 !important;
}

#header #header-menu .nav-item.active,
#header .nav-item.active {
    background: #1860b8 !important;
}

#header .nav-link,
#header .navbar-nav .nav-link,
.navbar-dark .nav-link {
    color: rgba(255, 255, 255, 0.85) !important;
    transition: none !important;
}

#header .nav-link:hover,
#header .nav-link:focus,
#header .navbar-nav .nav-link:hover,
#header .navbar-nav .nav-link:focus,
.navbar-dark .nav-link:hover,
.navbar-dark .nav-link:focus {
    color: #fff !important;
    background-color: #1860b8 !important;
}

#header .nav-link.active,
#header .navbar-nav .nav-link.active,
.navbar-dark .nav-link.active {
    color: #fff !important;
}

#header .navbar-text,
#header .dropdown-toggle,
#header .user-name,
#header .nav-item.dropdown > .nav-link,
.navbar-dark .navbar-text,
.navbar-dark .dropdown-toggle {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
}

#header .nav-item.dropdown > .nav-link:hover,
#header .nav-item.dropdown > .nav-link:focus,
#header .dropdown-toggle:hover,
#header .dropdown-toggle:focus {
    background-color: #1860b8 !important;
    border-color: #1860b8 !important;
}

/* ============================================== */
/* E!A BACKEND FILTER/LIST                       */
/* ============================================== */
.backend-page .filter-records .results .entry.selected {
    border-right: 5px solid #1c71d8 !important;
}

.backend-page .filter-records .results .entry:hover {
    border-right-color: #609ce4 !important;
}

/* ============================================== */
/* E!A BOOKING WIZARD                            */
/* ============================================== */
#book-appointment-wizard .book-step {
    background-color: #609ce4 !important;
    border-color: #1c71d8 !important;
}

#book-appointment-wizard .book-step strong {
    color: #1555a2 !important;
}

#book-appointment-wizard .active-step {
    background-color: #1c71d8 !important;
    border-color: #1860b8 !important;
}

#book-appointment-wizard .active-step strong {
    color: #fff !important;
}

#book-appointment-wizard #company-name .display-booking-selection {
    color: #1c71d8 !important;
}

/* Available Hours */
#book-appointment-wizard #available-hours .selected-hour {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
    color: #fff !important;
}

#book-appointment-wizard #available-hours .available-hour:hover {
    background-color: #d2e3f7 !important;
    border-color: #1c71d8 !important;
}

/* ============================================== */
/* FLATPICKR CALENDAR                            */
/* ============================================== */
.flatpickr-calendar .flatpickr-months {
    background: #1c71d8 !important;
}

.flatpickr-calendar .flatpickr-current-month {
    color: #fff !important;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar .flatpickr-months .flatpickr-month,
.flatpickr-calendar .flatpickr-weekdays,
.flatpickr-calendar span.flatpickr-weekday {
    background: #1c71d8 !important;
    color: #fff !important;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
    background: #1860b8 !important;
}

.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar .flatpickr-day.selected:focus,
.flatpickr-calendar .flatpickr-day.selected.inRange,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.startRange:hover,
.flatpickr-calendar .flatpickr-day.startRange:focus,
.flatpickr-calendar .flatpickr-day.endRange,
.flatpickr-calendar .flatpickr-day.endRange:hover,
.flatpickr-calendar .flatpickr-day.endRange:focus {
    background: #1c71d8 !important;
    border-color: #1c71d8 !important;
    color: #fff !important;
}

.flatpickr-calendar .flatpickr-day.inRange {
    background: #d2e3f7 !important;
    border-color: #d2e3f7 !important;
    color: #1555a2 !important;
}

.flatpickr-calendar .flatpickr-day.today {
    border-color: #1c71d8 !important;
}

.flatpickr-calendar .flatpickr-day.today:hover {
    background: #d2e3f7 !important;
    border-color: #1c71d8 !important;
}

.flatpickr-calendar .flatpickr-months .flatpickr-prev-month,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month {
    color: #fff !important;
    fill: #fff !important;
}

.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover svg {
    fill: #d2e3f7 !important;
}

/* ============================================== */
/* JQUERY UI DATEPICKER (Backend)                */
/* ============================================== */
.ui-datepicker .ui-datepicker-current-day,
.ui-datepicker .ui-state-active {
    background-color: #1c71d8 !important;
    color: #fff !important;
}

.ui-datepicker .ui-state-hover {
    background-color: #d2e3f7 !important;
}

.ui-datepicker .ui-datepicker-header {
    background-color: #1c71d8 !important;
    color: #fff !important;
}

/* ============================================== */
/* FULLCALENDAR (Backend)                        */
/* ============================================== */
.fc .fc-button-primary {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

.fc .fc-button-primary:hover {
    background-color: #1860b8 !important;
    border-color: #1860b8 !important;
}

.fc .fc-button-primary:disabled {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    background-color: #1555a2 !important;
    border-color: #1555a2 !important;
}

.fc .fc-daygrid-day.fc-day-today {
    background-color: #d2e3f7 !important;
}

.fc-event,
.fc-event-dot {
    background-color: #1c71d8 !important;
    border-color: #1c71d8 !important;
}

/* ============================================== */
/* TOASTR NOTIFICATIONS                          */
/* ============================================== */
.toast-success {
    background-color: #1c71d8 !important;
}

/* ============================================== */
/* MISC E!A ELEMENTS                             */
/* ============================================== */
.working-plan-exception-item.selected {
    background-color: #d2e3f7 !important;
    border-color: #1c71d8 !important;
}

.appointment-row.selected {
    background-color: #d2e3f7 !important;
}

#select-service .service-card.selected,
#select-provider .provider-card.selected {
    border-color: #1c71d8 !important;
    background-color: #d2e3f7 !important;
}

