/*
 * Threeaxe EDD Dashboard — Stylesheet
 * Version : 2.0.0
 * Author  : Threeaxe <hub.threeaxe.fr>
 * License : GPL-2.0-or-later
 * ─────────────────────────────────────────────────────────────────────────────
 * Variables principales injectées dynamiquement via class-assets.php :
 *   --tax-primary   : Couleur principale (défaut #1d4ed8)
 *   --tax-secondary : Couleur de fond sombre (défaut #0f172a)
 *   --tax-accent    : Couleur d'accentuation (défaut #3b82f6)
 * ─────────────────────────────────────────────────────────────────────────────
 */

/* ══════════════════════════════════════════════════════════════════════════════
   1. TOKENS DE DESIGN
   ══════════════════════════════════════════════════════════════════════════════ */
:root {
  /* Fallbacks si la génération PHP n'est pas disponible */
  --tax-primary:        #2563eb;
  --tax-secondary:      #1e3a8a;
  --tax-accent:         #60a5fa;

  /* Neutres */
  --tax-white:          #ffffff;
  --tax-gray-50:        #f8fafc;
  --tax-gray-100:       #f1f5f9;
  --tax-gray-200:       #e2e8f0;
  --tax-gray-300:       #cbd5e1;
  --tax-gray-400:       #94a3b8;
  --tax-gray-500:       #64748b;
  --tax-gray-600:       #475569;
  --tax-gray-700:       #334155;
  --tax-gray-800:       #1e293b;
  --tax-gray-900:       #0f172a;

  /* Sémantique */
  --tax-success:        #16a34a;
  --tax-success-bg:     #dcfce7;
  --tax-error:          #dc2626;
  --tax-error-bg:       #fee2e2;
  --tax-warning:        #d97706;
  --tax-warning-bg:     #fef3c7;
  --tax-info:           #0284c7;
  --tax-info-bg:        #e0f2fe;

  /* Typographie */
  --tax-font:           -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --tax-font-mono:      ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --tax-fs-xs:          .75rem;
  --tax-fs-sm:          .875rem;
  --tax-fs-base:        1rem;
  --tax-fs-lg:          1.125rem;
  --tax-fs-xl:          1.25rem;
  --tax-fs-2xl:         1.5rem;
  --tax-fs-3xl:         1.875rem;
  --tax-fw-normal:      400;
  --tax-fw-medium:      500;
  --tax-fw-semibold:    600;
  --tax-fw-bold:        700;
  --tax-line-height:    1.6;

  /* Espacements */
  --tax-space-1:        .25rem;
  --tax-space-2:        .5rem;
  --tax-space-3:        .75rem;
  --tax-space-4:        1rem;
  --tax-space-5:        1.25rem;
  --tax-space-6:        1.5rem;
  --tax-space-8:        2rem;
  --tax-space-10:       2.5rem;
  --tax-space-12:       3rem;

  /* Bordures & ombres */
  --tax-radius-sm:      .375rem;
  --tax-radius:         .5rem;
  --tax-radius-lg:      .75rem;
  --tax-radius-xl:      1rem;
  --tax-radius-full:    9999px;
  --tax-border:         1px solid var(--tax-gray-200);
  --tax-shadow-sm:      0 1px 2px 0 rgb(0 0 0 / .05);
  --tax-shadow:         0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .07);
  --tax-shadow-lg:      0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .08);
  --tax-shadow-xl:      0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);

  /* Transitions */
  --tax-transition:     .2s ease;
  --tax-transition-lg:  .3s ease;
}

/* ══════════════════════════════════════════════════════════════════════════════
   2. RESET CIBLÉ & NEUTRALISATION DU DARK-MODE ELEMENTOR / THÈME
   ══════════════════════════════════════════════════════════════════════════════ */

/*
 * Neutralise les variables CSS d'Elementor et des thèmes sombres dans notre scope.
 * Elementor définit --e-global-color-*, --e-background-color etc. qui s'héritent
 * et écrasent nos couleurs. On les réinitialise ici en mode clair.
 */
.tax-edd-dashboard,
.tax-auth-wrap,
.tax-auth-card {
  /* Variables Elementor communes */
  --e-global-color-primary:    #2563eb;
  --e-global-color-secondary:  #1e3a8a;
  --e-global-color-text:       #334155;
  --e-global-color-accent:     #60a5fa;
  /* Couleurs de base héritées by Elementor / thèmes */
  --color-background:          #ffffff;
  --background-color:          #ffffff;
  --base-background-color:     #ffffff;
  --color-text:                #334155;
  --text-color:                #334155;
  --color-body-background:     #ffffff;
  /* Variables Twenty-Twenty+ et autres thèmes */
  --wp--preset--color--background: #ffffff;
  --wp--preset--color--foreground: #334155;
  /* Forcer le mode clair au niveau système */
  color-scheme: light only;
}

/* Reset complet : fond blanc et texte sombre sur TOUS les enfants */
.tax-edd-dashboard,
.tax-edd-dashboard *,
.tax-edd-dashboard *::before,
.tax-edd-dashboard *::after,
.tax-auth-wrap,
.tax-auth-wrap *,
.tax-auth-links-bar *,
.tax-user-greeting * {
  box-sizing: border-box;
  color-scheme: light;
}

/* Forçage fond clair sur les éléments HTML courants que les thèmes/Elementor peuvent assombrir */
.tax-edd-dashboard div,
.tax-edd-dashboard section,
.tax-edd-dashboard article,
.tax-edd-dashboard aside,
.tax-edd-dashboard nav,
.tax-edd-dashboard main,
.tax-edd-dashboard p,
.tax-edd-dashboard span,
.tax-edd-dashboard li,
.tax-edd-dashboard td,
.tax-edd-dashboard th,
.tax-edd-dashboard label,
.tax-edd-dashboard input,
.tax-edd-dashboard select,
.tax-edd-dashboard textarea,
.tax-edd-dashboard legend,
.tax-edd-dashboard fieldset,
.tax-edd-dashboard button,
.tax-edd-dashboard a {
  background-color: transparent;
  color: inherit;
}

/* ══════════════════════════════════════════════════════════════════════════════
   3. TABLEAU DE BORD PRINCIPAL
   ══════════════════════════════════════════════════════════════════════════════ */
.tax-edd-dashboard {
  font-family: var(--tax-font);
  font-size: var(--tax-fs-base);
  line-height: var(--tax-line-height);
  color: var(--tax-gray-700) !important;
  background: var(--tax-white) !important;
  border-radius: var(--tax-radius-xl);
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgb(0 0 0 / .06),
    0 4px 16px -4px rgb(0 0 0 / .12),
    0 16px 40px -10px rgb(0 0 0 / .08);
  margin: 0 auto;
  color-scheme: light;
}

