/* Nordomatic Theme Variables and Overrides */
/* Created for Y-con Tool Frontend */

/* General contrast fixes */
.bg-primary *:not(.btn):not(.badge):not(.alert),
.bg-secondary *:not(.btn):not(.badge):not(.alert),
.bg-dark *:not(.btn):not(.badge):not(.alert),
.bg-success *:not(.btn):not(.badge):not(.alert),
.btn-primary *,
.btn-secondary *,
.btn-success *,
.navbar-dark *,
[style*="background-color: #292072"] *,
[style*="background-color: rgb(41, 32, 114)"] * {
  color: white !important;
}

:root {
  /* Nordomatic Brand Colors */
  --nordomatic-primary: #292072;
  --nordomatic-primary-light: #4a3f94;
  --nordomatic-primary-dark: #1f1a5f;
  --nordomatic-secondary: #00689D;
  --nordomatic-secondary-light: #3389b5;
  --nordomatic-accent: #7AC143;
  --nordomatic-accent-light: #95cf67;
  
  /* Grays */
  --nordomatic-gray-lightest: #FAFAFA;
  --nordomatic-gray-light: #F5F5F5;
  --nordomatic-gray-medium: #E0E0E0;
  --nordomatic-gray: #9E9E9E;
  --nordomatic-gray-dark: #6c757d;
  --nordomatic-gray-darkest: #333333;
  
  /* Text Colors */
  --nordomatic-text-primary: #333333;
  --nordomatic-text-secondary: #666666;
  --nordomatic-text-light: #999999;
  --nordomatic-text-inverse: #FFFFFF;
  
  /* Status Colors */
  --nordomatic-success: #7AC143;
  --nordomatic-warning: #FFB800;
  --nordomatic-danger: #E74C3C;
  --nordomatic-info: #00689D;
  
  /* Bootstrap Variable Overrides */
  --primary: var(--nordomatic-primary);
  --secondary: var(--nordomatic-secondary);
  --success: var(--nordomatic-success);
  --info: var(--nordomatic-info);
  --warning: var(--nordomatic-warning);
  --danger: var(--nordomatic-danger);
  --light: var(--nordomatic-gray-light);
  --dark: var(--nordomatic-gray-darkest);
}

/* Primary Button Styles */
.btn-primary {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--nordomatic-primary-light) !important;
  border-color: var(--nordomatic-primary-light) !important;
  box-shadow: 0 0 0 0.2rem rgba(41, 32, 114, 0.25) !important;
}

.btn-primary:active,
.btn-primary.active {
  background-color: var(--nordomatic-primary-dark) !important;
  border-color: var(--nordomatic-primary-dark) !important;
}

.btn-primary:disabled,
.btn-primary.disabled {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
  opacity: 0.65;
}

/* Secondary Button Styles */
.btn-secondary {
  background-color: var(--nordomatic-secondary) !important;
  border-color: var(--nordomatic-secondary) !important;
  color: white !important;
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: var(--nordomatic-secondary-light) !important;
  border-color: var(--nordomatic-secondary-light) !important;
  box-shadow: 0 0 0 0.2rem rgba(0, 104, 157, 0.25) !important;
}

/* Success Button Styles */
.btn-success {
  background-color: var(--nordomatic-success) !important;
  border-color: var(--nordomatic-success) !important;
}

.btn-success:hover,
.btn-success:focus {
  background-color: var(--nordomatic-accent-light) !important;
  border-color: var(--nordomatic-accent-light) !important;
  box-shadow: 0 0 0 0.2rem rgba(122, 193, 67, 0.25) !important;
}

/* Outline Button Styles */
.btn-outline-primary {
  color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
}

