/**
 * Theme Overrides
 * 
 * Ensures Bootstrap components properly use theme CSS variables.
 * This file is loaded AFTER themes to apply proper overrides.
 */

/* -----------------------------------------------------------------------------
   FORMS - Light Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-light .form-control,
.theme-light .form-select {
    background-color: var(--input-bg);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
}

.theme-light .form-control:focus,
.theme-light .form-select:focus {
    background-color: var(--input-focus-bg);
    border-color: var(--input-focus-border);
    box-shadow: var(--input-focus-shadow);
}

.theme-light .form-control:disabled,
.theme-light .form-select:disabled {
    background-color: var(--input-disabled-bg);
    color: var(--input-disabled-text);
}

.theme-light .form-control::placeholder {
    color: var(--input-placeholder);
}

/* Form check inputs */
.theme-light .form-check-input {
    background-color: #ffffff;
    border: 2px solid var(--border-color-dark);
}

.theme-light .form-check-input:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

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

.theme-light .form-check-input:disabled {
    background-color: var(--input-disabled-bg);
    border-color: var(--border-color);
    opacity: 0.5;
}

.theme-light .form-check-input:checked:disabled {
    background-color: var(--color-primary);
    opacity: 0.5;
}

/* -----------------------------------------------------------------------------
   BUTTONS - Light Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-light .btn-primary {
    background-color: var(--btn-primary-bg);
    border-color: var(--btn-primary-border);
    color: var(--btn-primary-text);
}

.theme-light .btn-primary:hover,
.theme-light .btn-primary:focus,
.theme-light .btn-primary:active {
    background-color: var(--btn-primary-hover-bg);
    border-color: var(--btn-primary-hover-border);
    color: var(--btn-primary-text);
}

.theme-light .btn-secondary {
    background-color: var(--btn-secondary-bg);
    border-color: var(--btn-secondary-border);
    color: var(--btn-secondary-text);
}

.theme-light .btn-secondary:hover,
.theme-light .btn-secondary:focus,
.theme-light .btn-secondary:active {
    background-color: var(--btn-secondary-hover-bg);
    border-color: var(--btn-secondary-hover-border);
    color: var(--btn-secondary-text);
}

.theme-light .btn-outline-primary {
    border-color: var(--btn-outline-border);
    color: var(--btn-outline-text);
    background-color: transparent;
}

.theme-light .btn-outline-primary:hover,
.theme-light .btn-outline-primary:focus,
.theme-light .btn-outline-primary:active {
    background-color: var(--btn-outline-hover-bg);
    border-color: var(--btn-outline-border);
    color: var(--btn-outline-hover-text);
}

.theme-light .btn-outline-secondary {
    border-color: var(--border-color);
    color: var(--text-primary);
    background-color: transparent;
}

.theme-light .btn-outline-secondary:hover,
.theme-light .btn-outline-secondary:focus,
.theme-light .btn-outline-secondary:active {
    background-color: var(--bg-surface);
    border-color: var(--border-color-dark);
    color: var(--text-primary);
}

.theme-light .btn-outline-light {
    border-color: var(--border-color);
    color: var(--text-primary);
    background-color: transparent;
}

.theme-light .btn-outline-light:hover,
.theme-light .btn-outline-light:focus,
.theme-light .btn-outline-light:active {
    background-color: var(--bg-surface);
    border-color: var(--border-color-dark);
    color: var(--text-primary);
}

/* Danger button */
.theme-light .btn-danger {
    background-color: var(--color-danger);
    border-color: var(--color-danger);
    color: #ffffff;
}

.theme-light .btn-danger:hover,
.theme-light .btn-danger:focus,
.theme-light .btn-danger:active {
    background-color: var(--color-danger-hover);
    border-color: var(--color-danger-hover);
    color: #ffffff;
}

/* Success button */
.theme-light .btn-success {
    background-color: var(--color-success);
    border-color: var(--color-success);
    color: #ffffff;
}