/* ── EN-TÊTE ─────────────────────────────────────────────────────────────── */
.tax-dash-header {
  display: flex;
  align-items: center;
  gap: var(--tax-space-5);
  padding: var(--tax-space-8);
  background: #1e3a8a;
  color: var(--tax-white);
  position: relative;
  overflow: hidden;
  min-height: 140px;
}

/* Trait de séparation coloré en bas du header */
.tax-dash-header::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255,255,255,.12);
  pointer-events: none;
  z-index: 0;
}

/* Cercles décoratifs solides (sans gradient) */
.tax-dash-header-deco {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}

.tax-dash-header-deco::before,
.tax-dash-header-deco::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,.05);
}

.tax-dash-header-deco::before {
  width: 320px;
  height: 320px;
  top: -120px;
  right: 60px;
}

.tax-dash-header-deco::after {
  width: 200px;
  height: 200px;
  bottom: -80px;
  left: 40%;
}

.tax-dash-avatar,
.tax-dash-header-info,
.tax-dash-logout-btn {
  position: relative;
  z-index: 1;
}

/* Ring autour de l'avatar */
.tax-avatar-ring {
  width: 90px;
  height: 90px;
  border-radius: var(--tax-radius-full);
  padding: 3px;
  background: rgba(255,255,255,.15);
  border: 2px solid rgba(255,255,255,.3);
  box-shadow:
    0 0 0 4px rgba(255,255,255,.07),
    0 10px 24px rgba(0,0,0,.3);
  flex-shrink: 0;
}

.tax-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: var(--tax-radius-full);
  object-fit: cover;
  display: block;
}

.tax-dash-header-info {
  flex: 1;
  min-width: 0;
}

.tax-dash-greeting {
  font-size: var(--tax-fs-sm);
  color: rgba(255,255,255,.65);
  margin: 0 0 2px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: var(--tax-fw-medium);
}

.tax-dash-username {
  font-size: var(--tax-fs-2xl);
  font-weight: var(--tax-fw-bold);
  color: var(--tax-white);
  margin: 0 0 var(--tax-space-3);
  line-height: 1.2;
  text-shadow: 0 1px 3px rgba(0,0,0,.2);
}

.tax-dash-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tax-space-3);
  align-items: center;
}

.tax-dash-email-badge,
.tax-dash-since-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-2);
  font-size: var(--tax-fs-xs);
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--tax-radius-full);
  padding: 4px var(--tax-space-3);
  line-height: 1.5;
  white-space: nowrap;
  letter-spacing: .01em;
}

.tax-dash-email-badge svg,
.tax-dash-since-badge svg {
  width: .85rem;
  height: .85rem;
  flex-shrink: 0;
  opacity: .8;
}

.tax-dash-since-badge strong {
  color: rgba(255,255,255,.95);
  font-weight: var(--tax-fw-semibold);
}

.tax-dash-logout-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-2);
  padding: var(--tax-space-2) var(--tax-space-5);
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--tax-radius-full);
  color: var(--tax-white);
  font-size: var(--tax-fs-sm);
  font-weight: var(--tax-fw-medium);
  text-decoration: none;
  transition: background var(--tax-transition), border-color var(--tax-transition), transform var(--tax-transition);
  flex-shrink: 0;
  white-space: nowrap;
  margin-left: auto;
}

.tax-dash-logout-btn:hover,
.tax-dash-logout-btn:focus-visible {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.45);
  color: var(--tax-white);
  transform: translateY(-1px);
  outline: none;
  text-decoration: none;
}

.tax-dash-logout-btn svg {
  width: 1rem;
  height: 1rem;
}

/* ── STATISTIQUES ─────────────────────────────────────────────────────────── */
.tax-dash-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--tax-gray-50) !important;
  border-bottom: var(--tax-border);
  padding: var(--tax-space-5) var(--tax-space-4);
  gap: var(--tax-space-3);
}

.tax-stat-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  padding: var(--tax-space-4) var(--tax-space-5);
  gap: var(--tax-space-4);
  border: 1px solid var(--tax-gray-200);
  border-top: 3px solid transparent;
  border-radius: var(--tax-radius-lg);
  transition: transform var(--tax-transition), box-shadow var(--tax-transition);
  background: var(--tax-white) !important;
  color: var(--tax-gray-700) !important;
  box-shadow: var(--tax-shadow-sm);
}

.tax-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--tax-shadow);
  border-color: var(--tax-gray-300);
}

/* Couleur d'accent en haut selon le type */
.tax-stat-orders  { border-top-color: var(--tax-primary) !important; }
.tax-stat-spent   { border-top-color: var(--tax-success) !important; }
.tax-stat-downloads { border-top-color: #8b5cf6 !important; }

.tax-stat-orders .tax-stat-icon  { background: #eff6ff; }
.tax-stat-spent .tax-stat-icon   { background: #dcfce7; }
.tax-stat-downloads .tax-stat-icon { background: #f5f3ff; }

.tax-stat-orders .tax-stat-icon svg  { stroke: var(--tax-primary); }
.tax-stat-spent .tax-stat-icon svg   { stroke: var(--tax-success); }
.tax-stat-downloads .tax-stat-icon svg { stroke: #7c3aed; }

.tax-stat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--tax-radius-lg);
  background: var(--tax-gray-100);
  flex-shrink: 0;
  border: 1px solid var(--tax-gray-200);
}

.tax-stat-icon svg {
  width: 1.3rem;
  height: 1.3rem;
  stroke: var(--tax-primary);
}

.tax-stat-value {
  font-size: var(--tax-fs-2xl);
  font-weight: var(--tax-fw-bold);
  color: var(--tax-gray-900) !important;
  line-height: 1;
  letter-spacing: -.01em;
}

.tax-stat-label {
  font-size: var(--tax-fs-xs);
  color: var(--tax-gray-500) !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: var(--tax-fw-semibold);
  margin-top: var(--tax-space-1);
}

.tax-stat-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

/* ── NAVIGATION PAR ONGLETS ───────────────────────────────────────────────── */
/* ── NAVIGATION PAR ONGLETS — style pill ─────────────────────────────────── */
.tax-dash-nav {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  background: var(--tax-gray-50) !important;
  border-bottom: 1px solid var(--tax-gray-200) !important;
  padding: var(--tax-space-2) var(--tax-space-3);
  gap: var(--tax-space-1);
  /* Cache la scrollbar tout en gardant le scroll */
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}

.tax-dash-nav::-webkit-scrollbar {
  display: none;
}

.tax-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-2);
  padding: var(--tax-space-2) var(--tax-space-4);
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: var(--tax-radius-full);
  color: var(--tax-gray-600) !important; /* ratio 5.9:1 */
  font-size: var(--tax-fs-sm);
  font-weight: var(--tax-fw-medium);
  font-family: var(--tax-font);
  white-space: nowrap;
  cursor: pointer;
  transition:
    background var(--tax-transition),
    border-color var(--tax-transition),
    color var(--tax-transition),
    box-shadow var(--tax-transition);
  flex-shrink: 0;
  line-height: 1.5;
  text-decoration: none;
  user-select: none;
}

.tax-tab-btn svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  stroke-width: 2;
  transition: color var(--tax-transition);
}

