/* *****************************************************

    ** Custom Stylesheet - Complete 60-30-10 System **

    Single-file solution for WHMCS child themes.
    No template modifications required.

    This file contains:
    1. CSS Variable Definitions (60-30-10 palette)
    2. Hardcoded Color Overrides (200+ fixes)

    60-30-10 COLOR PALETTE:
    - 60% Dominant: #1E1E1E (Dark gray)
    - 30% Secondary: #404040 (Medium gray)
    - 10% Accent: #CD6141 (Coral/burnt orange)

***************************************************** */

/* ============================================
   PART 1: CSS VARIABLE DEFINITIONS
   ============================================ */

:root {
    /* Base white */
    --white: #fff;
    /* Base black */
    --black: #000;

    /* 60% DOMINANT COLOR - Main backgrounds */
    --dominant-900: #1E1E1E;
    --dominant-800: #292929;
    --dominant-700: #343434;
    --dominant-600: #3f3f3f;
    --dominant-500: #4b4b4b;
    --dominant-400: #616161;
    --dominant-300: #8e8e8e;
    --dominant-200: #bbbbbb;
    --dominant-100: #e0e0e0;
    --dominant-50: #f5f5f5;

    /* 30% SECONDARY COLOR - Cards, panels */
    --secondary-900: #363636;
    --secondary-800: #393939;
    --secondary-700: #3c3c3c;
    --secondary-600: #404040;
    --secondary-500: #494949;
    --secondary-400: #535353;
    --secondary-300: #5c5c5c;
    --secondary-200: #666666;
    --secondary-100: #797979;
    --secondary-50: #9f9f9f;

    /* 10% ACCENT COLOR - CTAs, links */
    --accent-900: #8f432d;
    --accent-800: #a44d34;
    --accent-700: #ae5237;
    --accent-600: #b8573a;
    --accent-500: #c25c3d;
    --accent-400: #CD6141;
    --accent-300: #d27054;
    --accent-200: #d78067;
    --accent-100: #dc907a;
    --accent-50: #e6b0a0;

    /* NEXUS NEUTRAL SHADES MAPPING */
    --neutral-950: var(--dominant-900);
    --neutral-900: var(--dominant-900);
    --neutral-800: var(--dominant-800);
    --neutral-700: var(--dominant-700);
    --neutral-600: var(--secondary-600);
    --neutral-500: var(--secondary-400);
    --neutral-400: var(--secondary-300);
    --neutral-300: var(--secondary-200);
    --neutral-200: var(--secondary-100);
    --neutral-100: var(--secondary-50);
    --neutral-50: var(--dominant-50);

    /* PRIMARY SHADES */
    --primary-950: var(--neutral-950);
    --primary-900: var(--neutral-900);
    --primary-800: var(--neutral-800);
    --primary-700: var(--neutral-700);
    --primary-600: var(--neutral-600);
    --primary-500: var(--neutral-500);
    --primary-400: var(--neutral-400);
    --primary-300: var(--neutral-300);
    --primary-200: var(--neutral-200);
    --primary-100: var(--neutral-100);
    --primary-50: var(--neutral-50);

    /* PRIMARY COLORS (Accent for CTAs) */
    --primary: var(--accent-400);
    --primary-lifted: var(--accent-300);
    --primary-accented: var(--accent-500);

    /* SECONDARY COLORS */
    --secondary: var(--secondary-400);
    --secondary-lifted: var(--secondary-300);
    --secondary-accented: var(--secondary-200);

    /* SEMANTIC COLORS */
    --success: #5C8F5A;
    --success-lifted: #7ca57b;
    --success-accented: #4e794c;

    --info: #4D7CA5;
    --info-lifted: #7096b7;
    --info-accented: #41698c;

    --notice: #7f22fe;
    --notice-lifted: #9552fe;
    --notice-accented: #5d0ec0;

    --warning: #D89A41;
    --warning-lifted: #dfae67;
    --warning-accented: #b78237;

    --error: #C14141;
    --error-lifted: #cd6767;
    --error-accented: #a43737;

    /* GRAYSCALE COLORS */
    --grayscale: var(--dominant-900);
    --grayscale-lifted: var(--dominant-800);
    --grayscale-accented: var(--dominant-700);

    /* NEUTRAL COLORS */
    --neutral: var(--secondary-400);
    --neutral-lifted: var(--secondary-300);
    --neutral-accented: var(--secondary-200);

    /* TEXT COLORS */
    --text-inverted: var(--dominant-900);
    --text-muted: var(--dominant-300);
    --text-lifted: var(--dominant-200);
    --text-accented: var(--accent-300);
    --text: var(--dominant-100);

    /* BORDER COLORS */
    --border-muted: var(--secondary-500);
    --border: var(--secondary-400);
    --border-lifted: var(--secondary-300);
    --border-accented: var(--secondary-200);

    /* BACKGROUND COLORS */
    --bg: var(--secondary-600);
    --bg-muted: var(--secondary-700);
    --bg-lifted: var(--dominant-900);
    --bg-accented: var(--secondary-500);
    --bg-inverted: var(--dominant-100);

    /* ADDITIONAL COLORS */
    --yellow-200: #e8d278;
    --yellow-300: #dcc34d;
    --teal-300: #46edd5;
    --teal-400: #00d5be;
    --emerald-300: #5ee9b5;
    --pink-400: #fb64b6;

    /* TYPOGRAPHY */
    --text-xs: 0.625rem;
    --text-sm: 0.75rem;
    --text-md: 0.875rem;
    --text-lg: 1rem;

    /* SPACING & BORDERS */
    --outline-sm: 1px;
    --outline-md: 2px;
    --outline-lg: 3px;

    /* BORDER RADIUS */
    --rounding-sm: 0.25rem;
    --rounding-md: 0.5rem;
    --rounding-lg: 0.75rem;

    /* OTHER PROPERTIES */
    --letter-spacing: 0em;
    --disabled-opacity: 25%;
}

