/* ============================================================
   THÈME UNIFIÉ — NEXUS DASHBOARD
   ------------------------------------------------------------
   Copie fidèle du style bot Discord :
   - une couleur dominante (bleu foncé)
   - tous les boutons en ButtonStyle.Secondary
   - icônes monochromes sur fond bleu uniforme
============================================================ */

:root {
  --u-surface: rgba(40, 64, 130, 0.20);
  --u-surface-hover: rgba(54, 86, 168, 0.34);
  --u-surface-active: rgba(59, 111, 224, 0.30);
  --u-border: rgba(96, 132, 220, 0.28);
  --u-border-strong: rgba(96, 132, 220, 0.55);
  --u-text: #d7e2fb;
  --u-text-strong: #ffffff;
  --u-accent: #4d82ee;
  --u-accent-soft: rgba(77, 130, 238, 0.15);
  --primary-purple: #4d82ee;
  --primary-purple-hover: #3b6fd4;
}

[data-theme="night"] {
  --primary-purple: #2563eb;
  --primary-purple-hover: #1d4ed8;
}

/* ============================================================
   BOUTONS — tous unifiés (style secondary du bot)
============================================================ */
.btn,
.btn-primary, .btn-secondary, .btn-success, .btn-danger,
.btn-accept, .btn-cancel, .btn-ghost, .btn-outline, .btn-discord,
.btn-sm, .btn-xs,
.nc-btn, .nc-btn-primary, .nc-btn-secondary, .nc-btn-danger, .nc-btn-create,
.config-btn-primary, .config-btn-secondary, .config-save-btn,
.bq-create-btn, .ent-create-btn, .lieux-create-btn,
.actions-start-btn, .actions-salary-btn, .rdv-respond-btn,
.pending-save-btn, .pending-discard-btn,
button.btn, button[type="submit"].btn {
  background-image: none !important;
  background: var(--u-surface) !important;
  color: var(--u-text) !important;
  border: 1px solid var(--u-border) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  background-clip: padding-box !important;
}

.btn:hover:not(:disabled),
.btn-primary:hover:not(:disabled), .btn-secondary:hover:not(:disabled),
.btn-success:hover:not(:disabled), .btn-danger:hover:not(:disabled),
.btn-accept:hover:not(:disabled), .btn-cancel:hover:not(:disabled),
.btn-ghost:hover:not(:disabled), .btn-outline:hover:not(:disabled),
.btn-discord:hover:not(:disabled),
.btn-sm:hover:not(:disabled), .btn-xs:hover:not(:disabled),
.nc-btn:hover:not(:disabled), .nc-btn-primary:hover:not(:disabled),
.nc-btn-secondary:hover:not(:disabled), .nc-btn-danger:hover:not(:disabled),
.nc-btn-create:hover:not(:disabled),
.config-btn-primary:hover:not(:disabled), .config-btn-secondary:hover:not(:disabled),
.config-save-btn:hover:not(:disabled),
.bq-create-btn:hover:not(:disabled), .ent-create-btn:hover:not(:disabled),
.lieux-create-btn:hover:not(:disabled),
.actions-start-btn:hover:not(:disabled), .actions-salary-btn:hover:not(:disabled),
.rdv-respond-btn:hover:not(:disabled),
.pending-save-btn:hover:not(:disabled), .pending-discard-btn:hover:not(:disabled),
button.btn:hover:not(:disabled) {
  background: var(--u-surface-hover) !important;
  color: var(--u-text-strong) !important;
  border-color: var(--u-border-strong) !important;
  transform: none !important;
  box-shadow: none !important;
}

.btn:disabled,
.btn-primary:disabled, .btn-secondary:disabled, .btn-success:disabled,
.btn-danger:disabled, .nc-btn:disabled, button.btn:disabled {
  opacity: 0.5 !important;
  background: var(--u-surface) !important;
  color: var(--u-text) !important;
}

.btn i, .btn-sm i, .btn-xs i,
.nc-btn i, .config-btn-primary i, .config-btn-secondary i,
button.btn i {
  color: inherit !important;
}

/* ============================================================
   ICÔNES — un seul accent bleu
============================================================ */
.overview-stat-icon,
.admin-stat-icon,
.lieux-stat-icon, .lieux-card-icon,
.config-card-icon, .nc-card-icon,
.nexus-card-icon, .nexus-hub-icon,
.bourse-hub-icon,
.ea-type-sidebar-icon, .ea-action-icon, .ea-ent-type-icon,
.ilt-app-icon, .ilt-header-icon,
.ia-stat-icon, .ia-module-icon,
.actions-op-icon, .illegal-op-icon, .actions-stat-icon,
.dash-theme-icon,
.feature-icon, .module-icon, .card-icon,
.empty-slot-icon, .delete-icon, .beta-icon,
.activites-modal-item-icon, .actions-pending-icon,
.personnages-icon, .vehicules-icon, .items-icon, .money-icon,
.overview-perso-avatar, .personnage-card-avatar {
  background: var(--u-accent-soft) !important;
  background-image: none !important;
  color: var(--u-accent) !important;
  border-color: var(--u-border) !important;
}