.tax-tab-btn:hover {
  background: var(--tax-gray-200) !important;
  color: var(--tax-gray-900) !important;
  border-color: transparent !important;
  text-decoration: none;
}

/* Tab actif — pill blanc avec ombre et bordure */
.tax-tab-btn.active,
.tax-tab-btn[aria-selected="true"] {
  background: var(--tax-white) !important;
  color: var(--tax-primary) !important;
  border-color: var(--tax-gray-200) !important;
  font-weight: var(--tax-fw-semibold);
  box-shadow: 0 1px 4px rgb(0 0 0 / .08), 0 0 0 1px var(--tax-gray-200);
}

.tax-tab-btn:focus-visible {
  outline: 2px solid var(--tax-primary);
  outline-offset: 1px;
}

/* ── CONTENU DES ONGLETS ──────────────────────────────────────────────────── */
.tax-dash-content {
  background: var(--tax-gray-50) !important;
  color: var(--tax-gray-700) !important;
  padding: var(--tax-space-4);
}

.tax-tab-pane {
  display: none;
}

.tax-tab-pane.active,
.tax-tab-pane:not([hidden]) {
  display: block;
  animation: taxFadeIn .25s cubic-bezier(.25, .46, .45, .94);
}

@keyframes taxFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.tax-tab-inner {
  padding: var(--tax-space-6) var(--tax-space-8);
  background: var(--tax-white) !important;
  color: var(--tax-gray-700) !important;
  border-radius: var(--tax-radius-lg);
  border: 1px solid var(--tax-gray-200);
  box-shadow: var(--tax-shadow-sm);
}

/* ── EN-TÊTE DE SECTION ───────────────────────────────────────────────── */
.tax-section-header {
  display: flex;
  align-items: center;
  gap: var(--tax-space-3);
  margin-bottom: var(--tax-space-5);
  padding-bottom: var(--tax-space-4);
  border-bottom: 2px solid var(--tax-gray-100);
}

.tax-section-title {
  display: flex;
  align-items: center;
  gap: var(--tax-space-3);
  font-size: var(--tax-fs-base);
  font-weight: var(--tax-fw-semibold);
  color: var(--tax-gray-800) !important;
  margin: 0;
  line-height: 1.3;
}

.tax-section-title svg {
  display: none; /* Géré par .tax-section-icon */
}

/* Conteneur icône solid devant le titre */
.tax-section-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--tax-radius);
  background: var(--tax-primary);
  flex-shrink: 0;
  box-shadow: 0 1px 4px rgb(37 99 235 / .3);
}

.tax-section-icon svg {
  width: 1rem;
  height: 1rem;
  stroke: #fff;
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════════════════════
   4. FORMULAIRES D'AUTHENTIFICATION
   ══════════════════════════════════════════════════════════════════════════════ */
.tax-auth-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: var(--tax-space-8) var(--tax-space-4);
  /* Force le fond clair : écrase le fond de section Elementor */
  background:       var(--tax-gray-100) !important;
  background-color: var(--tax-gray-100) !important;
  min-height: 100%;
}

.tax-auth-card {
  width: 100%;
  max-width: 480px;
  background: var(--tax-white) !important;
  border-radius: var(--tax-radius-xl);
  border: 1px solid var(--tax-gray-200);
  box-shadow:
    0 0 0 1px rgb(0 0 0 / .04),
    0 4px 16px -4px rgb(0 0 0 / .08),
    0 16px 40px -10px rgb(0 0 0 / .06);
  overflow: hidden;
  position: relative;
}

.tax-auth-card::before { display: none; }

/* ── EN-TÊTE : icône + titre (style identique aux sections du dashboard) ─── */
.tax-auth-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--tax-space-4);
  padding: var(--tax-space-6) var(--tax-space-8);
  background: var(--tax-white);
  border-bottom: 1px solid var(--tax-gray-100);
}

.tax-auth-header svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke: var(--tax-white);
  flex-shrink: 0;
  background: var(--tax-primary);
  border-radius: var(--tax-radius);
  padding: .45rem;
  box-sizing: content-box;
}

.tax-auth-header h2 {
  font-size: var(--tax-fs-lg);
  font-weight: var(--tax-fw-bold);
  color: var(--tax-gray-900);
  margin: 0;
  line-height: 1.2;
}

/* ── CORPS : padding identique au dashboard ──────────────────────────────── */
.tax-auth-card > form,
.tax-auth-card > .tax-notice,
.tax-auth-card > .tax-auth-links,
.tax-auth-body {
  padding-left: var(--tax-space-8);
  padding-right: var(--tax-space-8);
}

.tax-auth-card > form {
  padding-top: var(--tax-space-6);
  padding-bottom: var(--tax-space-2);
}

.tax-auth-card > .tax-notice {
  margin-top: var(--tax-space-6);
  margin-bottom: 0;
}

.tax-auth-card > .tax-auth-links {
  padding-bottom: var(--tax-space-6);
}

.tax-auth-desc {
  text-align: center;
  color: var(--tax-gray-600); /* Amélioré : #475569 → ratio ~5.9:1 */
  font-size: var(--tax-fs-sm);
  margin-bottom: var(--tax-space-6);
}

/* ── GROUPES DE FORMULAIRE ────────────────────────────────────────────────── */
.tax-form-group,
.tax-auth-card .login-username,
.tax-auth-card .login-password,
.tax-auth-card .login-remember {
  display: flex;
  flex-direction: column;
  gap: var(--tax-space-2);
  margin-bottom: var(--tax-space-5);
}

.tax-form-group label,
.tax-auth-card label {
  font-size: var(--tax-fs-sm);
  font-weight: var(--tax-fw-semibold); /* Semibold pour meilleur contraste perçu */
  color: var(--tax-gray-800); /* #1e293b → ratio ~13.4:1 sur fond blanc */
}

.tax-form-group label span,
.tax-auth-card label span {
  color: var(--tax-error);
}