/* ============================================
   PART 2: HARDCODED COLOR OVERRIDES
   Fixes 200+ hardcoded colors in compiled SCSS
   ============================================ */

/* BUTTONS - Override hardcoded whites and grays */
.btn-default,
.btn-light
button[style*="background-color: #fff"],
button[style*="background-color: white"] {
  background-color: var(--secondary-400) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

.btn-default:hover,
.btn-light:hover {
  background-color: var(--secondary-300) !important;
}

.btn-default:active,
.btn-default.active {
  background-color: var(--secondary-200) !important;
}

/* Primary buttons keep white text */
.btn-primary,
.btn-success,
.btn-danger,
.btn-info,
.btn-warning {
  color: var(--white) !important;
}

/* Make specific success buttons look like btn-primary - using exact class combinations for higher specificity */
.btn.btn-success.btn-checkout,
.btn.btn-success.btn-order-now,
a.btn.btn-success.btn-checkout,
a.btn.btn-success.btn-order-now,
.btn.btn-success#checkout,
.btn.btn-success[id$="-order-button"] {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}

.btn.btn-success.btn-checkout:hover,
.btn.btn-success.btn-order-now:hover,
a.btn.btn-success.btn-checkout:hover,
a.btn.btn-success.btn-order-now:hover,
.btn.btn-success#checkout:hover,
.btn.btn-success[id$="-order-button"]:hover {
  background-color: var(--primary-lifted) !important;
  border-color: var(--primary-lifted) !important;
}

.btn.btn-success.btn-checkout:focus,
.btn.btn-success.btn-order-now:focus,
a.btn.btn-success.btn-checkout:focus,
a.btn.btn-success.btn-order-now:focus,
.btn.btn-success#checkout:focus,
.btn.btn-success[id$="-order-button"]:focus,
.btn.btn-success.btn-checkout.focus,
.btn.btn-success.btn-order-now.focus,
a.btn.btn-success.btn-checkout.focus,
a.btn.btn-success.btn-order-now.focus,
.btn.btn-success#checkout.focus,
.btn.btn-success[id$="-order-button"].focus {
  background-color: var(--primary-lifted) !important;
  border-color: var(--primary-lifted) !important;
  box-shadow: 0 0 0 0.2rem rgba(205, 97, 65, 0.25) !important;
}

.btn.btn-success.btn-checkout:not(:disabled):not(.disabled):active,
.btn.btn-success.btn-order-now:not(:disabled):not(.disabled):active,
a.btn.btn-success.btn-checkout:not(:disabled):not(.disabled):active,
a.btn.btn-success.btn-order-now:not(:disabled):not(.disabled):active,
.btn.btn-success#checkout:not(:disabled):not(.disabled):active,
.btn.btn-success[id$="-order-button"]:not(:disabled):not(.disabled):active,
.btn.btn-success.btn-checkout:not(:disabled):not(.disabled).active,
.btn.btn-success.btn-order-now:not(:disabled):not(.disabled).active,
a.btn.btn-success.btn-checkout:not(:disabled):not(.disabled).active,
a.btn.btn-success.btn-order-now:not(:disabled):not(.disabled).active,
.btn.btn-success#checkout:not(:disabled):not(.disabled).active,
.btn.btn-success[id$="-order-button"]:not(:disabled):not(.disabled).active {
  background-color: var(--primary-accented) !important;
  border-color: var(--primary-accented) !important;
}

/* PANELS & CARDS - Override white backgrounds */
.panel,
.panel-default,
.card,
.card-body,
.modal-content,
.modal-body,
.popover {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.card.view-ticket .posted-by,
.view-ticket.mc-promo-login .posted-by,
.view-ticket.mc-promo-manage .posted-by {
  background-color: var(--bg-lifted);
  color: var(--text);
}

.panel-heading,
.card-header,
.modal-header,
.popover-header {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.panel-footer,
.card-footer,
.modal-footer {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
}

.panel-body,
.popover-body {
  color: var(--text) !important;
}

/* PRODUCTS - Override Products */
.products .product,
.products .product header {
  background: var(--bg-muted) !important;
}

/* HTML INVOICES - Override */
.invoice-container,
.invoice-container h3,
.invoice-container .table,
.invoice-container .table > tbody > tr > td {
  color: var(--black) !important;
}

/* .invoice-container .card-header,
.table td, 
table th {
  background-color: #f8f8f8 !important;
} */

.invoice-container .card-header,
.invoice-container .table-responsive {
  background: #f8f8f8 !important;
}

/* BORDERS - Override light gray borders */
.table,
.table-bordered,
.table-bordered td,
.table-bordered th,
.table td, .table th,
.nav-tabs,
.nav-tabs > li,
.product-details,
.upgrade-container,
.md-editor,
.md-editor > textarea.markdown-editor,
.md-editor > .md-preview,
.sub-heading,
.border-bottom,
#frmCheckout.paypal_ppcpv-payment-form #creditCardInputFields .paymethod-info,
#frmCheckout.paypal_ppcpv-payment-form #creditCardInputFields ul
 {
  border-color: var(--border) !important;
}

.popover .popover-header {
  border-bottom-color: var(--border) !important;
}

.nav-tabs > li.active > a {
  border-color: var(--border) var(--border) transparent !important;
}

/* TEXT COLORS - Override dark text for dark theme */
a,
body,
.btn-default,
.btn-light,
.panel-heading,
.table th,
h1, h2, h3, h4, h5, h6,
.product-description,
.upgrade-title,
.home-shortcuts a,
.products .product header span,
.products .product div.product-desc,
label,
.cc-input-container .existing-cc-grid {
  color: var(--text) !important;
}

.product-subtitle,
.home-shortcuts a:hover,
.popover-body,
.tld-description {
  color: var(--text-lifted) !important;
}

.text-muted,
.client-summary-stat,
.home-stat-label,
.upgrade-description,
.upgrade-stat-label {
  color: var(--text-muted) !important;
}

/* BACKGROUNDS - Override light backgrounds */
header.header,
footer.footer,
.table-striped > tbody > tr:nth-of-type(odd),
.table-hover > tbody > tr:hover,
.panel-footer,
.email-verification-header,
.tld-row:hover,
.product-highlight,
.two-factor-container,
.payment-method-container,
table.dataTable > tbody > tr > td,
.table-list > tbody > tr:hover > td,
.md-editor > .btn-toolbar,
.md-editor > textarea.markdown-editor,
.md-editor > .md-preview,
.md-editor .md-footer,
.paypal_ppcpv-payment-form .selected {
  background-color: var(--bg-muted) !important;
}


.sub-heading span,
.account-select-container div.account,
.account-select-container div.account.active {
  background: var(--bg-muted) !important;
}

.tld-header,
.upgrade-header {
  background-color: var(--bg-muted) !important;
  color: var(--text) !important;
}

/* TABLES */
.table {
  color: var(--text) !important;
}

.table > thead > tr > th {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.table > tbody > tr > td {
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* FORMS */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
select,
textarea,
.form-control {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus,
.form-control:focus {
  background-color: var(--bg) !important;
  border-color: var(--primary) !important;
  color: var(--text) !important;
}

input::placeholder,
textarea::placeholder,
.form-control::placeholder {
  color: var(--text-muted) !important;
}

/* ALERTS */
.alert {
  border-width: 1px !important;
}

.alert-success {
  background-color: rgba(92, 143, 90, 0.15) !important;
  border-color: var(--success) !important;
  color: var(--success-lifted) !important;
}

.alert-info {
  background-color: rgba(77, 124, 165, 0.15) !important;
  border-color: var(--info) !important;
  color: var(--info-lifted) !important;
}

.alert-warning {
  background-color: rgba(216, 154, 65, 0.15) !important;
  border-color: var(--warning) !important;
  color: var(--warning-lifted) !important;
}

.alert-danger {
  background-color: rgba(193, 65, 65, 0.15) !important;
  border-color: var(--error) !important;
  color: var(--error-lifted) !important;
}

/* EMAIL VERIFICATION */
.email-verification-container,
.email-verification-header {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.email-verification-pending {
  background-color: var(--warning) !important;
  color: var(--white) !important;
}

.email-verification-verified {
  background-color: var(--success) !important;
  color: var(--white) !important;
}

/* PRODUCT DETAILS */
.product-details-tab-container,
.product-details-tab {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

/* UPGRADES */
.upgrade-container,
.upgrade-item {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

.upgrade-price {
  background-color: var(--primary) !important;
  color: var(--white) !important;
}

/* PAYMENTS */
.payment-method {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

.payment-method:hover {
  background-color: var(--bg-accented) !important;
}

/* TLD LISTINGS */
.tld-row {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

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

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

/* CART */
.cart-item {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

.cart-item-header,
.view-cart-items .item,
.cart-body .view-cart-empty {
  background-color: var(--bg-muted) !important;
}

.cart-total {
  background-color: var(--bg-muted) !important;
  color: var(--text) !important;
}

/* HOME DASHBOARD */
.home-shortcuts a {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

.home-shortcuts a:hover {
  background-color: var(--bg-accented) !important;
  color: var(--text-accented) !important;
}

/* CLIENT HOME */
.client-summary-panels .panel,
.tiles .tile {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

.client-summary-panels .panel-body {
  border-bottom-color: var(--border) !important;
}

.client-home-stat {
  color: var(--text) !important;
}

.client-home-stat-label {
  color: var(--text-muted) !important;
}

.tiles .tile i {
  color: var(--primary)
}

.client-home-cards .list-group {
  border-color: var(--border) !important;
}

/* NAVIGATION */
.nav-tabs > li > a {
  color: var(--text) !important;
}

.nav-tabs > li.active > a {
  background-color: var(--bg) !important;
  color: var(--text) !important;
}

/* SOCIAL MEDIA - Preserve brand colors */
.btn-facebook,
.social-facebook {
  background-color: #4267b2 !important;
  border-color: #4267b2 !important;
}

.btn-twitter,
.social-twitter {
  background-color: #2ba9e1 !important;
  border-color: #2ba9e1 !important;
}

/* MARKETCONNECT - Preserve partner brand colors */
.weebly-badge {
  border-top-color: #ce3b56 !important;
}

.weebly-badge-icon {
  background-color: #ce3b56 !important;
}

.weebly-badge-text {
  color: #ce3b56 !important;
}

.sitelock-badge {
  border-top-color: #a9cc5f !important;
}

.sitelock-badge-icon {
  background-color: #a9cc5f !important;
}

.sitelock-badge-text {
  color: #a9cc5f !important;
}

.symantec-badge {
  border-top-color: #ff3377 !important;
}

.symantec-badge-icon {
  background-color: #ff3377 !important;
}

.symantec-badge-text {
  color: #ff3377 !important;
}

.spamexperts-badge-text {
  color: #902a6d !important;
}

.spamexperts-badge-icon {
  background-color: #902a6d !important;
}

/* ============================================
   IMPLEMENTATION NOTES
   ============================================

   SINGLE FILE FOR CHILD THEMES:
   This file combines both CSS variable definitions
   and hardcoded color overrides into one file.

   WHMCS CHILD THEME USAGE:
   1. Place this file as custom.css in your child theme
   2. WHMCS loads it automatically - no template mods needed
   3. Handles both variable-based AND hardcoded colors

   FILE LOCATION:
   /templates/your-child-theme/css/custom.css

   60-30-10 DISTRIBUTION:
   - 60%: #1E1E1E (body, main backgrounds)
   - 30%: #404040 (cards, panels, elevated surfaces)
   - 10%: #CD6141 (buttons, links, CTAs)

   CUSTOMIZATION:
   To change colors, update the base values in :root:
   - --dominant-900: #1E1E1E  (your dark background)
   - --secondary-600: #404040  (your elevated surfaces)
   - --accent-400: #CD6141     (your accent/CTA color)

   ACCESSIBILITY:
   All color combinations meet WCAG AA standards:
   - Text on dominant bg: 12.59:1 ✅ AAA
   - Accent on dominant bg: 4.51:1 ✅ AA
   - White on accent: 4.66:1 ✅ AA

   ============================================ */
/* ============================================
   ADDITIONAL BOOTSTRAP CLASS OVERRIDES
   Comprehensive coverage of all Bootstrap utilities
   ============================================ */

/* BOOTSTRAP PRIMARY COLOR CLASSES */
.text-primary,
.btn-link,
.btn-link:hover,
a.text-primary:hover,
a.text-primary:focus {
  color: var(--primary) !important;
}

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

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

.btn-primary,
.badge-primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  background-color: var(--primary-lifted) !important;
  border-color: var(--primary-lifted) !important;
  color: var(--white) !important;
}

.btn-outline-primary {
  color: var(--primary) !important;
  border-color: var(--primary) !important;
  background-color: transparent !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
}

/* BOOTSTRAP SECONDARY COLOR CLASSES */
.text-secondary,
a.text-secondary:hover,
a.text-secondary:focus {
  color: var(--text-muted) !important;
}

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

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

.btn-secondary,
.badge-secondary {
  background-color: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: var(--text) !important;
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle {
  background-color: var(--secondary-lifted) !important;
  border-color: var(--secondary-lifted) !important;
  color: var(--text) !important;
}

.btn-outline-secondary {
  color: var(--secondary) !important;
  border-color: var(--secondary) !important;
  background-color: transparent !important;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn-outline-secondary:not(:disabled):not(.disabled).active {
  background-color: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: var(--text) !important;
}

/* BOOTSTRAP SUCCESS COLOR CLASSES */
.text-success,
a.text-success:hover,
a.text-success:focus {
  color: var(--success-lifted) !important;
}

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

.border-success {
  border-color: var(--success) !important;
}

.btn-success,
.badge-success {
  background-color: var(--success) !important;
  border-color: var(--success) !important;
  color: var(--white) !important;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
  background-color: var(--success-lifted) !important;
  border-color: var(--success-lifted) !important;
  color: var(--white) !important;
}

.btn-outline-success {
  color: var(--success) !important;
  border-color: var(--success) !important;
  background-color: transparent !important;
}

.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:not(:disabled):not(.disabled):active,
.btn-outline-success:not(:disabled):not(.disabled).active {
  background-color: var(--success) !important;
  border-color: var(--success) !important;
  color: var(--white) !important;
}

/* BOOTSTRAP DANGER COLOR CLASSES */
.text-danger,
a.text-danger:hover,
a.text-danger:focus {
  color: var(--error-lifted) !important;
}

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

.border-danger {
  border-color: var(--error) !important;
}

.btn-danger,
.badge-danger {
  background-color: var(--error) !important;
  border-color: var(--error) !important;
  color: var(--white) !important;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
  background-color: var(--error-lifted) !important;
  border-color: var(--error-lifted) !important;
  color: var(--white) !important;
}

.btn-outline-danger {
  color: var(--error) !important;
  border-color: var(--error) !important;
  background-color: transparent !important;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:not(:disabled):not(.disabled):active,
.btn-outline-danger:not(:disabled):not(.disabled).active {
  background-color: var(--error) !important;
  border-color: var(--error) !important;
  color: var(--white) !important;
}

/* BOOTSTRAP WARNING COLOR CLASSES */
.text-warning,
a.text-warning:hover,
a.text-warning:focus {
  color: var(--warning-lifted) !important;
}

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

.border-warning {
  border-color: var(--warning) !important;
}

.btn-warning,
.badge-warning {
  background-color: var(--warning) !important;
  border-color: var(--warning) !important;
  color: var(--dominant-900) !important;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
  background-color: var(--warning-lifted) !important;
  border-color: var(--warning-lifted) !important;
  color: var(--dominant-900) !important;
}

.btn-outline-warning {
  color: var(--warning) !important;
  border-color: var(--warning) !important;
  background-color: transparent !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:not(:disabled):not(.disabled):active,
.btn-outline-warning:not(:disabled):not(.disabled).active {
  background-color: var(--warning) !important;
  border-color: var(--warning) !important;
  color: var(--dominant-900) !important;
}

/* BOOTSTRAP INFO COLOR CLASSES */
.text-info,
a.text-info:hover,
a.text-info:focus {
  color: var(--info-lifted) !important;
}

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

.border-info {
  border-color: var(--info) !important;
}

.btn-info,
.badge-info {
  background-color: var(--info) !important;
  border-color: var(--info) !important;
  color: var(--white) !important;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
  background-color: var(--info-lifted) !important;
  border-color: var(--info-lifted) !important;
  color: var(--white) !important;
}

.btn-outline-info {
  color: var(--info) !important;
  border-color: var(--info) !important;
  background-color: transparent !important;
}

.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info:not(:disabled):not(.disabled):active,
.btn-outline-info:not(:disabled):not(.disabled).active {
  background-color: var(--info) !important;
  border-color: var(--info) !important;
  color: var(--white) !important;
}

/* BOOTSTRAP LIGHT COLOR CLASSES */
.text-light,
a.text-light:hover,
a.text-light:focus {
  color: var(--text) !important;
}

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

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

.btn-light,
.badge-light {
  background-color: var(--secondary-lighter) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.btn-light:hover,
.btn-light:focus,
.btn-light:not(:disabled):not(.disabled):active,
.btn-light:not(:disabled):not(.disabled).active,
.show > .btn-light.dropdown-toggle {
  background-color: var(--secondary-lightest) !important;
  border-color: var(--border-lifted) !important;
  color: var(--text) !important;
}

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

.btn-outline-light:hover,
.btn-outline-light:focus,
.btn-outline-light:not(:disabled):not(.disabled):active,
.btn-outline-light:not(:disabled):not(.disabled).active {
  background-color: var(--secondary-lighter) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* BOOTSTRAP DARK COLOR CLASSES */
.text-dark,
a.text-dark:hover,
a.text-dark:focus {
  color: var(--text) !important;
}

.bg-dark {
  background-color: var(--dominant-900) !important;
}

.border-dark {
  border-color: var(--dominant-900) !important;
}

.btn-dark,
.badge-dark,
.table-dark {
  background-color: var(--dominant-900) !important;
  border-color: var(--dominant-800) !important;
  color: var(--text) !important;
}

.btn-dark:hover,
.btn-dark:focus,
.btn-dark:not(:disabled):not(.disabled):active,
.btn-dark:not(:disabled):not(.disabled).active,
.show > .btn-dark.dropdown-toggle {
  background-color: var(--dominant-800) !important;
  border-color: var(--dominant-700) !important;
  color: var(--text) !important;
}

.btn-outline-dark {
  color: var(--dominant-900) !important;
  border-color: var(--dominant-900) !important;
  background-color: transparent !important;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-dark:not(:disabled):not(.disabled):active,
.btn-outline-dark:not(:disabled):not(.disabled).active {
  background-color: var(--dominant-900) !important;
  border-color: var(--dominant-900) !important;
  color: var(--text) !important;
}

/* BOOTSTRAP WHITE COLOR CLASSES */
.bg-white {
  background-color: var(--bg) !important;
}

.border-white {
  border-color: var(--border) !important;
}

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

/* TEXT BODY & MUTED */
.text-body {
  color: var(--text) !important;
}

.text-muted,
.blockquote-footer {
  color: var(--text-muted) !important;
}

/* DROPDOWN OVERRIDES */
.dropdown-menu {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
}

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

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--bg-accented) !important;
  color: var(--text-accented) !important;
}

.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--primary) !important;
  color: var(--white) !important;
}

.dropdown-item.disabled,
.dropdown-item:disabled {
  color: var(--text-muted) !important;
}

.dropdown-divider {
  border-top-color: var(--border) !important;
}

.dropdown-header {
  color: var(--text-muted) !important;
}

/* NAV & PAGINATION OVERRIDES */
.nav-link {
  color: var(--text) !important;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--text-accented) !important;
}

.nav-link.disabled {
  color: var(--text-muted) !important;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  background-color: var(--bg) !important;
  border-color: var(--border) var(--border) var(--bg) !important;
  color: var(--text) !important;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--primary) !important;
  color: var(--white) !important;
}

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

.page-link:hover {
  background-color: var(--bg-accented) !important;
  border-color: var(--border-lifted) !important;
  color: var(--primary-lifted) !important;
}

.page-link:focus {
  box-shadow: 0 0 0 0.2rem rgba(205, 97, 65, 0.25) !important;
}

.page-item.active .page-link {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
}

.page-item.disabled .page-link {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text-muted) !important;
}

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

.breadcrumb-item.active {
  color: var(--text-muted) !important;
}

.breadcrumb-item + .breadcrumb-item::before {
  color: var(--text-muted) !important;
}

/* JUMBOTRON OVERRIDES */
.jumbotron {
  background-color: var(--bg-muted) !important;
}

/* PROGRESS BAR OVERRIDES */
.progress {
  background-color: var(--bg-muted) !important;
}

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

/* LIST GROUP OVERRIDES */
.list-group-item {
  background-color: var(--bg) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.list-group-item:hover,
.list-group-item:focus {
  background-color: var(--bg-accented) !important;
}

.list-group-item.active {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
}

.list-group-item.disabled,
.list-group-item:disabled {
  background-color: var(--bg-muted) !important;
  color: var(--text-muted) !important;
}

.list-group-item-primary {
  background-color: rgba(205, 97, 65, 0.15) !important;
  color: var(--primary) !important;
}

.list-group-item-secondary {
  background-color: var(--bg-muted) !important;
  color: var(--text) !important;
}

.list-group-item-success {
  background-color: rgba(92, 143, 90, 0.15) !important;
  color: var(--success-lifted) !important;
}

.list-group-item-danger {
  background-color: rgba(193, 65, 65, 0.15) !important;
  color: var(--error-lifted) !important;
}

.list-group-item-warning {
  background-color: rgba(216, 154, 65, 0.15) !important;
  color: var(--warning-lifted) !important;
}

.list-group-item-info {
  background-color: rgba(77, 124, 165, 0.15) !important;
  color: var(--info-lifted) !important;
}

/* FORM VALIDATION OVERRIDES */
.is-valid,
.was-validated .form-control:valid,
.was-validated .custom-select:valid {
  border-color: var(--success) !important;
}

.is-valid:focus,
.was-validated .form-control:valid:focus,
.was-validated .custom-select:valid:focus {
  border-color: var(--success) !important;
  box-shadow: 0 0 0 0.2rem rgba(92, 143, 90, 0.25) !important;
}

.valid-feedback {
  color: var(--success-lifted) !important;
}

.is-invalid,
.was-validated .form-control:invalid,
.was-validated .custom-select:invalid {
  border-color: var(--error) !important;
}

.is-invalid:focus,
.was-validated .form-control:invalid:focus,
.was-validated .custom-select:invalid:focus {
  border-color: var(--error) !important;
  box-shadow: 0 0 0 0.2rem rgba(193, 65, 65, 0.25) !important;
}

.invalid-feedback {
  color: var(--error-lifted) !important;
}

/* CUSTOM CONTROL OVERRIDES */
.custom-control-label::before {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
}

.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}

.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(205, 97, 65, 0.25) !important;
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: var(--primary-lifted) !important;
}

.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  background-color: var(--primary-lifted) !important;
  border-color: var(--primary-lifted) !important;
}

.custom-control-input[disabled] ~ .custom-control-label,
.custom-control-input:disabled ~ .custom-control-label {
  color: var(--text-muted) !important;
}

.custom-control-input[disabled] ~ .custom-control-label::before,
.custom-control-input:disabled ~ .custom-control-label::before {
  background-color: var(--bg-muted) !important;
}

/* CUSTOM SELECT OVERRIDES */
.custom-select {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.custom-select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(205, 97, 65, 0.25) !important;
}

.custom-select[multiple],
.custom-select[size]:not([size="1"]) {
  background-color: var(--bg-muted) !important;
}

.custom-select:disabled {
  background-color: var(--bg-muted) !important;
  color: var(--text-muted) !important;
}

/* CUSTOM FILE INPUT OVERRIDES */
.custom-file-label {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.custom-file-label::after {
  background-color: var(--bg-muted) !important;
  border-left-color: var(--border) !important;
  color: var(--text) !important;
}

.custom-file-input:focus ~ .custom-file-label {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(205, 97, 65, 0.25) !important;
}

.custom-file-input[disabled] ~ .custom-file-label,
.custom-file-input:disabled ~ .custom-file-label {
  background-color: var(--bg-muted) !important;
}

/* CUSTOM RANGE OVERRIDES */
.custom-range::-webkit-slider-thumb {
  background-color: var(--primary) !important;
}

.custom-range::-webkit-slider-thumb:active {
  background-color: var(--primary-lifted) !important;
}

.custom-range::-moz-range-thumb {
  background-color: var(--primary) !important;
}

.custom-range::-moz-range-thumb:active {
  background-color: var(--primary-lifted) !important;
}

.custom-range::-ms-thumb {
  background-color: var(--primary) !important;
}

.custom-range::-ms-thumb:active {
  background-color: var(--primary-lifted) !important;
}

/* CAROUSEL OVERRIDES */
.carousel-caption {
  color: var(--white) !important;
}

.carousel-control-prev,
.carousel-control-next {
  color: var(--white) !important;
}

.carousel-indicators li {
  background-color: rgba(255, 255, 255, 0.5) !important;
}

.carousel-indicators .active {
  background-color: var(--white) !important;
}

/* CLOSE BUTTON OVERRIDES */
.close {
  color: var(--text) !important;
  opacity: 0.7;
}

.close:hover,
.close:focus {
  color: var(--text) !important;
  opacity: 1;
}

/* INPUT GROUP OVERRIDES */
.input-group-text {
  background-color: var(--bg-muted) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* TOOLTIP OVERRIDES */
.tooltip-inner {
  background-color: var(--dominant-light) !important;
  color: var(--text) !important;
}

.bs-tooltip-top .arrow::before,
.bs-tooltip-auto[x-placement^="top"] .arrow::before {
  border-top-color: var(--dominant-light) !important;
}

.bs-tooltip-right .arrow::before,
.bs-tooltip-auto[x-placement^="right"] .arrow::before {
  border-right-color: var(--dominant-light) !important;
}

.bs-tooltip-bottom .arrow::before,
.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
  border-bottom-color: var(--dominant-light) !important;
}

.bs-tooltip-left .arrow::before,
.bs-tooltip-auto[x-placement^="left"] .arrow::before {
  border-left-color: var(--dominant-light) !important;
}