.theme-light .btn-success:hover,
.theme-light .btn-success:focus,
.theme-light .btn-success:active {
    background-color: var(--color-success-hover);
    border-color: var(--color-success-hover);
    color: #ffffff;
}

/* Info button */
.theme-light .btn-info {
    background-color: var(--color-info);
    border-color: var(--color-info);
    color: #000000;
}

.theme-light .btn-info:hover,
.theme-light .btn-info:focus,
.theme-light .btn-info:active {
    background-color: var(--color-info-hover);
    border-color: var(--color-info-hover);
    color: #000000;
}

/* Warning button */
.theme-light .btn-warning {
    background-color: var(--color-warning);
    border-color: var(--color-warning);
    color: #000000;
}

.theme-light .btn-warning:hover,
.theme-light .btn-warning:focus,
.theme-light .btn-warning:active {
    background-color: var(--color-warning-hover);
    border-color: var(--color-warning-hover);
    color: #000000;
}

/* -----------------------------------------------------------------------------
   CARDS
   ----------------------------------------------------------------------------- */
.theme-light .card {
    background-color: var(--bg-card);
    border-color: var(--border-color);
}

.theme-light .card-header {
    background-color: var(--bg-card-header);
    border-bottom-color: var(--border-color);
}

.theme-light .card-footer {
    background-color: var(--bg-card-header);
    border-top-color: var(--border-color);
}

/* -----------------------------------------------------------------------------
   TABLES
   ----------------------------------------------------------------------------- */
.theme-light .table {
    color: var(--text-primary);
    border-color: var(--table-border);
}

.theme-light .table > :not(caption) > * > * {
    border-bottom-color: var(--table-border);
}

.theme-light .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--table-stripe-bg);
}

.theme-light .table-hover > tbody > tr:hover > * {
    background-color: var(--table-hover-bg);
}

.theme-light .table thead {
    border-bottom: 2px solid var(--table-border);
}

/* -----------------------------------------------------------------------------
   MODALS
   ----------------------------------------------------------------------------- */
.theme-light .modal-content {
    background-color: var(--modal-bg);
    border-color: var(--modal-border);
}

.theme-light .modal-header {
    background-color: var(--modal-header-bg);
    border-bottom-color: var(--modal-header-border);
}

.theme-light .modal-footer {
    background-color: var(--modal-footer-bg);
    border-top-color: var(--modal-footer-border);
}

/* -----------------------------------------------------------------------------
   PAGINATION
   ----------------------------------------------------------------------------- */
.theme-light .page-link {
    background-color: var(--pagination-bg);
    border-color: var(--pagination-border);
    color: var(--pagination-text);
}

.theme-light .page-link:hover {
    background-color: var(--pagination-hover-bg);
    color: var(--pagination-hover-text);
    border-color: var(--pagination-border);
}

.theme-light .page-item.active .page-link {
    background-color: var(--pagination-active-bg);
    border-color: var(--pagination-active-bg);
    color: var(--pagination-active-text);
}

.theme-light .page-item.disabled .page-link {
    background-color: var(--pagination-disabled-bg);
    color: var(--pagination-disabled-text);
    border-color: var(--pagination-border);
}

/* -----------------------------------------------------------------------------
   ALERTS
   ----------------------------------------------------------------------------- */
.theme-light .alert-success {
    background-color: var(--alert-success-bg);
    border-color: var(--alert-success-border);
    color: var(--alert-success-text);
}

.theme-light .alert-danger {
    background-color: var(--alert-danger-bg);
    border-color: var(--alert-danger-border);
    color: var(--alert-danger-text);
}

.theme-light .alert-warning {
    background-color: var(--alert-warning-bg);
    border-color: var(--alert-warning-border);
    color: var(--alert-warning-text);
}

.theme-light .alert-info {
    background-color: var(--alert-info-bg);
    border-color: var(--alert-info-border);
    color: var(--alert-info-text);
}