.tax-form-group input,
.tax-auth-card input[type="text"],
.tax-auth-card input[type="email"],
.tax-auth-card input[type="password"] {
  width: 100%;
  padding: calc(var(--tax-space-3) + 1px) var(--tax-space-4);
  border: 1px solid var(--tax-gray-300); /* Plus visible que gray-200 */
  border-radius: var(--tax-radius);
  font-size: var(--tax-fs-base);
  font-family: var(--tax-font);
  color: var(--tax-gray-900); /* #0f172a → contraste max */
  background: var(--tax-white);
  transition: border-color var(--tax-transition), box-shadow var(--tax-transition);
  height: auto;
  margin: 0;
}

.tax-form-group input::placeholder,
.tax-auth-card input::placeholder {
  color: var(--tax-gray-400); /* #94a3b8 → ratio 3.3:1, acceptable pour placeholder */
}

.tax-form-group input:hover,
.tax-auth-card input[type="text"]:hover,
.tax-auth-card input[type="email"]:hover,
.tax-auth-card input[type="password"]:hover {
  border-color: var(--tax-gray-300);
}

.tax-form-group input:focus,
.tax-auth-card input[type="text"]:focus,
.tax-auth-card input[type="email"]:focus,
.tax-auth-card input[type="password"]:focus {
  outline: none;
  border-color: var(--tax-primary);
  box-shadow: 0 0 0 3px rgb(29 78 216 / .12);
}

/* ── CHAMP AVEC BOUTON (ex: toggle mot de passe) ─────────────────────────── */
.tax-input-group {
  display: flex;
  position: relative;
}

.tax-input-group input {
  flex: 1;
  border-radius: var(--tax-radius) 0 0 var(--tax-radius) !important;
}

.tax-toggle-password {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--tax-space-3);
  border: var(--tax-border);
  border-left: none;
  border-radius: 0 var(--tax-radius) var(--tax-radius) 0;
  background: var(--tax-gray-50);
  cursor: pointer;
  color: var(--tax-gray-500);
  transition: background var(--tax-transition), color var(--tax-transition);
}

.tax-toggle-password:hover {
  background: var(--tax-gray-100);
  color: var(--tax-gray-700);
}

.tax-toggle-password svg {
  width: 1.1rem;
  height: 1.1rem;
  display: block;
}

/* ── INDICATEUR DE FORCE MDP ──────────────────────────────────────────────── */
.tax-password-strength {
  font-size: var(--tax-fs-xs);
  color: var(--tax-gray-500);
  min-height: 1.2em;
}

.tax-password-strength.weak   { color: var(--tax-error); }
.tax-password-strength.fair   { color: var(--tax-warning); }
.tax-password-strength.good   { color: var(--tax-success); }
.tax-password-strength.strong { color: var(--tax-success); font-weight: var(--tax-fw-semibold); }

/* ── CASE À COCHER REMEMBER ───────────────────────────────────────────────── */
.tax-auth-card .login-remember {
  flex-direction: row;
  align-items: center;
  gap: var(--tax-space-2);
  margin-bottom: var(--tax-space-5);
}

.tax-auth-card input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  margin: 0;
  accent-color: var(--tax-primary);
  cursor: pointer;
}

/* ── BOUTONS ──────────────────────────────────────────────────────────────── */
.tax-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--tax-space-2);
  padding: var(--tax-space-3) var(--tax-space-6);
  border-radius: var(--tax-radius);
  font-size: var(--tax-fs-base);
  font-weight: var(--tax-fw-semibold);
  font-family: var(--tax-font);
  cursor: pointer;
  text-decoration: none;
  border: 2px solid transparent;
  transition: all var(--tax-transition);
  line-height: 1.5;
  white-space: nowrap;
}

.tax-btn:focus-visible {
  outline: 2px solid var(--tax-accent);
  outline-offset: 2px;
}

.tax-btn-primary {
  background: var(--tax-primary);
  color: var(--tax-white);
  border-color: var(--tax-primary);
}

.tax-btn-primary:hover {
  filter: brightness(1.1);
  color: var(--tax-white);
  text-decoration: none;
}

.tax-btn-outline {
  background: transparent;
  color: var(--tax-primary);
  border-color: var(--tax-primary);
}

.tax-btn-outline:hover {
  background: var(--tax-primary);
  color: var(--tax-white);
  text-decoration: none;
}

.tax-btn-full {
  width: 100%;
}

/* Bouton submit WP Login Form */
.tax-auth-card input[type="submit"],
.tax-auth-card .button-primary {
  display: block !important;
  width: 100% !important;
  padding: var(--tax-space-3) var(--tax-space-6) !important;
  background: var(--tax-primary) !important;
  color: var(--tax-white) !important;
  border: none !important;
  border-radius: var(--tax-radius) !important;
  font-size: var(--tax-fs-base) !important;
  font-weight: var(--tax-fw-semibold) !important;
  font-family: var(--tax-font) !important;
  cursor: pointer !important;
  transition: filter var(--tax-transition) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  margin: 0 !important;
  height: auto !important;
}

.tax-auth-card input[type="submit"]:hover,
.tax-auth-card .button-primary:hover {
  filter: brightness(1.1) !important;
}

/* ── LIENS ────────────────────────────────────────────────────────────────── */
.tax-auth-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--tax-space-3);
  margin-top: var(--tax-space-6);
  flex-wrap: wrap;
}

.tax-link-muted {
  font-size: var(--tax-fs-sm);
  color: var(--tax-gray-600); /* Amélioré : #475569 → 5.9:1 */
  text-decoration: none;
  transition: color var(--tax-transition);
}

.tax-link-muted:hover {
  color: var(--tax-primary);
  text-decoration: underline;
}

.tax-auth-sep {
  color: var(--tax-gray-300);
}

/* Masquer les liens « Register / S'inscrire » injectés par des plugins tiers
   (reCAPTCHA BestWebSoft, etc.) via le hook login_form dans notre formulaire. */
.tax-login-form p.register,
.tax-login-form p.nav,
.tax-login-form > p > a[href*="action=register"],
.tax-login-form a[href*="wp-login.php?action=register"] {
  display: none !important;
}

/* ── NOTIFICATIONS / ALERTES ──────────────────────────────────────────────── */
.tax-notice {
  display: flex;
  align-items: flex-start;
  gap: var(--tax-space-3);
  padding: var(--tax-space-4);
  border-radius: var(--tax-radius);
  margin-bottom: var(--tax-space-5);
  font-size: var(--tax-fs-sm);
  border-left: 4px solid;
}

.tax-notice ul {
  margin: 0;
  padding: 0 0 0 var(--tax-space-4);
}

.tax-notice-success {
  background: var(--tax-success-bg);
  border-color: var(--tax-success);
  color: #14532d;
}

.tax-notice-error {
  background: var(--tax-error-bg);
  border-color: var(--tax-error);
  color: #7f1d1d;
}

.tax-notice-info {
  background: var(--tax-info-bg);
  border-color: var(--tax-info);
  color: #075985;
}