.btn-outline-primary:hover {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.btn-outline-secondary {
  color: var(--nordomatic-secondary) !important;
  border-color: var(--nordomatic-secondary) !important;
}

.btn-outline-secondary:hover {
  background-color: var(--nordomatic-secondary) !important;
  border-color: var(--nordomatic-secondary) !important;
  color: white !important;
}

/* Background Color Classes */
.bg-primary {
  background-color: var(--nordomatic-primary) !important;
}

.bg-secondary {
  background-color: var(--nordomatic-secondary) !important;
}

.bg-success {
  background-color: var(--nordomatic-success) !important;
}

.bg-info {
  background-color: var(--nordomatic-info) !important;
}

.bg-warning {
  background-color: var(--nordomatic-warning) !important;
}

.bg-danger {
  background-color: var(--nordomatic-danger) !important;
}

.bg-light {
  background-color: var(--nordomatic-gray-light) !important;
}

.bg-dark {
  background-color: var(--nordomatic-gray-darkest) !important;
}

/* Text Color Classes */
.text-primary {
  color: var(--nordomatic-primary) !important;
}

.text-secondary {
  color: var(--nordomatic-secondary) !important;
}

.text-success {
  color: var(--nordomatic-success) !important;
}

.text-info {
  color: var(--nordomatic-info) !important;
}

.text-warning {
  color: var(--nordomatic-warning) !important;
}

.text-danger {
  color: var(--nordomatic-danger) !important;
}

/* Border Color Classes */
.border-primary {
  border-color: var(--nordomatic-primary) !important;
}

.border-secondary {
  border-color: var(--nordomatic-secondary) !important;
}

.border-success {
  border-color: var(--nordomatic-success) !important;
}

.border-info {
  border-color: var(--nordomatic-info) !important;
}

/* Alert Styles */
.alert-primary {
  background-color: rgba(41, 32, 114, 0.1) !important;
  border-color: rgba(41, 32, 114, 0.3) !important;
  color: var(--nordomatic-primary) !important;
}

.alert-secondary {
  background-color: rgba(0, 104, 157, 0.1) !important;
  border-color: rgba(0, 104, 157, 0.3) !important;
  color: var(--nordomatic-secondary) !important;
}

.alert-success {
  background-color: rgba(122, 193, 67, 0.1) !important;
  border-color: rgba(122, 193, 67, 0.3) !important;
  color: var(--nordomatic-success) !important;
}

/* Badge Styles */
.badge-primary {
  background-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.badge-secondary {
  background-color: var(--nordomatic-secondary) !important;
  color: white !important;
}

.badge-success {
  background-color: var(--nordomatic-success) !important;
  color: white !important;
}

/* Form Control Styles */
.form-control {
  color: var(--nordomatic-text-primary) !important;
  background-color: white !important;
  border-color: var(--nordomatic-gray-medium) !important;
}

.form-control:focus {
  color: var(--nordomatic-text-primary) !important;
  background-color: white !important;
  border-color: var(--nordomatic-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(41, 32, 114, 0.25) !important;
}

.form-control:disabled,
.form-control[readonly] {
  background-color: var(--nordomatic-gray-light) !important;
  color: var(--nordomatic-text-secondary) !important;
}

.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
}

.custom-select {
  color: var(--nordomatic-text-primary) !important;
  background-color: white !important;
  border-color: var(--nordomatic-gray-medium) !important;
}

.custom-select:focus {
  color: var(--nordomatic-text-primary) !important;
  background-color: white !important;
  border-color: var(--nordomatic-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(41, 32, 114, 0.25) !important;
}

/* Navigation Styles */
.navbar-dark .navbar-brand {
  color: white !important;
}

.navbar-dark .nav-link {
  color: rgba(255, 255, 255, 0.9) !important;
}

.navbar-dark .nav-link:hover {
  color: white !important;
}

.navbar-light .navbar-brand {
  color: var(--nordomatic-primary) !important;
}

.navbar-light .nav-link {
  color: var(--nordomatic-text-primary) !important;
}

.navbar-light .nav-link:hover {
  color: var(--nordomatic-primary) !important;
}

.nav-link {
  color: var(--nordomatic-text-primary) !important;
}

.nav-link:hover {
  color: var(--nordomatic-primary) !important;
}

.nav-pills .nav-link {
  color: var(--nordomatic-text-primary) !important;
}

.nav-pills .nav-link.active {
  background-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.nav-tabs .nav-link {
  color: var(--nordomatic-text-secondary) !important;
}

.nav-tabs .nav-link.active {
  color: var(--nordomatic-primary) !important;
  border-color: #dee2e6 #dee2e6 #fff !important;
  background-color: white !important;
}

/* Selected nav-item styles */
.nav-item.active,
.nav-item.selected,
.nav-item-selected {
  background-color: var(--nordomatic-primary) !important;
}

.nav-item.active .nav-link,
.nav-item.selected .nav-link,
.nav-item-selected .nav-link {
  color: white !important;
}

/* Dropdown Styles */
.dropdown-item {
  color: var(--nordomatic-text-primary) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--nordomatic-gray-light) !important;
  color: var(--nordomatic-primary) !important;
}

.dropdown-item.active {
  background-color: var(--nordomatic-primary) !important;
  color: white !important;
}

/* Progress Bar Styles */
.progress-bar {
  background-color: var(--nordomatic-primary) !important;
}

.progress-bar.bg-success {
  background-color: var(--nordomatic-success) !important;
}

.progress-bar.bg-info {
  background-color: var(--nordomatic-info) !important;
}

/* Table Styles */
.table-primary {
  background-color: rgba(41, 32, 114, 0.08) !important;
  color: var(--nordomatic-text-primary) !important;
}

.table-primary td,
.table-primary th {
  color: var(--nordomatic-text-primary) !important;
}

.table-secondary {
  background-color: rgba(0, 104, 157, 0.08) !important;
  color: var(--nordomatic-text-primary) !important;
}

.table-success {
  background-color: rgba(122, 193, 67, 0.08) !important;
  color: var(--nordomatic-text-primary) !important;
}

.table thead th {
  border-bottom: 2px solid var(--nordomatic-gray-medium) !important;
  background-color: var(--nordomatic-gray-light) !important;
  color: var(--nordomatic-text-primary) !important;
}

/* Card Styles */
.card-header {
  background-color: var(--nordomatic-gray-light) !important;
  border-bottom: 1px solid var(--nordomatic-gray-medium) !important;
  color: var(--nordomatic-text-primary) !important;
}

.card-primary {
  border-color: var(--nordomatic-gray-medium) !important;
}

.card-primary .card-header {
  background-color: var(--nordomatic-primary) !important;
  color: white !important;
  border-bottom: 1px solid var(--nordomatic-primary) !important;
}

/* Pagination Styles */
.page-link {
  color: var(--nordomatic-primary) !important;
  background-color: white !important;
}

.page-link:hover {
  color: var(--nordomatic-primary-dark) !important;
  background-color: var(--nordomatic-gray-light) !important;
}

.page-item.active .page-link {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.page-item.disabled .page-link {
  color: var(--nordomatic-gray) !important;
  background-color: white !important;
}

/* Modal Styles */
.modal-header {
  border-bottom: 1px solid var(--nordomatic-gray-medium) !important;
}

.modal-footer {
  border-top: 1px solid var(--nordomatic-gray-medium) !important;
}

/* Spinner Styles */
.spinner-border-primary {
  color: var(--nordomatic-primary) !important;
}

/* List Group Styles */
.list-group-item {
  color: var(--nordomatic-text-primary) !important;
  background-color: white !important;
}

.list-group-item:hover {
  background-color: var(--nordomatic-gray-light) !important;
}

.list-group-item.active {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.list-group-item.active * {
  color: white !important;
}

.list-group-item-action.active {
  background-color: var(--nordomatic-primary) !important;
  border-color: var(--nordomatic-primary) !important;
  color: white !important;
}

.list-group-item-action.active * {
  color: white !important;
}

/* Link Styles */
a {
  color: var(--nordomatic-primary) !important;
}

a:hover {
  color: var(--nordomatic-primary-light) !important;
  text-decoration: underline;
}

/* Ensure text contrast on dark backgrounds */
.bg-primary,
.bg-secondary,
.bg-dark,
.bg-success {
  color: white !important;
}

.bg-primary *,
.bg-secondary *,
.bg-dark *,
.bg-success * {
  color: white !important;
}

.bg-light {
  color: var(--nordomatic-text-primary) !important;
}

.bg-light * {
  color: var(--nordomatic-text-primary) !important;
}

/* Selection Styles */
::selection {
  background-color: var(--nordomatic-primary) !important;
  color: white !important;
}

::-moz-selection {
  background-color: var(--nordomatic-primary) !important;
  color: white !important;
}