/* -----------------------------------------------------------------------------
   BADGES
   ----------------------------------------------------------------------------- */
.theme-light .badge {
    background-color: var(--badge-bg);
    color: var(--badge-text);
}

/* -----------------------------------------------------------------------------
   BORDERS
   ----------------------------------------------------------------------------- */
.theme-light .border {
    border-color: var(--border-color) !important;
}

.theme-light .border-top {
    border-top-color: var(--border-color) !important;
}

.theme-light .border-bottom {
    border-bottom-color: var(--border-color) !important;
}

.theme-light .border-start {
    border-left-color: var(--border-color) !important;
}

.theme-light .border-end {
    border-right-color: var(--border-color) !important;
}

.theme-light hr {
    border-top-color: var(--divider);
    opacity: 1;
}

/* -----------------------------------------------------------------------------
   TEXT UTILITIES
   ----------------------------------------------------------------------------- */
.theme-light .text-muted {
    color: var(--text-muted) !important;
}

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

/* -----------------------------------------------------------------------------
   DROPDOWNS
   ----------------------------------------------------------------------------- */
.theme-light .dropdown-menu {
    background-color: var(--bg-card);
    border-color: var(--border-color);
}

.theme-light .dropdown-item {
    color: var(--text-primary);
}

.theme-light .dropdown-item:hover,
.theme-light .dropdown-item:focus {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

.theme-light .dropdown-divider {
    border-top-color: var(--border-color);
}

/* -----------------------------------------------------------------------------
   NAVIGATION - Dark navbar override for light theme
   ----------------------------------------------------------------------------- */
.theme-light .navbar-dark .nav-link.active {
    color: #ffffff !important;
    font-weight: 500;
}

.theme-light .navbar-dark .nav-link {
    color: rgba(255, 255, 255, 0.75);
}

.theme-light .navbar-dark .nav-link:hover,
.theme-light .navbar-dark .nav-link:focus {
    color: rgba(255, 255, 255, 0.95);
}

/* -----------------------------------------------------------------------------
   INPUT GROUPS
   ----------------------------------------------------------------------------- */
.theme-light .input-group-text {
    background-color: var(--bg-surface);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* -----------------------------------------------------------------------------
   LIST GROUPS
   ----------------------------------------------------------------------------- */
.theme-light .list-group-item {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-light .list-group-item:hover {
    background-color: var(--bg-card-hover);
}

/* =========================================================
   DARK THEME OVERRIDES
========================================================= */

/* -----------------------------------------------------------------------------
   FORMS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .form-control,
.theme-dark .form-select {
    background-color: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--input-text);
}

.theme-dark .form-control:focus,
.theme-dark .form-select:focus {
    background-color: var(--input-focus);
    border-color: var(--input-focus-border);
    box-shadow: var(--input-focus-shadow);
    color: var(--input-text);
}

.theme-dark .form-control:disabled,
.theme-dark .form-select:disabled {
    background-color: var(--input-disabled-bg);
    color: var(--input-disabled-text);
}

.theme-dark .form-control::placeholder {
    color: var(--input-placeholder);
}

/* Form check inputs */
.theme-dark .form-check-input {
    background-color: var(--input-bg);
    border: 2px solid var(--input-border);
}

.theme-dark .form-check-input:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 0.25rem rgba(14, 155, 255, 0.25);
}

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

.theme-dark .form-check-input:disabled {
    background-color: var(--input-disabled-bg);
    border-color: var(--input-border);
    opacity: 0.5;
}

.theme-dark .form-check-input:checked:disabled {
    background-color: var(--color-primary);
    opacity: 0.5;
}

/* -----------------------------------------------------------------------------
   BUTTONS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .btn-primary {
    background-color: var(--btn-primary-bg);
    border-color: var(--btn-primary-border);
    color: var(--btn-primary-text);
}

.theme-dark .btn-primary:hover,
.theme-dark .btn-primary:focus,
.theme-dark .btn-primary:active {
    background-color: var(--btn-primary-hover-bg);
    border-color: var(--btn-primary-hover-border);
    color: var(--btn-primary-text);
}

.theme-dark .btn-secondary {
    background-color: var(--btn-secondary-bg);
    border-color: var(--btn-secondary-border);
    color: var(--btn-secondary-text);
}

.theme-dark .btn-secondary:hover,
.theme-dark .btn-secondary:focus,
.theme-dark .btn-secondary:active {
    background-color: var(--btn-secondary-hover-bg);
    border-color: var(--btn-secondary-hover-border);
    color: var(--btn-secondary-text);
}

.theme-dark .btn-outline-primary {
    border-color: var(--btn-outline-border);
    color: var(--btn-outline-text);
    background-color: transparent;
}

.theme-dark .btn-outline-primary:hover,
.theme-dark .btn-outline-primary:focus,
.theme-dark .btn-outline-primary:active {
    background-color: var(--btn-outline-hover-bg);
    border-color: var(--btn-outline-border);
    color: var(--btn-outline-hover-text);
}

.theme-dark .btn-outline-secondary {
    border-color: var(--border-color);
    color: var(--text-primary);
    background-color: transparent;
}

.theme-dark .btn-outline-secondary:hover,
.theme-dark .btn-outline-secondary:focus,
.theme-dark .btn-outline-secondary:active {
    background-color: var(--bg-surface);
    border-color: var(--border-color-dark);
    color: var(--text-primary);
}

.theme-dark .btn-outline-light {
    border-color: var(--border-color);
    color: var(--text-primary);
    background-color: transparent;
}

.theme-dark .btn-outline-light:hover,
.theme-dark .btn-outline-light:focus,
.theme-dark .btn-outline-light:active {
    background-color: var(--bg-surface);
    border-color: var(--border-color-dark);
    color: var(--text-primary);
}

/* Danger button */
.theme-dark .btn-danger {
    background-color: var(--color-danger);
    border-color: var(--color-danger);
    color: #ffffff;
}

.theme-dark .btn-danger:hover,
.theme-dark .btn-danger:focus,
.theme-dark .btn-danger:active {
    background-color: var(--color-danger-hover);
    border-color: var(--color-danger-hover);
    color: #ffffff;
}

/* Success button */
.theme-dark .btn-success {
    background-color: var(--color-success);
    border-color: var(--color-success);
    color: #ffffff;
}

.theme-dark .btn-success:hover,
.theme-dark .btn-success:focus,
.theme-dark .btn-success:active {
    background-color: var(--color-success-hover);
    border-color: var(--color-success-hover);
    color: #ffffff;
}

/* Info button */
.theme-dark .btn-info {
    background-color: var(--color-info);
    border-color: var(--color-info);
    color: #000000;
}

.theme-dark .btn-info:hover,
.theme-dark .btn-info:focus,
.theme-dark .btn-info:active {
    background-color: var(--color-info-hover);
    border-color: var(--color-info-hover);
    color: #000000;
}

/* Warning button */
.theme-dark .btn-warning {
    background-color: var(--color-warning);
    border-color: var(--color-warning);
    color: #000000;
}

.theme-dark .btn-warning:hover,
.theme-dark .btn-warning:focus,
.theme-dark .btn-warning:active {
    background-color: var(--color-warning-hover);
    border-color: var(--color-warning-hover);
    color: #000000;
}

/* -----------------------------------------------------------------------------
   CARDS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .card {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-main);
}

.theme-dark .card-header {
    background-color: var(--bg-card-header);
    border-bottom-color: var(--border-color);
    color: var(--text-main);
}

.theme-dark .card-footer {
    background-color: var(--bg-card-header);
    border-top-color: var(--border-color);
    color: var(--text-main);
}

/* -----------------------------------------------------------------------------
   TABLES - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .table {
    color: var(--text-primary);
    border-color: var(--table-border);
}

.theme-dark .table > :not(caption) > * > * {
    border-bottom-color: var(--table-border);
}

.theme-dark .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--table-stripe-bg);
}

.theme-dark .table-hover > tbody > tr:hover > * {
    background-color: var(--table-hover-bg);
}

.theme-dark .table thead {
    border-bottom: 2px solid var(--table-border);
}

/* -----------------------------------------------------------------------------
   MODALS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .modal-content {
    background-color: var(--modal-bg);
    border-color: var(--modal-border);
    color: var(--text-main);
}

.theme-dark .modal-header {
    background-color: var(--modal-header-bg);
    border-bottom-color: var(--modal-header-border);
    color: var(--text-main);
}

.theme-dark .modal-footer {
    background-color: var(--modal-footer-bg);
    border-top-color: var(--modal-footer-border);
    color: var(--text-main);
}

/* -----------------------------------------------------------------------------
   PAGINATION - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .page-link {
    background-color: var(--pagination-bg);
    border-color: var(--pagination-border);
    color: var(--pagination-text);
}

.theme-dark .page-link:hover {
    background-color: var(--pagination-hover-bg);
    color: var(--pagination-hover-text);
    border-color: var(--pagination-border);
}

.theme-dark .page-item.active .page-link {
    background-color: var(--pagination-active-bg);
    border-color: var(--pagination-active-bg);
    color: var(--pagination-active-text);
}

.theme-dark .page-item.disabled .page-link {
    background-color: var(--pagination-disabled-bg);
    color: var(--pagination-disabled-text);
    border-color: var(--pagination-border);
}

/* -----------------------------------------------------------------------------
   ALERTS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .alert-success {
    background-color: var(--alert-success-bg);
    border-color: var(--alert-success-border);
    color: var(--alert-success-text);
}

.theme-dark .alert-danger {
    background-color: var(--alert-danger-bg);
    border-color: var(--alert-danger-border);
    color: var(--alert-danger-text);
}

.theme-dark .alert-warning {
    background-color: var(--alert-warning-bg);
    border-color: var(--alert-warning-border);
    color: var(--alert-warning-text);
}

.theme-dark .alert-info {
    background-color: var(--alert-info-bg);
    border-color: var(--alert-info-border);
    color: var(--alert-info-text);
}

/* -----------------------------------------------------------------------------
   BADGES - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .badge {
    background-color: var(--badge-bg);
    color: var(--badge-text);
}

/* -----------------------------------------------------------------------------
   BORDERS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .border {
    border-color: var(--border-color) !important;
}

.theme-dark .border-top {
    border-top-color: var(--border-color) !important;
}

.theme-dark .border-bottom {
    border-bottom-color: var(--border-color) !important;
}

.theme-dark .border-start {
    border-left-color: var(--border-color) !important;
}

.theme-dark .border-end {
    border-right-color: var(--border-color) !important;
}

.theme-dark hr {
    border-top-color: var(--divider);
    opacity: 1;
}

/* -----------------------------------------------------------------------------
   TEXT UTILITIES - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .text-muted {
    color: var(--text-muted) !important;
}

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

/* -----------------------------------------------------------------------------
   DROPDOWNS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .dropdown-menu {
    background-color: var(--bg-card);
    border-color: var(--border-color);
}

.theme-dark .dropdown-item {
    color: var(--text-primary);
}

.theme-dark .dropdown-item:hover,
.theme-dark .dropdown-item:focus {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

.theme-dark .dropdown-divider {
    border-top-color: var(--border-color);
}

/* -----------------------------------------------------------------------------
   INPUT GROUPS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .input-group-text {
    background-color: var(--bg-surface);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* -----------------------------------------------------------------------------
   LIST GROUPS - Dark Theme Overrides
   ----------------------------------------------------------------------------- */
.theme-dark .list-group-item {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .list-group-item:hover {
    background-color: var(--bg-card-hover);
}