.tax-notice-warning {
  background: var(--tax-warning-bg);
  border-color: var(--tax-warning);
  color: #78350f;
}

/* ══════════════════════════════════════════════════════════════════════════════
   5. BARRE DE LIENS AUTH (tax_auth_links)
   ══════════════════════════════════════════════════════════════════════════════ */
.tax-auth-links-bar {
  display: flex;
  align-items: center;
  gap: var(--tax-space-3);
  font-family: var(--tax-font);
  font-size: var(--tax-fs-sm);
  flex-wrap: wrap;
}

.tax-auth-user {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-2);
  color: var(--tax-gray-700);
  font-weight: var(--tax-fw-medium);
}

.tax-mini-avatar {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: var(--tax-radius-full);
  object-fit: cover;
  display: block;
}

.tax-auth-link {
  color: var(--tax-primary);
  text-decoration: none;
  font-weight: var(--tax-fw-medium);
  transition: opacity var(--tax-transition);
}

.tax-auth-link:hover {
  opacity: .8;
  text-decoration: underline;
}

.tax-auth-link-primary {
  padding: var(--tax-space-2) var(--tax-space-4);
  background: var(--tax-primary);
  color: var(--tax-white) !important;
  border-radius: var(--tax-radius);
  transition: filter var(--tax-transition);
}

.tax-auth-link-primary:hover {
  filter: brightness(1.1);
  text-decoration: none;
}

/* ══════════════════════════════════════════════════════════════════════════════
   6. WIDGET SALUTATION (tax_user_greeting)
   ══════════════════════════════════════════════════════════════════════════════ */
.tax-user-greeting {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-3);
  font-family: var(--tax-font);
}

.tax-greeting-avatar {
  border-radius: var(--tax-radius-full);
  object-fit: cover;
  display: block;
  flex-shrink: 0;
}

.tax-greeting-text {
  display: flex;
  flex-direction: column;
  gap: var(--tax-space-1);
}

.tax-greeting-hello {
  font-size: var(--tax-fs-xs);
  color: var(--tax-gray-500);
  text-transform: uppercase;
  letter-spacing: .05em;
}

.tax-greeting-name {
  font-size: var(--tax-fs-base);
  font-weight: var(--tax-fw-bold);
  color: var(--tax-secondary);
}

/* ══════════════════════════════════════════════════════════════════════════════
   7. COMPATIBILITÉ EDD — Surcharge des styles EDD en contexte dashboard
   ══════════════════════════════════════════════════════════════════════════════ */

/* ─── Formulaire de profil EDD ─────────────────────────────────────────────── */
.tax-tab-inner #edd_profile_editor_form input[type="text"],
.tax-tab-inner #edd_profile_editor_form input[type="email"],
.tax-tab-inner #edd_profile_editor_form input[type="password"],
.tax-tab-inner #edd_profile_editor_form select,
.tax-tab-inner #edd_profile_editor_form textarea {
  width: 100%;
  padding: var(--tax-space-3) var(--tax-space-4);
  border: var(--tax-border) !important;
  border-radius: var(--tax-radius);
  font-size: var(--tax-fs-base);
  margin-bottom: var(--tax-space-4);
  height: auto;
  background: var(--tax-white) !important;
  color: var(--tax-gray-800) !important;
  transition: border-color var(--tax-transition), box-shadow var(--tax-transition);
}

.tax-tab-inner #edd_profile_editor_form input:focus,
.tax-tab-inner #edd_profile_editor_form select:focus,
.tax-tab-inner #edd_profile_editor_form textarea:focus {
  outline: none;
  border-color: var(--tax-primary);
  box-shadow: 0 0 0 3px rgb(29 78 216 / .12);
}

.tax-tab-inner #edd_profile_editor_form input[type="submit"].edd-submit {
  padding: var(--tax-space-3) var(--tax-space-8) !important;
  background: var(--tax-primary) !important;
  color: var(--tax-white) !important;
  border: none !important;
  border-radius: var(--tax-radius) !important;
  font-size: var(--tax-fs-base) !important;
  font-weight: var(--tax-fw-semibold) !important;
  cursor: pointer !important;
  transition: filter var(--tax-transition) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
}

.tax-tab-inner #edd_profile_editor_form input[type="submit"].edd-submit:hover {
  filter: brightness(1.1) !important;
}

.tax-tab-inner #edd_profile_editor_form label {
  display: block;
  font-size: var(--tax-fs-sm);
  font-weight: var(--tax-fw-medium);
  color: var(--tax-gray-700) !important;
  margin-bottom: var(--tax-space-2);
}

.tax-tab-inner #edd_profile_editor_form fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 0 var(--tax-space-6) !important;
  background: transparent !important;
}

.tax-tab-inner legend {
  font-size: var(--tax-fs-base);
  font-weight: var(--tax-fw-semibold);
  color: var(--tax-gray-700) !important;
  border: none !important;
  border-bottom: 2px solid var(--tax-gray-200) !important;
  padding-bottom: var(--tax-space-3);
  margin-bottom: var(--tax-space-5);
  width: 100%;
  float: none;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: var(--tax-fs-xs);
  color: var(--tax-gray-500) !important;
}

/* ─── Tableau historique des achats / téléchargements ─────────────────────── */

/* Wrapper scrollable pour les tables (full bleed) */
.tax-tab-inner .tax-table-wrap {
  margin: 0 calc(-1 * var(--tax-space-8)); /* compense le padding horizontal du tax-tab-inner */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid var(--tax-gray-100);
  scrollbar-width: thin;
  scrollbar-color: var(--tax-gray-300) transparent;
}

.tax-tab-inner .tax-table-wrap::-webkit-scrollbar {
  height: 4px;
}

.tax-tab-inner .tax-table-wrap::-webkit-scrollbar-track {
  background: var(--tax-gray-100);
}

.tax-tab-inner .tax-table-wrap::-webkit-scrollbar-thumb {
  background: var(--tax-gray-300);
  border-radius: var(--tax-radius-full);
}

.tax-tab-inner table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--tax-fs-sm);
  background: var(--tax-white) !important;
  margin: 0;
}

/* ── En-tête de tableau ── */
.tax-tab-inner table thead {
  background: var(--tax-gray-50) !important;
  border-bottom: 2px solid var(--tax-gray-200);
}

.tax-tab-inner table th,
.tax-tab-inner table th * {
  background: transparent !important;
  color: var(--tax-gray-600) !important;
  padding: var(--tax-space-4) var(--tax-space-5);
  text-align: left;
  font-weight: var(--tax-fw-semibold);
  font-size: var(--tax-fs-xs);
  text-transform: uppercase;
  letter-spacing: .07em;
  border: none !important;
  white-space: nowrap;
  line-height: 1.5;
}