.overview-stat-icon i, .admin-stat-icon i,
.lieux-stat-icon i, .lieux-card-icon i,
.config-card-icon i, .nc-card-icon i,
.nexus-card-icon i, .nexus-hub-icon i,
.bourse-hub-icon i,
.ea-type-sidebar-icon i, .ea-action-icon i, .ea-ent-type-icon i,
.ilt-app-icon i,
.ia-stat-icon i, .ia-module-icon i,
.actions-op-icon i, .illegal-op-icon i, .actions-stat-icon i,
.dash-theme-icon i,
.feature-icon i, .module-icon i, .card-icon i,
.activites-modal-item-icon i, .actions-pending-icon i {
  color: var(--u-accent) !important;
}

/* Neutralise les couleurs inline sur icônes / titres */
h3 i[style*="color"],
.dashboard-header h1 i[style*="color"],
.actions-modal-header h3 i[style*="color"],
.overview-stat-icon[style*="color"],
.overview-stat-icon[style*="background"],
.activites-modal-item-icon[style],
.actions-pending-icon[style] {
  color: var(--u-accent) !important;
  background: var(--u-accent-soft) !important;
}

/* ============================================================
   OPTIONS / TAGS / BADGES — bleu uniquement
============================================================ */
.config-option.active,
.nc-tag, .config-role-tag,
.permit-badge, .permit-badge.complete, .permit-badge.partial, .permit-badge.none {
  background: var(--u-accent-soft) !important;
  background-image: none !important;
  color: var(--u-text) !important;
  border-color: var(--u-border) !important;
  box-shadow: none !important;
}

.config-option.active {
  border-color: var(--u-border-strong) !important;
}

.rdv-notif-btn, .logout-btn {
  background: var(--u-surface) !important;
  border: 1px solid var(--u-border) !important;
  color: var(--u-accent) !important;
}

.rdv-notif-btn:hover, .logout-btn:hover {
  background: var(--u-surface-hover) !important;
  border-color: var(--u-border-strong) !important;
  color: var(--u-text-strong) !important;
}

.rdv-notif-badge {
  background: var(--u-accent) !important;
  color: var(--u-text-strong) !important;
}

/* Barres de progression — bleu uniforme */
.actions-op-progress-fill,
.progress-fill,
[style*="background: #22c55e"],
[style*="background:#22c55e"],
[style*="background: #ef4444"],
[style*="background:#ef4444"],
[style*="background: linear-gradient(135deg, #6366f1"],
[style*="background:linear-gradient(135deg, #6366f1"] {
  background: var(--u-accent) !important;
  background-image: none !important;
}

/* Liens actifs sidebar / nav */
.dash-nav-item.active,
.dash-sub-item.active {
  background: var(--u-surface-active) !important;
  color: var(--u-text-strong) !important;
  border-color: var(--u-border) !important;
}

.dash-nav-item.active i, .dash-sub-item.active i {
  color: var(--u-accent) !important;
}

/* Toggle actif */
.config-toggle-input:checked + .config-toggle-slider {
  background: var(--u-accent) !important;
}

/* Toast / alertes — pas de rouge/vert sémantique */
.dashboard-toast.success,
.dashboard-toast.error,
.nc-toast.success, .nc-toast.error {
  background: var(--u-surface) !important;
  border: 1px solid var(--u-border-strong) !important;
  color: var(--u-text-strong) !important;
}

.dashboard-toast i, .nc-toast i {
  color: var(--u-accent) !important;
}

/* ============================================================
   ENTREPRISES — renfort bleu unifié
============================================================ */
.ent-stat-icon,
.ent-card-icon,
.ent-patron-detail-btn,
.ent-patron-avatar,
.ent-type-badge,
.ent-type-chip:has(input:checked),
.ent-perm-chip:has(input:checked),
.ent-perm-tag,
.ent-grade-icon,
.ent-grade-position,
.ent-types-toggle:hover {
  background: var(--u-accent-soft) !important;
  background-image: none !important;
  color: var(--u-accent) !important;
  border-color: var(--u-border) !important;
}

.ent-badge-boss,
.ent-badge-emp {
  background: var(--u-accent-soft) !important;
  color: var(--u-accent) !important;
  border-color: var(--u-border) !important;
}

.ent-card-action.delete:hover {
  background: var(--u-surface-hover) !important;
  color: var(--u-accent) !important;
}

