/* ================================================
   SDS User Portal — Thème Premium Clair
   Blanc / Bleu Marine / Or — Plus Jakarta Sans
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --sp-navy:    #1e3a5f;
  --sp-blue:    #1d6fa4;
  --sp-gold:    #d97706;
  --sp-gold-lt: #fef3c7;
  --sp-white:   #ffffff;
  --sp-bg:      #f1f5f9;
  --sp-border:  #e2e8f0;
  --sp-text:    #1e293b;
  --sp-muted:   #64748b;
  --sp-ok:      #16a34a;
  --sp-err:     #dc2626;
  --sp-warn:    #d97706;
  --sp-info:    #0369a1;
  --sp-r:       12px;
  --sp-font:    'Plus Jakarta Sans','Segoe UI',Arial,sans-serif;
  --sp-sh:      0 4px 24px rgba(30,58,95,.10);
  --sp-sh-s:    0 1px 6px rgba(30,58,95,.07);
}

.sdsp-portal-root, .sdsp-portal-root * { box-sizing: border-box; }

.sdsp-portal-root {
  font-family: var(--sp-font);
  color: var(--sp-text);
  font-size: 15px;
  line-height: 1.6;
  max-width: 760px;
  margin: 0 auto;
  /* Espace de sécurité sous l'en-tête du thème — s'applique à TOUTES les
     vues du portail (tableau de bord, fiche, certification...), pas
     seulement login/register : le chevauchement vient de la page elle
     -même, pas d'une vue en particulier.
     La valeur est mesurée dynamiquement en JS (hauteur réelle du header
     du thème, voir sdsp_header_pad_script dans pages.php) ; 110px reste
     en secours si le JS ne trouve pas le header. */
  padding: calc(var(--sdsp-header-h, 110px) + 20px) 0 48px;
}
@media (max-width:620px) {
  .sdsp-portal-root { padding-top: calc(var(--sdsp-header-h, 90px) + 16px); }
}

/* ── AUTH ─────────────────────────────────────────── */
.sdsp-auth-card {
  background: var(--sp-white);
  border: 1px solid var(--sp-border);
  border-radius: var(--sp-r);
  padding: 40px 44px;
  box-shadow: var(--sp-sh);
  max-width: 480px;
  margin: 0 auto;
}
.sdsp-auth-card-wide { max-width: 680px; }