/* ── Cellules ── */
.tax-tab-inner table td {
  padding: var(--tax-space-5) var(--tax-space-5);
  border-bottom: 1px solid var(--tax-gray-100) !important;
  vertical-align: middle;
  color: var(--tax-gray-700) !important;
  background: var(--tax-white) !important;
  line-height: 1.6;
}

.tax-tab-inner table tr:last-child td {
  border-bottom: none !important;
}

/* Hover ligne — subtil */
.tax-tab-inner table tbody tr {
  transition: background var(--tax-transition);
}

.tax-tab-inner table tbody tr:hover td {
  background: var(--tax-gray-50) !important;
}

/* ── Colonne ID / numéro de commande ── */
.tax-tab-inner table td:first-child {
  font-weight: var(--tax-fw-semibold);
  color: var(--tax-gray-900) !important;
  font-variant-numeric: tabular-nums;
}

/* ── Colonne montant ── */
.tax-tab-inner table td.edd-price,
.tax-tab-inner table td[data-colname="Montant"],
.tax-tab-inner table td.edd-amount {
  font-weight: var(--tax-fw-semibold);
  font-variant-numeric: tabular-nums;
  color: var(--tax-gray-900) !important;
}

/* ── Liens dans les cellules → petits boutons outline ── */
.tax-tab-inner table td a {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-1);
  color: var(--tax-primary) !important;
  font-weight: var(--tax-fw-medium);
  text-decoration: none;
  transition: color var(--tax-transition);
  white-space: nowrap;
}

.tax-tab-inner table td a:hover {
  color: var(--tax-secondary) !important;
  text-decoration: underline;
}

/* ── Actions multiples (séparateur pipe) ── */
.tax-tab-inner table td .edd-purchase-meta,
.tax-tab-inner table .purchase-meta-content {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tax-space-2);
  align-items: center;
}

/* ── Bouton lien "Voir les détails" ── */
.tax-tab-inner table td a[href*="payment_key"],
.tax-tab-inner table td a[href*="edd-payment"],
.tax-tab-inner table td a.edd-purchase-detail {
  padding: 3px var(--tax-space-3);
  border: 1px solid var(--tax-primary);
  border-radius: var(--tax-radius-full);
  font-size: var(--tax-fs-xs);
  background: transparent;
  transition: background var(--tax-transition), color var(--tax-transition);
}

.tax-tab-inner table td a[href*="payment_key"]:hover,
.tax-tab-inner table td a[href*="edd-payment"]:hover,
.tax-tab-inner table td a.edd-purchase-detail:hover {
  background: var(--tax-primary);
  color: var(--tax-white) !important;
  text-decoration: none;
}

/* ── Badges de statut ── */
.tax-tab-inner .edd-payment-status,
.tax-tab-inner .edd_status,
.tax-tab-inner span[class*="status"] {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-1);
  padding: 2px var(--tax-space-3);
  border-radius: var(--tax-radius-full);
  font-size: var(--tax-fs-xs);
  font-weight: var(--tax-fw-semibold);
  text-transform: capitalize;
  white-space: nowrap;
  border: 1px solid transparent;
}

/* Point coloré avant le badge */
.tax-tab-inner .edd-payment-status::before,
.tax-tab-inner .edd_status::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  background: currentColor;
  opacity: .8;
}

.tax-tab-inner .edd-payment-status-complete,
.tax-tab-inner [class*="complete"],
.tax-tab-inner [class*="publish"] {
  background: #dcfce7;
  color: #15803d;
  border-color: #bbf7d0;
}

.tax-tab-inner .edd-payment-status-refunded,
.tax-tab-inner [class*="refunded"] {
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fecaca;
}

.tax-tab-inner .edd-payment-status-pending,
.tax-tab-inner [class*="pending"],
.tax-tab-inner [class*="processing"] {
  background: #fef3c7;
  color: #b45309;
  border-color: #fde68a;
}

.tax-tab-inner .edd-payment-status-revoked,
.tax-tab-inner [class*="revoked"],
.tax-tab-inner [class*="failed"],
.tax-tab-inner [class*="cancelled"] {
  background: #f1f5f9;
  color: var(--tax-gray-600);
  border-color: var(--tax-gray-200);
}

/* ── Liens de téléchargement de fichiers ── */
.tax-tab-inner .edd-download-file-row a,
.tax-tab-inner .edd_download_files a,
.tax-tab-inner table td a[href*="edd-download"],
.tax-tab-inner table td a[href*="download"] {
  display: inline-flex;
  align-items: center;
  gap: var(--tax-space-2);
  padding: var(--tax-space-2) var(--tax-space-3);
  background: #eff6ff;
  color: var(--tax-primary) !important;
  border: 1px solid #bfdbfe;
  border-radius: var(--tax-radius);
  font-size: var(--tax-fs-xs);
  font-weight: var(--tax-fw-semibold);
  text-decoration: none !important;
  transition: background var(--tax-transition), border-color var(--tax-transition), color var(--tax-transition);
  white-space: nowrap;
}

.tax-tab-inner .edd-download-file-row a:hover,
.tax-tab-inner .edd_download_files a:hover,
.tax-tab-inner table td a[href*="edd-download"]:hover,
.tax-tab-inner table td a[href*="download"]:hover {
  background: var(--tax-primary);
  color: var(--tax-white) !important;
  border-color: var(--tax-primary);
  text-decoration: none !important;
}

/* ── Message vide (aucune commande) ── */
.tax-tab-inner table tbody tr td[colspan] {
  text-align: center;
  padding: var(--tax-space-12) var(--tax-space-8);
  color: var(--tax-gray-500) !important;
  font-size: var(--tax-fs-base);
}

/* ── Pagination EDD ── */
.tax-tab-inner .edd-purchase-pagination,
.tax-tab-inner .edd-pagination {
  display: flex;
  justify-content: center;
  gap: var(--tax-space-2);
  margin-top: var(--tax-space-5);
  padding-top: var(--tax-space-4);
  border-top: 1px solid var(--tax-gray-100);
}

.tax-tab-inner .edd-purchase-pagination a,
.tax-tab-inner .edd-purchase-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 var(--tax-space-3);
  border: 1px solid var(--tax-gray-200);
  border-radius: var(--tax-radius);
  font-size: var(--tax-fs-sm);
  color: var(--tax-gray-700);
  background: var(--tax-white);
  text-decoration: none;
  transition: background var(--tax-transition), border-color var(--tax-transition);
}

.tax-tab-inner .edd-purchase-pagination a:hover {
  background: var(--tax-gray-50);
  border-color: var(--tax-gray-300);
}

.tax-tab-inner .edd-purchase-pagination .current {
  background: var(--tax-primary);
  border-color: var(--tax-primary);
  color: var(--tax-white);
  font-weight: var(--tax-fw-semibold);
}