.ent-btn-delete:hover,
.ent-grade-action-btn.danger:hover {
  background: var(--u-surface-hover) !important;
  color: var(--u-accent) !important;
}

.ent-delete-warning {
  color: var(--u-text) !important;
}

/* ============================================================
   BOUTIQUES / LIEUX — renfort bleu unifié
============================================================ */
.bq-stat-icon,
.bq-card-icon,
.bq-preview-chip,
.bq-picker-selected-count,
.bq-picker-item-check,
.bq-badge-org,
.bq-badge-ent,
.lieux-badge-sale,
.lieux-badge-owned {
  background: var(--u-accent-soft) !important;
  background-image: none !important;
  color: var(--u-accent) !important;
  border-color: var(--u-border) !important;
}

.bq-item-price,
.bq-article-price,
.bq-item-stock,
.bq-article-stock,
.bq-stock-ok,
.bq-stock-low,
.bq-stock-empty {
  color: var(--u-accent) !important;
}

.bq-picker-item:hover,
.bq-picker-item-selected {
  border-color: var(--u-border-strong) !important;
  background: var(--u-accent-soft) !important;
}

/* ============================================================
   CHAMPS & RECHERCHE — alignés sur nc-input
============================================================ */
.lieux-search,
.bq-search,
.ent-search,
.bq-input,
.ent-form-input,
select.bq-input,
select.ent-form-input {
  background: rgba(15, 15, 25, 0.55) !important;
  border: 1px solid var(--u-border) !important;
  color: var(--texte-primaire, var(--u-text-strong)) !important;
  border-radius: var(--nc-radius-md, 10px) !important;
}

