/* Theme Color Overrides - Dynamic Theme */
/* Generated manually to ensure selector validity */

/* Topbar & Header */
#page-topbar {
    background-color: var(--theme-color) !important;
}

body[data-sidebar="dark"] .navbar-brand-box {
    background-color: var(--theme-color) !important;
}

body[data-layout="horizontal"][data-topbar="light"] .topnav {
    background-color: var(--theme-color) !important;
}

/* Sidebar Menu Active States */
.mm-active,
.mm-active>a,
.mm-active>i,
.mm-active .active,
.mm-active .active i {
    color: var(--theme-color) !important;
}

#sidebar-menu ul li a:hover,
#sidebar-menu ul li a:hover i {
    color: var(--theme-color) !important;
}

/* Text & Background Utilities */
.text-primary {
    color: var(--theme-color) !important;
}

.bg-primary {
    background-color: var(--theme-color) !important;
}

/* Buttons - Primary */
.btn-primary {
    background-color: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    background-color: var(--theme-color-dark) !important;
    border-color: var(--theme-color-dark) !important;
}

/* Buttons - Outline Primary */
.btn-outline-primary {
    color: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:active,
.btn-outline-primary.active {
    background-color: var(--theme-color) !important;
    color: #fff !important;
    border-color: var(--theme-color) !important;
}

/* Pagination */
.page-item.active .page-link {
    background-color: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
}

/* Forms */
.form-check-input:checked {
    background-color: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
}

.form-control:focus {
    border-color: var(--theme-color) !important;
}

/* Tabs */
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
    background-color: var(--theme-color) !important;
}

/* Badge */
.badge.bg-primary {
    background-color: var(--theme-color) !important;
}

/* Selection */
::selection {
    background: var(--theme-color);
    color: #fff;
}

/* Header Dropdown Active State */
body[data-topbar='colored'] .navbar-header .dropdown .show.header-item {
    background-color: var(--theme-color-dark) !important;
}

/* Standardize Switch to Bootstrap 5 Style - Forced (Theme Match: 56x24px) */
.square-switch {
    margin: 0 !important;
    padding: 0 !important;
    min-height: auto !important;
    width: auto !important;
    height: auto !important;
    display: inline-block !important;
    position: relative !important;
}

.square-switch input {
    position: absolute !important;
    opacity: 0 !important;
    cursor: pointer !important;
    height: 0 !important;
    width: 0 !important;
}

.square-switch label {
    position: relative !important;
    display: inline-block !important;
    width: 56px !important;
    height: 24px !important;
    background-color: #ced4da !important;
    border-radius: 2rem !important;
    transition: background-color .15s ease-in-out, border-color .15s ease-in-out !important;
    cursor: pointer !important;
    margin-bottom: 0 !important;
    border: none !important;
    font-size: 0 !important;
}

.square-switch label::after {
    content: '' !important;
    position: absolute !important;
    top: 2px !important;
    left: 3px !important;
    width: 20px !important;
    height: 20px !important;
    background-color: #fff !important;
    border-radius: 50% !important;
    transition: background-color .15s ease-in-out, transform .15s ease-in-out !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, .075) !important;
}

.square-switch input:checked+label {
    background-color: var(--theme-color) !important;
}

.square-switch input:checked+label::after {
    transform: translateX(30px) !important;
    background-color: #fff !important;
}

/* Up-size Bootstrap Switches to Match Custom Style (56x24px) */
.form-switch .form-check-input {
    width: 56px !important;
    height: 24px !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
    background-position: left center !important;
}

.form-switch .form-check-input:checked {
    background-color: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
    background-position: right center !important;
}

/* Table Action Icons - Borderless */
.table-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 4px 6px !important;
    cursor: pointer;
    font-size: 1.1rem;
    opacity: 0.75;
    transition: opacity 0.2s ease, transform 0.15s ease;
    outline: none !important;
    text-decoration: none !important;
}

.table-action-icon:hover {
    opacity: 1;
    transform: scale(1.15);
    text-decoration: none !important;
}

.table-action-icon:focus {
    box-shadow: none !important;
    outline: none !important;
}

.table-action-icon.text-danger {
    color: #dc3545 !important;
}

.table-action-icon.text-success {
    color: #28a745 !important;
}

.table-action-icon.text-warning {
    color: #ffc107 !important;
}

.table-action-icon.text-info {
    color: #17a2b8 !important;
}

.table-action-icon.text-primary {
    color: var(--theme-color) !important;
}

.table-action-icon.text-secondary {
    color: #6c757d !important;
}

.table-action-icon.text-muted {
    color: #adb5bd !important;
}