/* ══════════════════════════════════════════════════════════════════════════════
   8. ÉTAT CACHÉ (menu items contextuels)
   ══════════════════════════════════════════════════════════════════════════════ */
.tax-hidden-when-logged-in,
.tax-hidden-when-logged-out {
  display: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════════
   9. UTILITAIRES
   ══════════════════════════════════════════════════════════════════════════════ */
.tax-already-logged,
.tax-guest-greeting {
  font-family: var(--tax-font);
  font-size: var(--tax-fs-base);
  color: var(--tax-gray-600);
}

.tax-logout-link {
  color: var(--tax-error) !important;
  text-decoration: none;
  font-weight: var(--tax-fw-medium);
  transition: opacity var(--tax-transition);
}

.tax-logout-link:hover {
  opacity: .75;
}

/* ══════════════════════════════════════════════════════════════════════════════
   10. MODE SOMBRE (prefers-color-scheme)
   ══════════════════════════════════════════════════════════════════════════════ */
@media (prefers-color-scheme: dark) {
  .tax-edd-dashboard {
    --tax-white:      #1e293b;
    --tax-gray-50:    #0f172a;
    --tax-gray-100:   #1e293b;
    --tax-gray-200:   #334155;
    --tax-gray-300:   #475569;
    --tax-gray-400:   #64748b;
    --tax-gray-500:   #94a3b8;
    --tax-gray-600:   #cbd5e1;
    --tax-gray-700:   #e2e8f0;
    --tax-gray-800:   #f1f5f9;
    --tax-border:     1px solid #334155;
  }

  .tax-auth-card,
  .tax-auth-wrap {
    --tax-white:      #1e293b;
    --tax-gray-50:    #0f172a;
    --tax-gray-100:   #1e293b;
    --tax-gray-200:   #334155;
    --tax-gray-300:   #475569;
    --tax-gray-400:   #64748b;
    --tax-gray-500:   #94a3b8;
    --tax-gray-600:   #cbd5e1;
    --tax-gray-700:   #e2e8f0;
    --tax-gray-800:   #f1f5f9;
    --tax-border:     1px solid #334155;
  }
}

/* ══════════════════════════════════════════════════════════════════════════════
   11. RESPONSIVE
   ══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  .tax-dash-header {
    flex-wrap: wrap;
    padding: var(--tax-space-5) var(--tax-space-4);
    gap: var(--tax-space-3);
    min-height: auto;
  }

  .tax-dash-logout-btn {
    margin-left: auto;
    font-size: var(--tax-fs-xs);
  }

  .tax-dash-logout-btn span { display: none; }

  .tax-avatar-ring {
    width: 68px;
    height: 68px;
  }

  .tax-dash-username {
    font-size: var(--tax-fs-xl);
  }

  /* Nav plus compact sur mobile */
  .tax-dash-nav {
    padding: var(--tax-space-2);
    gap: var(--tax-space-1);
  }

  .tax-tab-btn {
    padding: var(--tax-space-2) var(--tax-space-3);
    font-size: var(--tax-fs-xs);
  }

  .tax-tab-btn svg {
    width: .85rem;
    height: .85rem;
  }

  /* Stats en colonne sur mobile */
  .tax-dash-stats {
    grid-template-columns: 1fr;
    padding: var(--tax-space-3);
    gap: var(--tax-space-2);
  }

  .tax-stat-card {
    border-top-width: 0 !important;
    border-left: 3px solid transparent;
    border-radius: var(--tax-radius);
    padding: var(--tax-space-4);
  }

  .tax-stat-orders  { border-left-color: var(--tax-primary) !important; }
  .tax-stat-spent   { border-left-color: var(--tax-success) !important; }
  .tax-stat-downloads { border-left-color: #8b5cf6 !important; }

  .tax-dash-content {
    padding: var(--tax-space-3);
  }

  .tax-tab-inner {
    padding: var(--tax-space-5) var(--tax-space-4);
  }

  .tax-section-header {
    margin-bottom: var(--tax-space-4);
  }

  .tax-auth-card {
    padding: var(--tax-space-6) var(--tax-space-5);
  }

  /* Tables : scroll horizontal via le wrapper, table garde son display */
  .tax-tab-inner .tax-table-wrap {
    margin: 0 calc(-1 * var(--tax-space-4));
    border-radius: 0;
  }

  .tax-tab-inner table th,
  .tax-tab-inner table th * {
    padding: var(--tax-space-3) var(--tax-space-3);
    font-size: 10px;
  }

  .tax-tab-inner table td {
    padding: var(--tax-space-4) var(--tax-space-3);
    font-size: var(--tax-fs-xs);
  }
}

@media (max-width: 479px) {
  .tax-dash-stats {
    grid-template-columns: 1fr;
  }

  .tax-auth-wrap {
    padding: var(--tax-space-4) var(--tax-space-2);
  }

  .tax-auth-card {
    border-radius: var(--tax-radius-lg);
    padding: var(--tax-space-5) var(--tax-space-4);
  }
}

@media print {
  .tax-dash-nav,
  .tax-dash-logout-btn {
    display: none !important;
  }

  .tax-tab-pane[hidden] {
    display: block !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   8. ONGLET PROFIL
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Grille avatar + formulaires */
.tax-profile-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  align-items: start;
}

/* ── Carte avatar ── */
.tax-profile-avatar-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 24px 16px;
  text-align: center;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
  position: sticky;
  top: 20px;
}

.tax-profile-avatar-wrap {
  margin: 0 auto 12px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #e2e8f0;
  box-shadow: 0 2px 8px rgba(37,99,235,.15);
}

.tax-profile-avatar {
  width: 96px !important;
  height: 96px !important;
  object-fit: cover;
  display: block;
  border-radius: 50% !important;
}

.tax-profile-display-name {
  font-weight: 700;
  font-size: 1rem;
  color: #0f172a;
  margin: 0 0 4px;
}

.tax-profile-email-lbl {
  font-size: .8rem;
  color: #64748b;
  word-break: break-all;
  margin: 0 0 6px;
}

.tax-profile-since-lbl {
  font-size: .75rem;
  color: #94a3b8;
  margin: 0 0 16px;
}

/* ── Formulaires ── */
.tax-profile-forms {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.tax-profile-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}

.tax-profile-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid #f1f5f9;
}

.tax-profile-card-header svg {
  width: 20px;
  height: 20px;
  color: #2563eb;
  flex-shrink: 0;
}

.tax-profile-card-header h4 {
  font-size: .95rem;
  font-weight: 600;
  color: #1e293b;
  margin: 0;
}

/* Ligne 2 colonnes dans le formulaire profil */
.tax-profile-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* Hint sous un champ */
.tax-form-hint {
  display: block;
  font-size: .78rem;
  color: #94a3b8;
  margin-top: 4px;
}