.lieux-search:focus,
.bq-search:focus,
.ent-search:focus,
.bq-input:focus,
.ent-form-input:focus,
select.bq-input:focus,
select.ent-form-input:focus {
  border-color: var(--u-border-strong) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ============================================================
   MODALES — overlays & panneaux (tout le dashboard)
============================================================ */
.bq-modal-overlay,
.ent-modal-overlay,
.actions-modal-overlay,
.config-modal-overlay,
.bank-modal-overlay,
.patrimoine-modal-overlay,
.ea-modal-overlay,
.crypto-modal-overlay,
.erlc-modal-overlay,
.smod-modal-overlay,
.sc-modal-overlay,
.darknet-modal-overlay,
.dash-mode-modal-overlay,
.lieux-modal-overlay,
.dashboard-modal,
#personnageDetailModal,
#logoutModal {
  background: rgba(0, 0, 0, 0.65) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

.bq-modal.glass-card,
.ent-modal.glass-card,
.actions-modal.glass-card,
.config-modal,
.bank-modal,
.patrimoine-modal.glass-card,
.ea-modal,
.crypto-modal,
.erlc-modal,
.smod-modal,
.sc-modal,
.darknet-modal,
.dash-mode-modal,
.lieux-modal.glass-card,
.dashboard-modal .modal-content,
#logoutModal .modal-content {
  background: var(--carte-secondaire, #1a1a2d) !important;
  border: 1px solid var(--u-border-strong) !important;
  border-radius: var(--nc-radius-xl, 14px) !important;
  box-shadow: var(--nc-shadow-lg, 0 25px 50px rgba(0, 0, 0, 0.3)) !important;
  color: var(--texte-primaire, var(--u-text-strong)) !important;
}

.bq-modal-header,
.ent-modal-header,
.actions-modal-header,
.config-modal-header,
.bank-modal-header,
.patrimoine-modal-header,
.ea-modal-header,
.sc-modal-header,
.dashboard-modal .modal-header {
  border-bottom: 1px solid var(--u-border) !important;
}

.bq-modal-header h3,
.ent-modal-header h2,
.actions-modal-header h3,
.config-modal-header h3,
.bank-modal-header h3,
.patrimoine-modal-header h3,
.ea-modal-header h3,
.sc-modal-header h3,
.dashboard-modal h2 {
  color: var(--texte-primaire, var(--u-text-strong)) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
}

.bq-modal-header h3 i,
.ent-modal-header h2 i,
.actions-modal-header h3 i,
.config-modal-header h3 i,
.bank-modal-header h3 i,
.patrimoine-modal-header h3 i,
.ea-modal-header h3 i,
.sc-modal-header h3 i,
.nc-modal-header h3 i {
  color: var(--u-accent) !important;
}

.bq-modal-close,
.ent-modal-close,
.actions-modal-close,
.config-modal-close,
.bank-modal-close,
.patrimoine-modal-close,
.ea-modal-close,
.sc-modal-close,
.modal-close-btn,
.nc-modal-close {
  background: var(--u-surface) !important;
  border: 1px solid var(--u-border) !important;
  color: var(--u-text) !important;
  border-radius: 8px !important;
}

.bq-modal-close:hover,
.ent-modal-close:hover,
.actions-modal-close:hover,
.config-modal-close:hover,
.bank-modal-close:hover,
.patrimoine-modal-close:hover,
.ea-modal-close:hover,
.sc-modal-close:hover,
.modal-close-btn:hover,
.nc-modal-close:hover {
  background: var(--u-surface-hover) !important;
  color: var(--u-text-strong) !important;
}

.bq-modal-footer,
.ent-modal-footer,
.actions-modal-footer,
.config-modal-footer,
.bank-modal-footer,
.patrimoine-modal-footer,
.ea-modal-footer,
.sc-modal-footer,
.nc-modal-footer {
  border-top: 1px solid var(--u-border) !important;
}

.bq-form-group label,
.ent-form-group label,
.actions-modal-field label,
.config-form-group label,
.bank-modal-field label,
.patrimoine-modal-field label,
.sc-form-group label,
.nc-form-group label {
  color: var(--texte-secondaire, var(--u-text)) !important;
  font-size: 0.85rem;
  font-weight: 600;
}

.actions-modal-input,
.config-input,
.bank-modal-field input,
.patrimoine-modal-field input,
.sc-input,
.sc-textarea,
.sc-number {
  background: rgba(15, 15, 25, 0.55) !important;
  border: 1px solid var(--u-border) !important;
  color: var(--texte-primaire, var(--u-text-strong)) !important;
}

.actions-modal-input:focus,
.config-input:focus,
.bank-modal-field input:focus,
.patrimoine-modal-field input:focus,
.sc-input:focus,
.sc-textarea:focus,
.sc-number:focus {
  border-color: var(--u-border-strong) !important;
  box-shadow: none !important;
  outline: none !important;
}

.config-required,
.sc-badge-required {
  color: var(--u-accent) !important;
}

/* ============================================================
   RÔLES & SALONS — mentions unifiées (bleu, pas couleur Discord)
============================================================ */
.config-role-tag,
.config-channel-tags .config-role-tag,
.sc-role-tag,
.nc-tag {
  background: var(--u-accent-soft) !important;
  border: 1px solid var(--u-border) !important;
  color: var(--u-text) !important;
}

.config-role-tag-label,
.sc-role-tag-label,
.config-channel-selected-label {
  color: var(--u-text) !important;
}

.config-role-tag-label[style*="color"],
.sc-role-tag-label[style*="color"] {
  color: var(--u-text) !important;
}

.config-role-tag i,
.config-channel-tags .config-role-tag i,
.sc-role-tag i {
  color: var(--u-accent) !important;
}

/* ============================================================
   SIDEBAR — bleu unifié (priorité sur dashboard.css)
============================================================ */
.dash-nav-item.active,
.dash-nav-item.active i,
.dash-nav-toggle.section-active,
.dash-nav-toggle.section-active > i:first-child,
.dash-sub-item.active,
.dash-sub-item.active i,
.dash-nexus-role i,
.dash-mode-select-btn,
.dash-mode-select-btn:hover,
.dash-mode-option.active,
.mode-icon-player {
  color: var(--u-accent) !important;
  border-color: var(--u-border) !important;
}

.dash-nav-item.active,
.dash-sub-item.active,
.dash-mode-select-btn,
.dash-mode-select-btn:hover,
.dash-mode-option.active,
.mode-icon-player {
  background: var(--u-accent-soft) !important;
  background-image: none !important;
}

.dash-nexus-icon-placeholder,
.dash-mode-modal-header h3,
.sidebar .logo-text,
.sidebar .nav-link.active {
  background-image: none !important;
}

.dash-nexus-icon-placeholder {
  background: var(--u-accent-soft) !important;
  color: var(--u-accent) !important;
  border: 1px solid var(--u-border) !important;
}

/* ============================================================
   PURPLE RESIDUAL — override global (pages diverses)
============================================================ */
[style*="color:#8b5cf6"],
[style*="color: #8b5cf6"],
[style*="color:#a78bfa"],
[style*="color: #a78bfa"],
[style*="color:#6366f1"],
[style*="color: #6366f1"],
[style*="color:#818cf8"],
[style*="color: #818cf8"],
[style*="color:#7c3aed"],
[style*="color: #7c3aed"] {
  color: var(--u-accent) !important;
}

.crypto-tab.active,
.crypto-tab.active i,
.crypto-stat-icon,
.crypto-coin-icon,
.crypto-pill,
.crypto-badge,
.crypto-order-tab.active,
.crypto-chart-btn.active,
.ia-stat-icon,
.illegal-admin-stat-icon,
.bq-stat-icon,
.bq-preview-chip,
.bq-picker-selected-count,
.bq-picker-item-check {
  background: var(--u-accent-soft) !important;
  background-image: none !important;
  color: var(--u-accent) !important;
  border-color: var(--u-border) !important;
}