.sdsp-auth-brand { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.sdsp-auth-icon  { font-size:32px; }
.sdsp-auth-brand h2 { font-size:22px; font-weight:800; color:var(--sp-navy); margin:0; }
.sdsp-auth-sub   { color:var(--sp-muted); font-size:14px; margin:0 0 24px; }
.sdsp-alt-link   { text-align:center; font-size:13px; color:var(--sp-muted); margin-top:20px; }
.sdsp-alt-link a { color:var(--sp-blue); font-weight:600; text-decoration:none; }
.sdsp-alt-link a:hover { text-decoration:underline; }

/* ── FORMULAIRES ──────────────────────────────────── */
.sdsp-form { display:flex; flex-direction:column; }

.sdsp-field { display:flex; flex-direction:column; gap:5px; margin-bottom:16px; }
.sdsp-field label { font-size:13px; font-weight:600; color:var(--sp-navy); }
.sdsp-req { color:var(--sp-err); margin-left:2px; }

.sdsp-field input[type="text"],
.sdsp-field input[type="email"],
.sdsp-field input[type="tel"],
.sdsp-field input[type="password"],
.sdsp-field select,
.sdsp-field textarea {
  width:100%; padding:11px 14px;
  background:#f8fafc; border:1.5px solid var(--sp-border); border-radius:9px;
  font-size:14px; font-family:var(--sp-font); color:var(--sp-text);
  transition:border-color .18s, box-shadow .18s;
}
.sdsp-field input:disabled { opacity:.6; cursor:not-allowed; background:#f1f5f9; }
.sdsp-field input:focus,
.sdsp-field select:focus,
.sdsp-field textarea:focus {
  outline:none; border-color:var(--sp-blue); background:var(--sp-white);
  box-shadow:0 0 0 3px rgba(29,111,164,.12);
}
.sdsp-field textarea { resize:vertical; min-height:110px; }
.sdsp-field-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.sdsp-pw-row  { position:relative; display:flex; }
.sdsp-pw-row input { flex:1; padding-right:44px; }
.sdsp-eye {
  position:absolute; right:11px; top:50%; transform:translateY(-50%);
  background:none; border:none; cursor:pointer; font-size:16px; padding:0; line-height:1;
}

.sdsp-remember { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--sp-muted); margin-bottom:18px; cursor:pointer; }
.sdsp-form-hint { font-size:13px; color:var(--sp-muted); margin:0 0 16px; line-height:1.5; }

/* ── BOUTONS ──────────────────────────────────────── */
.sdsp-submit,
.sdsp-btn-primary {
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; padding:13px 24px;
  background:linear-gradient(135deg, var(--sp-navy), var(--sp-blue));
  color:#fff; border:none; border-radius:9px;
  font-size:15px; font-weight:700; font-family:var(--sp-font);
  cursor:pointer; text-decoration:none;
  box-shadow:0 4px 14px rgba(30,58,95,.22);
  transition:opacity .18s, transform .12s;
  margin-top:4px;
}
.sdsp-submit:hover, .sdsp-btn-primary:hover { opacity:.92; transform:translateY(-1px); }
.sdsp-submit:active, .sdsp-btn-primary:active { transform:translateY(0); }

.sdsp-btn-outline {
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 22px; background:transparent;
  border:1.5px solid var(--sp-border); color:var(--sp-navy); border-radius:9px;
  font-size:14px; font-weight:600; font-family:var(--sp-font);
  cursor:pointer; text-decoration:none; transition:all .18s;
}
.sdsp-btn-outline:hover { border-color:var(--sp-blue); color:var(--sp-blue); background:rgba(29,111,164,.05); }

.sdsp-btn-gold {
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 24px; background:linear-gradient(135deg,#b45309,#d97706);
  color:#fff; border:none; border-radius:9px;
  font-size:15px; font-weight:700; font-family:var(--sp-font);
  cursor:pointer; text-decoration:none;
  box-shadow:0 4px 14px rgba(217,119,6,.25); transition:opacity .18s, transform .12s;
}
.sdsp-btn-gold:hover { opacity:.9; transform:translateY(-1px); }

/* ── ALERTES ──────────────────────────────────────── */
.sdsp-alert {
  padding:12px 16px; border-radius:9px;
  font-size:13px; line-height:1.5; margin-bottom:18px; border:1px solid;
}
.sdsp-alert-success { background:#f0fdf4; border-color:#bbf7d0; color:#15803d; }
.sdsp-alert-error   { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
.sdsp-alert-warning { background:#fffbeb; border-color:#fde68a; color:#92400e; }
.sdsp-alert-info    { background:#eff6ff; border-color:#bfdbfe; color:#1e40af; }

/* ── DASHBOARD : Barre supérieure ─────────────────── */
.sdsp-dash-wrap { max-width:760px; margin:0 auto; }

.sdsp-topbar {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:var(--sp-r); padding:16px 22px; margin-bottom:16px;
  box-shadow:var(--sp-sh-s); flex-wrap:wrap;
}
.sdsp-topbar-left   { display:flex; align-items:center; gap:14px; }
.sdsp-topbar-avatar {
  width:52px; height:52px; border-radius:50%;
  border:2.5px solid var(--sp-gold); overflow:hidden;
  background:var(--sp-bg); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:22px;
}
.sdsp-topbar-avatar img { width:100%; height:100%; object-fit:cover; }
.sdsp-topbar-name  { font-size:15px; font-weight:700; color:var(--sp-navy); display:flex; align-items:center; gap:6px; }
.sdsp-topbar-email { font-size:12px; color:var(--sp-muted); margin-top:2px; }

.sdsp-star-badge {
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; border-radius:50%;
  background:linear-gradient(135deg,#d97706,#b45309);
  color:#fff; font-size:9px; font-weight:900;
  box-shadow:0 2px 6px rgba(217,119,6,.4);
}

.sdsp-logout-btn {
  padding:7px 14px; border-radius:7px;
  border:1.5px solid rgba(220,38,38,.3); color:var(--sp-err);
  font-size:12px; font-weight:600; text-decoration:none;
  background:transparent; white-space:nowrap; transition:all .18s;
}
.sdsp-logout-btn:hover { background:rgba(220,38,38,.07); border-color:var(--sp-err); }

/* ── Onglets ──────────────────────────────────────── */
.sdsp-tabs { display:flex; gap:4px; margin-bottom:20px; flex-wrap:wrap; }
.sdsp-tab {
  padding:9px 18px; border-radius:8px;
  background:var(--sp-white); border:1px solid var(--sp-border);
  color:var(--sp-muted); text-decoration:none;
  font-size:13px; font-weight:600; transition:all .18s;
}
.sdsp-tab:hover { border-color:rgba(29,111,164,.3); color:var(--sp-navy); }
.sdsp-tab.active {
  background:linear-gradient(135deg,#eef4fb,#e0edf8);
  border-color:rgba(29,111,164,.35); color:var(--sp-navy); font-weight:700;
}

/* ── Statut fiche ─────────────────────────────────── */
.sdsp-status-bar {
  display:flex; align-items:flex-start; gap:14px;
  padding:18px 20px; border-radius:11px; border:1px solid;
  margin-bottom:18px; flex-wrap:wrap;
}
.sdsp-sb-ico  { font-size:26px; flex-shrink:0; line-height:1.2; }
.sdsp-sb-body strong { display:block; font-size:15px; margin-bottom:2px; }
.sdsp-sb-body p { margin:0; font-size:13px; color:var(--sp-muted); }
.sdsp-sb-pending { background:#fffbeb; border-color:#fde68a; }
.sdsp-sb-pending .sdsp-sb-body strong { color:#92400e; }
.sdsp-sb-publish { background:#f0fdf4; border-color:#bbf7d0; }
.sdsp-sb-publish .sdsp-sb-body strong { color:#15803d; }
.sdsp-sb-draft   { background:#fef2f2; border-color:#fecaca; }
.sdsp-sb-draft   .sdsp-sb-body strong { color:#b91c1c; }

.sdsp-certif-pill {
  margin-left:auto; align-self:center;
  display:inline-block; padding:4px 12px; border-radius:20px;
  background:var(--sp-gold-lt); color:#92400e;
  font-size:12px; font-weight:700; border:1px solid #fde68a; white-space:nowrap;
}

/* ── Aperçu fiche ─────────────────────────────────── */
.sdsp-fiche-preview {
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:11px; padding:20px; margin-bottom:16px; box-shadow:var(--sp-sh-s);
}
.sdsp-fp-header { display:flex; gap:14px; align-items:flex-start; margin-bottom:10px; }
.sdsp-fp-thumb  { width:54px; height:54px; border-radius:8px; object-fit:cover; border:1px solid var(--sp-border); flex-shrink:0; }
.sdsp-fp-info h3 { margin:0 0 6px; font-size:16px; font-weight:700; color:var(--sp-navy); }
.sdsp-fp-meta { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--sp-muted); }
.sdsp-fp-desc { font-size:13px; color:var(--sp-muted); margin:0; line-height:1.5; }

.sdsp-action-row { display:flex; gap:12px; flex-wrap:wrap; }
.sdsp-action-row .sdsp-btn-primary { flex:1; min-width:160px; }

/* ── Empty state ──────────────────────────────────── */
.sdsp-empty {
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:11px; padding:48px 20px; text-align:center; box-shadow:var(--sp-sh-s);
}
.sdsp-empty-ico  { font-size:48px; margin-bottom:12px; }
.sdsp-empty h3   { font-size:18px; font-weight:700; color:var(--sp-navy); margin:0 0 8px; }
.sdsp-empty p    { color:var(--sp-muted); font-size:14px; margin:0 0 20px; }
.sdsp-empty .sdsp-btn-primary { width:auto; padding:11px 28px; }

/* ── Soumission fiche ─────────────────────────────── */
.sdsp-submit-inner {
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:11px; padding:4px; box-shadow:var(--sp-sh-s); overflow:hidden;
}

/* ── Certification ────────────────────────────────── */
.sdsp-certif-status {
  display:flex; align-items:flex-start; gap:16px;
  padding:22px; border-radius:11px; border:1.5px solid; margin-bottom:20px;
}
.sdsp-cs-star {
  width:46px; height:46px; flex-shrink:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; font-weight:900;
  background:linear-gradient(135deg,#d97706,#b45309);
  color:#fff; box-shadow:0 2px 10px rgba(217,119,6,.3);
}
.sdsp-certif-status strong { display:block; font-size:15px; margin-bottom:4px; }
.sdsp-certif-status p { margin:0; font-size:13px; color:var(--sp-muted); }
.sdsp-cs-ok      { background:#fffbeb; border-color:#fde68a; }
.sdsp-cs-ok strong { color:#92400e; }
.sdsp-cs-pending { background:#eff6ff; border-color:#bfdbfe; }
.sdsp-cs-pending strong { color:#1e40af; }
.sdsp-cs-denied  { background:#fef2f2; border-color:#fecaca; }
.sdsp-cs-denied strong { color:#b91c1c; }
.sdsp-cs-none    { background:var(--sp-bg); border-color:var(--sp-border); }
.sdsp-cs-none strong { color:var(--sp-navy); }

.sdsp-certif-form-box {
  background:var(--sp-white); border:1.5px solid #fde68a;
  border-radius:11px; padding:24px; margin-bottom:20px;
}
.sdsp-certif-form-box h3 { margin:0 0 8px; font-size:15px; color:var(--sp-navy); }
.sdsp-certif-form-box .sdsp-btn-gold { width:auto; padding:12px 24px; margin-top:4px; }

.sdsp-avantages    { margin-top:24px; }
.sdsp-avantages h4 { font-size:12px; font-weight:700; color:var(--sp-muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:12px; }
.sdsp-avantages-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }
.sdsp-avantage {
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:10px; padding:16px 12px; text-align:center;
}
.sdsp-avantage span { font-size:22px; display:block; margin-bottom:7px; }
.sdsp-avantage p    { font-size:12px; color:var(--sp-muted); margin:0; line-height:1.4; }

/* ── Paramètres ───────────────────────────────────── */
.sdsp-settings-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; }
.sdsp-settings-card {
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:11px; padding:24px; box-shadow:var(--sp-sh-s);
}
.sdsp-settings-card h3 { margin:0 0 20px; font-size:15px; color:var(--sp-navy); font-weight:700; }

/* ── Mini menu [sdsp_user_menu] ───────────────────── */
.sdsp-user-menu { display:inline-flex; align-items:center; gap:10px; font-size:14px; }
.sdsp-um-link { color:var(--sp-navy); text-decoration:none; font-weight:600; }
.sdsp-um-link:hover { color:var(--sp-blue); }
.sdsp-um-out  { color:var(--sp-err); text-decoration:none; font-size:12px; }

/* ── Responsive ───────────────────────────────────── */
@media (max-width:620px) {
  .sdsp-auth-card      { padding:28px 18px; }
  .sdsp-field-row      { grid-template-columns:1fr; gap:0; }
  .sdsp-topbar         { padding:14px 16px; }
  .sdsp-tabs           { gap:5px; }
  .sdsp-tab            { padding:8px 13px; font-size:12px; }
  .sdsp-settings-grid  { grid-template-columns:1fr; }
  .sdsp-action-row     { flex-direction:column; }
  .sdsp-certif-status  { flex-direction:column; }
  .sdsp-avantages-grid { grid-template-columns:1fr 1fr; }
}

/* ================================================
   CERTIFICATION 3 NIVEAUX — Styles Portal
   ================================================ */

/* ── Badge topbar par niveau ──────────────────────── */
.sdsp-star-badge {
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%;
  font-size:11px; font-weight:900;
  box-shadow:0 2px 6px rgba(0,0,0,.25);
  vertical-align:middle;
}
.sdsp-star-bronze { background:linear-gradient(135deg,#a0826d,#795548); color:#fff; }
.sdsp-star-silver { background:linear-gradient(135deg,#90a4ae,#607d8b); color:#fff; }
.sdsp-star-gold   { background:linear-gradient(135deg,#f9a825,#f57f17); color:#fff; box-shadow:0 2px 8px rgba(249,168,37,.5); animation:sdsp-gold-glow 2s ease-in-out infinite; }

/* ── Pill certif dans status bar ─────────────────── */
.sdsp-certif-pill {
  margin-left:auto; align-self:center;
  display:inline-block; padding:5px 14px; border-radius:20px;
  font-size:12px; font-weight:700; border:1px solid; white-space:nowrap;
}
.sdsp-certif-pill-bronze { background:#f5efe8; border-color:#d4a574; color:#7c4f2f; }
.sdsp-certif-pill-silver { background:#eceff1; border-color:#90a4ae; color:#455a64; }
.sdsp-certif-pill-gold   { background:#ffffff; border-color:#f9a825; color:#92400e; box-shadow:0 0 0 1px rgba(249,168,37,.2); }

/* ── Bannière statut certification ───────────────── */
.sdsp-certif-banner {
  display:flex; align-items:flex-start; gap:16px;
  padding:22px; border-radius:12px; border:1.5px solid;
  margin-bottom:20px; flex-wrap:wrap;
}
.sdsp-cb-icon {
  width:52px; height:52px; flex-shrink:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; background:rgba(255,255,255,.7);
  border:1.5px solid rgba(0,0,0,.08);
}
.sdsp-cb-body { flex:1; }
.sdsp-cb-body strong { display:block; font-size:15px; font-weight:700; margin-bottom:4px; }
.sdsp-cb-body p { margin:0; font-size:13px; color:var(--sp-muted); }
.sdsp-cb-badge {
  align-self:center; padding:4px 12px; border-radius:20px;
  font-size:11px; font-weight:700; background:rgba(255,255,255,.8);
  border:1px solid rgba(0,0,0,.1); white-space:nowrap;
}

.sdsp-certif-banner-none    { background:var(--sp-bg);  border-color:var(--sp-border); }
.sdsp-certif-banner-pending { background:#eff6ff; border-color:#bfdbfe; }
.sdsp-certif-banner-pending .sdsp-cb-body strong { color:#1e40af; }
.sdsp-certif-banner-denied  { background:#fef2f2; border-color:#fecaca; }
.sdsp-certif-banner-denied  .sdsp-cb-body strong { color:#b91c1c; }
.sdsp-certif-banner-bronze  { background:#f5efe8; border-color:#d4a574; }
.sdsp-certif-banner-bronze  .sdsp-cb-body strong { color:#7c4f2f; }
.sdsp-certif-banner-silver  { background:#eceff1; border-color:#90a4ae; }
.sdsp-certif-banner-silver  .sdsp-cb-body strong { color:#455a64; }
.sdsp-certif-banner-gold {
  background:#ffffff;
  border-color:transparent;
  position:relative;
  isolation:isolate;
}
.sdsp-certif-banner-gold::before {
  content:'';
  position:absolute; inset:0;
  border-radius:12px;
  padding:2px;
  background:linear-gradient(90deg,#f9a825,#fff176,#f57f17,#ffd54f,#f9a825);
  background-size:300% 100%;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: sdsp-gold-border 3s linear infinite;
  z-index:0;
}
.sdsp-certif-banner-gold::after {
  content:'';
  position:absolute; inset:0;
  border-radius:12px;
  background:linear-gradient(120deg,transparent 30%,rgba(249,168,37,.07) 50%,transparent 70%);
  background-size:200% 100%;
  animation: sdsp-gold-shimmer 2.5s ease-in-out infinite;
  z-index:0; pointer-events:none;
}
.sdsp-certif-banner-gold > * { position:relative; z-index:1; }
.sdsp-certif-banner-gold .sdsp-cb-body strong { color:#92400e; }
.sdsp-certif-banner-gold .sdsp-cb-body p      { color:#78350f; }
.sdsp-certif-banner-gold .sdsp-cb-icon {
  background:linear-gradient(135deg,#fef3c7,#fde68a);
  border-color:#f9a825;
  box-shadow:0 2px 8px rgba(249,168,37,.3);
}
.sdsp-certif-banner-gold .sdsp-cb-badge {
  background:linear-gradient(135deg,#fef3c7,#fde68a);
  border-color:#f9a825; color:#92400e;
}

/* ── Barre de progression ─────────────────────────── */
.sdsp-progress-wrap {
  background:var(--sp-white); border:1px solid var(--sp-border);
  border-radius:12px; padding:24px 20px; margin-bottom:24px;
  box-shadow:var(--sp-sh-s);
}
.sdsp-progress-steps {
  display:flex; align-items:center; justify-content:center;
  gap:0; flex-wrap:nowrap;
}
.sdsp-progress-step {
  display:flex; flex-direction:column; align-items:center; gap:8px;
  flex-shrink:0;
}
.sdsp-step-circle {
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:18px; font-weight:700; border:2px solid;
  transition:all .3s;
}
.sdsp-step-label { font-size:11px; font-weight:600; color:var(--sp-muted); white-space:nowrap; }

.sdsp-step-done .sdsp-step-circle    { background:#16a34a; border-color:#16a34a; color:#fff; font-size:16px; }
.sdsp-step-done .sdsp-step-label     { color:#16a34a; }
.sdsp-step-current .sdsp-step-circle { background:var(--sp-gold-lt); border-color:var(--sp-gold); color:var(--sp-gold); }
.sdsp-step-current .sdsp-step-label  { color:var(--sp-gold); font-weight:700; }
.sdsp-step-todo .sdsp-step-circle    { background:var(--sp-bg); border-color:var(--sp-border); color:var(--sp-muted); }

.sdsp-step-line {
  flex:1; height:2px; background:var(--sp-border);
  margin:0 6px; margin-bottom:22px; min-width:20px;
  transition:background .3s;
}
.sdsp-line-done { background:#16a34a; }

/* ── Grille des niveaux ───────────────────────────── */
.sdsp-levels-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:14px; margin-bottom:24px;
}
.sdsp-level-card {
  background:var(--sp-white); border:1.5px solid var(--sp-border);
  border-radius:12px; padding:18px; transition:all .2s;
  position:relative; overflow:hidden;
}
.sdsp-level-card::before {
  content:''; position:absolute; top:0; left:0; right:0;
  height:3px; background:var(--lb, var(--sp-border));
}
.sdsp-level-current {
  border-color:var(--lb) !important;
  box-shadow:0 4px 20px rgba(0,0,0,.1);
  background:var(--lbg) !important;
}
/* Surcharge spécifique carte Or active */
.sdsp-level-current[style*="#f9a825"],
.sdsp-level-current[style*="f9a825"] {
  background:#ffffff !important;
  border-color:transparent !important;
  box-shadow:0 4px 24px rgba(249,168,37,.22);
}
.sdsp-level-current[style*="#f9a825"]::before,
.sdsp-level-current[style*="f9a825"]::before {
  height:100%; width:100%; top:0; left:0;
  background:linear-gradient(90deg,#f9a825,#fff176,#f57f17,#ffd54f,#f9a825);
  background-size:300% 100%;
  animation:sdsp-gold-border 3s linear infinite;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  padding:2px; border-radius:12px;
  z-index:0;
}
.sdsp-level-current[style*="#f9a825"]::after,
.sdsp-level-current[style*="f9a825"]::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(249,168,37,.08) 50%,transparent 70%);
  background-size:200% 100%;
  animation:sdsp-gold-shimmer 2.5s ease-in-out infinite;
  pointer-events:none; z-index:0;
}
.sdsp-level-current[style*="#f9a825"] > *,
.sdsp-level-current[style*="f9a825"] > * { position:relative; z-index:1; }

.sdsp-level-acquired { opacity:.75; }

.sdsp-lc-header {
  display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.sdsp-lc-icon   { font-size:26px; flex-shrink:0; }
.sdsp-lc-name   { font-size:13px; font-weight:700; color:var(--sp-navy); }
.sdsp-lc-tag {
  display:inline-block; margin-top:3px;
  padding:2px 8px; border-radius:10px; font-size:10px; font-weight:700;
  background:var(--lbg, #f1f5f9); color:var(--lc, var(--sp-muted));
  border:1px solid var(--lb, var(--sp-border));
}
.sdsp-lc-tag-done { background:#f0fdf4; color:#16a34a; border-color:#bbf7d0; }

.sdsp-lc-avantages {
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:7px;
}
.sdsp-lc-avantages li {
  display:flex; align-items:flex-start; gap:8px;
  font-size:12px; color:var(--sp-text); line-height:1.4;
}
.sdsp-lc-avantages li span { flex-shrink:0; font-size:13px; }

/* ── Formulaire certif ────────────────────────────── */
.sdsp-certif-form-box {
  background:var(--sp-white); border:1.5px solid #fde68a;
  border-radius:12px; padding:24px; margin-bottom:20px;
  box-shadow:var(--sp-sh-s);
}
.sdsp-certif-form-box h3 { margin:0 0 8px; font-size:15px; color:var(--sp-navy); font-weight:700; }
.sdsp-certif-form-box .sdsp-btn-gold { width:auto; padding:12px 28px; margin-top:4px; }

/* ── Animations Or ────────────────────────────────── */
@keyframes sdsp-gold-border {
  0%   { background-position: 0% 50%; }
  100% { background-position: 300% 50%; }
}
@keyframes sdsp-gold-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@keyframes sdsp-gold-glow {
  0%, 100% { box-shadow:0 2px 8px rgba(249,168,37,.4); }
  50%       { box-shadow:0 2px 14px rgba(249,168,37,.75); }
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width:620px) {
  .sdsp-levels-grid    { grid-template-columns:1fr; }
  .sdsp-certif-banner  { flex-direction:column; }
  .sdsp-cb-badge       { align-self:flex-start; }
  .sdsp-progress-steps { gap:0; }
  .sdsp-step-circle    { width:36px; height:36px; font-size:15px; }
  .sdsp-step-label     { font-size:10px; }
  .sdsp-step-line      { min-width:12px; }
}


/* ═══════════════════════════════════════════════════════
   MODULE DOCUMENTS — Vérification documentaire
   ═══════════════════════════════════════════════════════ */

.sdsp-docs-block {
    margin-top: 24px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

/* Statut header */
.sdsp-docs-status {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 22px;
    border-bottom: 1px solid #e2e8f0;
}
.sdsp-docs-status--new      { background: linear-gradient(135deg,#eff6ff,#dbeafe); }
.sdsp-docs-status--pending  { background: linear-gradient(135deg,#fffbeb,#fef3c7); }
.sdsp-docs-status--approved { background: linear-gradient(135deg,#f0fdf4,#dcfce7); }
.sdsp-docs-status--rejected { background: linear-gradient(135deg,#fff5f5,#fee2e2); }

.sdsp-docs-status-icon {
    font-size: 32px;
    flex-shrink: 0;
    line-height: 1;
}
.sdsp-docs-status strong { display:block; font-size:.95rem; margin-bottom:4px; }
.sdsp-docs-status p { margin:0; font-size:.85rem; color:#4b5563; line-height:1.4; }

/* Documents déjà uploadés */
.sdsp-docs-uploaded { padding: 16px 22px; border-bottom: 1px solid #f1f5f9; }
.sdsp-docs-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.sdsp-docs-list-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: .88rem;
}
.sdsp-docs-list-item span { flex:1; color:#374151; }
.sdsp-docs-view { color: #2563eb; text-decoration:none; font-size:.82rem; font-weight:600; white-space:nowrap; }
.sdsp-docs-view:hover { text-decoration:underline; }

/* Formulaire d'upload */
.sdsp-docs-form { padding: 20px 22px 24px; }

.sdsp-doc-field { margin-bottom: 16px; }

.sdsp-doc-label {
    display: block;
    font-size: .88rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 8px;
}
.sdsp-opt { font-weight:400; color:#9ca3af; margin-left:6px; font-size:.82rem; }

.sdsp-doc-upload-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.sdsp-doc-upload-btn {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}
.sdsp-doc-upload-btn input[type=file] { display:none; }
.sdsp-doc-upload-btn span {
    display: inline-block;
    padding: 8px 16px;
    background: #f1f5f9;
    border: 1.5px dashed #94a3b8;
    border-radius: 8px;
    font-size: .85rem;
    color: #475569;
    transition: background .2s, border-color .2s;
    cursor: pointer;
}
.sdsp-doc-upload-btn:hover span {
    background: #e2e8f0;
    border-color: #64748b;
}
.sdsp-doc-hint {
    font-size: .78rem;
    color: #9ca3af;
}
.sdsp-doc-exists {
    font-size: .8rem;
    color: #059669;
}
.sdsp-doc-filename {
    margin-top: 4px;
    font-size: .8rem;
    color: #2563eb;
    padding: 4px 10px;
    background: #eff6ff;
    border-radius: 6px;
    display: inline-block;
}


/* ═══════════════════════════════════════════════════════
   CERTIFICATION — Conditions, prix, bouton démarrer
   ═══════════════════════════════════════════════════════ */

/* Carte niveau verrouillé */
.sdsp-level-locked {
    opacity: .6;
    filter: grayscale(.4);
}

/* Bloc conditions requises */
.sdsp-lc-conditions {
    margin-top: 14px;
    padding: 12px 14px;
    background: rgba(0,0,0,.04);
    border-radius: 8px;
    border-left: 3px solid var(--lb, #ccc);
}
.sdsp-lc-conditions-title {
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lc, #555);
    margin-bottom: 8px;
}
.sdsp-lc-conditions ul {
    margin: 0; padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.sdsp-lc-conditions ul li {
    font-size: .83rem;
    color: #374151;
    padding-left: 4px;
    line-height: 1.4;
}

/* Bouton démarrer certification */
.sdsp-btn-certif-start {
    width: 100%;
    padding: 13px 16px;
    background: linear-gradient(135deg, var(--lb, #d4a574), var(--lc, #a0826d));
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    transition: opacity .2s, transform .1s;
}
.sdsp-btn-certif-start:hover { opacity: .9; transform: translateY(-1px); }
.sdsp-btn-certif-start:active { transform: translateY(0); }

.sdsp-btn-price {
    display: inline-block;
    padding: 2px 10px;
    background: rgba(255,255,255,.25);
    border-radius: 20px;
    font-size: .82rem;
    font-weight: 600;
}

/* Fiche non publiée — message bloquant */
.sdsp-lc-blocked {
    margin-top: 12px;
    padding: 10px 14px;
    background: #fffbeb;
    border: 1px solid #fbbf24;
    border-radius: 8px;
    font-size: .83rem;
    color: #92400e;
}