/* Bouton d'actions */
.tax-profile-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #f1f5f9;
}

/* Bouton outline petit */
.tax-btn-outline {
  background: transparent;
  border: 1px solid #cbd5e1;
  color: #475569;
}
.tax-btn-outline:hover {
  background: #f8fafc;
  border-color: #94a3b8;
  color: #1e293b;
}

.tax-btn-sm {
  padding: 6px 14px;
  font-size: .8rem;
}

/* Bouton secondaire */
.tax-btn-secondary {
  background: #4f46e5;
  color: #ffffff;
  border: none;
}
.tax-btn-secondary:hover {
  background: #4338ca;
}

/* Responsive */
@media (max-width: 768px) {
  .tax-profile-grid {
    grid-template-columns: 1fr;
  }
  .tax-profile-avatar-card {
    position: static;
  }
  .tax-profile-row-2 {
    grid-template-columns: 1fr;
  }
}

/* Force couleurs dans le profil (résistance Elementor) */
#tax-edd-dashboard .tax-profile-card,
#tax-edd-dashboard .tax-profile-avatar-card {
  background-color: #ffffff !important;
  color: #334155 !important;
}
#tax-edd-dashboard .tax-profile-card-header h4,
#tax-edd-dashboard .tax-profile-display-name {
  color: #0f172a !important;
}
#tax-edd-dashboard .tax-profile-email-lbl,
#tax-edd-dashboard .tax-profile-since-lbl,
#tax-edd-dashboard .tax-form-hint {
  color: #94a3b8 !important;
  background: transparent !important;
}

/* ═════════════════════════════════════════════════════════════════════════════
   9. CARTES LICENCES
   ═════════════════════════════════════════════════════════════════════════════ */

.tax-license-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.tax-license-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}

.tax-license-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.tax-license-product {
  font-weight: 600;
  font-size: .95rem;
  color: #1e293b;
}

/* Badges statut */
.tax-license-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 600;
  white-space: nowrap;
}
.tax-license-badge--active   { background: #dcfce7; color: #166534; }
.tax-license-badge--inactive { background: #f1f5f9; color: #64748b; }
.tax-license-badge--expired  { background: #fee2e2; color: #991b1b; }
.tax-license-badge--disabled { background: #fef9c3; color: #854d0e; }

/* Ligne clé masquée + bouton copier */
.tax-license-key-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 14px;
}

.tax-license-key-display {
  flex: 1;
  font-family: 'Courier New', Courier, monospace;
  font-size: .85rem;
  color: #334155;
  letter-spacing: .08em;
  word-break: break-all;
  background: transparent;
}

.tax-copy-key-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #2563eb;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  font-size: .8rem;
  font-weight: 500;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .15s, transform .1s;
}
.tax-copy-key-btn:hover  { background: #1d4ed8; }
.tax-copy-key-btn:active { transform: scale(.96); }
.tax-copy-key-btn svg    { width: 14px; height: 14px; }
.tax-copy-key-btn.tax-copied { background: #16a34a; }

/* Métadonnées : expiration + activations */
.tax-license-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: .8rem;
  color: #64748b;
}

.tax-license-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.tax-license-meta svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* Force Elementor */
#tax-edd-dashboard .tax-license-card { background-color: #ffffff !important; }
#tax-edd-dashboard .tax-license-product { color: #1e293b !important; background: transparent !important; }
#tax-edd-dashboard .tax-license-key-display { color: #334155 !important; background: transparent !important; }
#tax-edd-dashboard .tax-license-meta,
#tax-edd-dashboard .tax-license-meta span { color: #64748b !important; background: transparent !important; }

/* ── Table de téléchargements ── */
.tax-dl-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--tax-fs-sm, .875rem);
}

.tax-dl-table th,
.tax-dl-table td {
  padding: 10px 14px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: middle;
}

.tax-dl-table thead th {
  background: #1e293b;
  color: #f8fafc;
  font-weight: 600;
  text-transform: uppercase;
  font-size: .72rem;
  letter-spacing: .06em;
}

.tax-dl-table tbody tr:last-child td {
  border-bottom: none;
}

.tax-dl-table tbody tr:hover td {
  background: #f8fafc;
}

.tax-dl-file-cell {
  display: flex;
  align-items: center;
  gap: .45em;
  flex-wrap: wrap;
}

.tax-dl-link {
  font-family: var(--tax-font-mono, ui-monospace, 'SFMono-Regular', monospace);
  color: #6d28d9;
  text-decoration: none;
  font-size: .85rem;
  transition: color .15s;
}

.tax-dl-link:hover {
  color: #4c1d95;
  text-decoration: underline;
}

/* Badge N× : nombre de téléchargements effectués */
.tax-dl-count {
  display: inline-flex;
  align-items: center;
  font-family: var(--tax-font-mono, ui-monospace, 'SFMono-Regular', monospace);
  font-size: .7rem;
  font-weight: 600;
  color: #64748b;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 0 .5em;
  line-height: 1.6;
  cursor: default;
  white-space: nowrap;
  transition: background .15s, color .15s;
}

.tax-dl-count:hover {
  background: #e2e8f0;
  color: #334155;
}

/* Animation flash lors d'un incrément en temps réel (clic sur lien DL) */
@keyframes tax-dl-flash {
  0%   { background: #dbeafe; color: #1d4ed8; border-color: #93c5fd; transform: scale(1.15); }
  60%  { background: #eff6ff; color: #2563eb; border-color: #bfdbfe; transform: scale(1.05); }
  100% { background: #f1f5f9; color: #64748b; border-color: #e2e8f0; transform: scale(1); }
}
.tax-dl-count-flash {
  animation: tax-dl-flash .6s ease-out forwards;
}

/* Badge version produit */
.tax-dl-version {
  white-space: nowrap;
}

.tax-version-badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--tax-font-mono, ui-monospace, 'SFMono-Regular', monospace);
  font-size: .7rem;
  font-weight: 600;
  color: #2563eb;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 20px;
  padding: 0 .55em;
  line-height: 1.6;
  white-space: nowrap;
}

.tax-version-na {
  color: #94a3b8;
  font-size: .85rem;
}

/* Force Elementor — table téléchargements */
#tax-edd-dashboard .tax-dl-table { background: transparent !important; }
#tax-edd-dashboard .tax-dl-link   { color: #6d28d9 !important; }
#tax-edd-dashboard .tax-dl-count  { background: #f1f5f9 !important; color: #64748b !important; border-color: #e2e8f0 !important; }
#tax-edd-dashboard .tax-version-badge { background: #eff6ff !important; color: #2563eb !important; border-color: #bfdbfe !important; }
