/* portal/assets/portal.css — thème clair / sombre (data-ld-theme, localStorage ld-theme) */

[data-ld-theme="light"] {
  --portal-glow-indigo: rgba(99, 102, 241, 0.14);
  --portal-glow-green: rgba(16, 185, 129, 0.1);
  --portal-bg-a: #f8fafc;
  --portal-bg-b: #f1f5f9;
  --portal-bg-c: #e2e8f0;
  --portal-text: #0f172a;
  --portal-muted: #64748b;
  --portal-emphasis: #0f172a;
  --portal-topbar-bg: rgba(255, 255, 255, 0.92);
  --portal-topbar-border: rgba(15, 23, 42, 0.1);
  --portal-topbar-text: #0f172a;
  --portal-card-bg: #ffffff;
  --portal-card-border: rgba(15, 23, 42, 0.1);
  --portal-card-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  --portal-panel-bg: #f8fafc;
  --portal-panel-border: rgba(15, 23, 42, 0.08);
  --portal-chip-bg: #f1f5f9;
  --portal-chip-border: rgba(15, 23, 42, 0.12);
  --portal-chip-text: #334155;
  --portal-input-bg: #ffffff;
  --portal-input-border: rgba(15, 23, 42, 0.15);
  --portal-input-text: #0f172a;
  --portal-input-placeholder: #94a3b8;
  --portal-input-focus-ring: rgba(99, 102, 241, 0.2);
  --portal-input-focus-border: rgba(99, 102, 241, 0.45);
  --portal-link: #4f46e5;
  --portal-link-hover: #4338ca;
  --portal-nav-btn-border: rgba(15, 23, 42, 0.18);
  --portal-nav-btn-text: #0f172a;
  --portal-nav-btn-hover-bg: rgba(15, 23, 42, 0.05);
  --portal-theme-toggle-bg: rgba(15, 23, 42, 0.03);
  --portal-surface-a: #f8fafc;
  --portal-surface-b: rgba(15, 23, 42, 0.04);
  --portal-heading: #0f172a;
  --portal-pay-title: #312e81;
  --portal-accent-soft: #eef2ff;
  --portal-accent-text: #4338ca;
}

[data-ld-theme="dark"] {
  --portal-glow-indigo: rgba(99, 102, 241, 0.35);
  --portal-glow-green: rgba(16, 185, 129, 0.22);
  --portal-bg-a: #0b1220;
  --portal-bg-b: #0f172a;
  --portal-bg-c: #111827;
  --portal-text: #e5e7eb;
  --portal-muted: rgba(226, 232, 240, 0.8);
  --portal-emphasis: #f8fafc;
  --portal-topbar-bg: rgba(2, 6, 23, 0.65);
  --portal-topbar-border: rgba(148, 163, 184, 0.15);
  --portal-topbar-text: #f8fafc;
  --portal-card-bg: rgba(255, 255, 255, 0.06);
  --portal-card-border: rgba(148, 163, 184, 0.18);
  --portal-card-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  --portal-panel-bg: rgba(2, 6, 23, 0.25);
  --portal-panel-border: rgba(148, 163, 184, 0.15);
  --portal-chip-bg: rgba(2, 6, 23, 0.35);
  --portal-chip-border: rgba(148, 163, 184, 0.22);
  --portal-chip-text: #e2e8f0;
  --portal-input-bg: rgba(2, 6, 23, 0.35);
  --portal-input-border: rgba(148, 163, 184, 0.25);
  --portal-input-text: #e5e7eb;
  --portal-input-placeholder: rgba(226, 232, 240, 0.6);
  --portal-input-focus-ring: rgba(99, 102, 241, 0.15);
  --portal-input-focus-border: rgba(99, 102, 241, 0.55);
  --portal-link: #a5b4fc;
  --portal-link-hover: #c7d2fe;
  --portal-nav-btn-border: rgba(248, 250, 252, 0.35);
  --portal-nav-btn-text: #f8fafc;
  --portal-nav-btn-hover-bg: rgba(255, 255, 255, 0.08);
  --portal-theme-toggle-bg: rgba(255, 255, 255, 0.04);
  --portal-surface-a: rgba(2, 6, 23, 0.35);
  --portal-surface-b: rgba(2, 6, 23, 0.25);
  --portal-heading: #f8fafc;
  --portal-pay-title: #e0e7ff;
  --portal-accent-soft: rgba(99, 102, 241, 0.12);
  --portal-accent-text: #c7d2fe;
}

.portal-body{
  background: radial-gradient(900px 420px at 10% 0%, var(--portal-glow-indigo), transparent 60%),
              radial-gradient(900px 420px at 90% 0%, var(--portal-glow-green), transparent 60%),
              linear-gradient(135deg, var(--portal-bg-a), var(--portal-bg-b) 60%, var(--portal-bg-c));
  color: var(--portal-text);
  min-height:100vh;
  transition: background 0.25s ease, color 0.2s ease;
}

.portal-topbar{
  background: var(--portal-topbar-bg);
  border-bottom: 1px solid var(--portal-topbar-border);
  backdrop-filter: blur(10px);
}
.portal-topbar-brand,
.portal-topbar-user{
  color: var(--portal-topbar-text) !important;
}
.portal-nav-btn,
.portal-btn-outline{
  border: 1px solid var(--portal-nav-btn-border) !important;
  color: var(--portal-nav-btn-text) !important;
  background: transparent !important;
  border-radius: 12px;
  font-weight: 600;
}
.portal-nav-btn:hover,
.portal-btn-outline:hover{
  background: var(--portal-nav-btn-hover-bg) !important;
  color: var(--portal-nav-btn-text) !important;
}
.portal-theme-toggle{
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  border: 1px solid var(--portal-nav-btn-border) !important;
  color: var(--portal-topbar-text) !important;
  background: var(--portal-theme-toggle-bg) !important;
  border-radius: 12px;
  font-weight: 600;
}
.portal-theme-toggle:hover{
  background: var(--portal-nav-btn-hover-bg) !important;
}

.portal-card{
  background: var(--portal-card-bg);
  border: 1px solid var(--portal-card-border);
  border-radius: 16px;
  box-shadow: var(--portal-card-shadow);
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.portal-card .portal-card-body{ padding: 22px; }
.portal-panel{
  background: var(--portal-panel-bg);
  border:1px solid var(--portal-panel-border);
}
.portal-muted{ color: var(--portal-muted); }
.portal-text-emphasis{ color: var(--portal-emphasis) !important; }
.portal-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.25rem .6rem; border-radius: 999px;
  border:1px solid var(--portal-chip-border);
  background: var(--portal-chip-bg);
  color: var(--portal-chip-text);
  font-size: .82rem;
}

.portal-btn{
  border-radius: 12px;
  padding: .75rem 1rem;
  font-weight: 700;
}

.portal-input{
  background: var(--portal-input-bg) !important;
  border: 1px solid var(--portal-input-border) !important;
  color: var(--portal-input-text) !important;
}
.portal-input::placeholder{ color: var(--portal-input-placeholder); }
.portal-input:focus{
  box-shadow: 0 0 0 .2rem var(--portal-input-focus-ring) !important;
  border-color: var(--portal-input-focus-border) !important;
}

.portal-link{ color: var(--portal-link); text-decoration:none; }
.portal-link:hover{ color: var(--portal-link-hover); text-decoration:underline; }

.portal-slug-info{
  font-size:.82rem;
  line-height:1.5;
  color:rgba(226,232,240,.85);
  background:rgba(99,102,241,.12);
  border:1px solid rgba(129,140,248,.25);
  border-radius:10px;
  padding:10px 12px;
}
.portal-slug-info strong{ color:#e0e7ff; }
.portal-slug-info em{ color:#c7d2fe; font-style:normal; }

.portal-slug-help-toggle{
  color:#a5b4fc !important;
  text-decoration:none;
  font-size:.82rem;
}
.portal-slug-help-toggle:hover{ color:#c7d2fe !important; }

/* Create company — compact collapse + step wizard */
.portal-create-card .portal-create-header{
  border-bottom: none;
}
.portal-create-body{
  border-color: rgba(148,163,184,.12) !important;
  padding-top: 18px !important;
}
.portal-create-chevron{
  display:inline-block;
  transition: transform .25s ease;
}
.portal-create-toggle[aria-expanded="true"] .portal-create-chevron{
  transform: rotate(180deg);
}

.portal-wizard-nav{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:0;
  padding:4px 2px 8px;
}
.portal-wizard-step{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  min-width:72px;
  max-width:110px;
  padding:0;
  border:none;
  background:transparent;
  color:#64748b;
  text-align:center;
  transition: color .2s ease, opacity .2s ease;
}
.portal-wizard-step.is-unlocked:not(:disabled){
  cursor:pointer;
}
.portal-wizard-step.is-locked,
.portal-wizard-step:disabled{
  cursor:not-allowed;
  opacity:.55;
}
.portal-wizard-step.is-active{
  color:#e0e7ff;
}
.portal-wizard-step.is-done{
  color:#94a3b8;
}
.portal-wizard-node{
  width:32px; height:32px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem; font-weight:700;
  background:rgba(30,41,59,.85);
  border:2px solid rgba(148,163,184,.35);
  color:#94a3b8;
  position:relative;
  transition:all .25s ease;
}
.portal-wizard-step.is-active .portal-wizard-node{
  border-color:#818cf8;
  background:rgba(99,102,241,.2);
  color:#c7d2fe;
  box-shadow:0 0 0 3px rgba(99,102,241,.2);
}
.portal-wizard-step.is-done .portal-wizard-node{
  border-color:#10b981;
  background:rgba(16,185,129,.18);
  color:#6ee7b7;
}
.portal-wizard-step.is-locked .portal-wizard-node{
  border-color:rgba(100,116,139,.35);
}
.portal-wizard-lock-icon{
  position:absolute;
  top:-4px; right:-4px;
  font-size:.55rem;
  color:#64748b;
  line-height:1;
}
.portal-wizard-step.is-unlocked .portal-wizard-lock-icon{
  display:none;
}
.portal-wizard-label{
  font-size:.68rem;
  line-height:1.25;
  font-weight:600;
}
.portal-wizard-step.is-active .portal-wizard-label{
  color:#c7d2fe;
}
.portal-wizard-opt{
  opacity:.75;
  font-weight:500;
}
.portal-wizard-line{
  flex:1;
  height:2px;
  margin-top:16px;
  min-width:12px;
  background:rgba(148,163,184,.2);
  border-radius:1px;
}
.portal-wizard-line.is-done{
  background:linear-gradient(90deg,#10b981,rgba(148,163,184,.25));
}

.portal-wizard-panel{
  padding:14px 14px 4px;
  background:rgba(2,6,23,.25);
  border:1px solid rgba(148,163,184,.12);
  border-radius:12px;
}
.portal-wizard-panel .form-label{
  font-size:.82rem;
  color:rgba(226,232,240,.85);
  margin-bottom:.35rem;
}
.portal-wizard-panel .text-muted,
.portal-wizard-panel small.text-muted{
  color:rgba(148,163,184,.85) !important;
  font-size:.78rem;
}
.portal-wizard-actions .portal-wizard-next,
.portal-wizard-actions .portal-wizard-submit{
  min-width:180px;
}

.portal-billing-options{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.portal-billing-option{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(148,163,184,.22);
  background:rgba(2,6,23,.3);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.portal-billing-option:has(.portal-billing-radio:checked),
.portal-billing-option:has(.portal-commitment-radio:checked){
  border-color:rgba(129,140,248,.55);
  background:rgba(99,102,241,.1);
}
.portal-billing-option-price{
  display:block;
  margin-top:6px;
  font-weight:600;
}
.portal-billing-radio{
  margin-top:4px;
  flex-shrink:0;
  accent-color:#818cf8;
}
.portal-billing-option-title{
  display:block;
  font-weight:700;
  font-size:.9rem;
  color:#e2e8f0;
  margin-bottom:4px;
}
.portal-billing-option-desc{
  display:block;
  font-size:.78rem;
  line-height:1.45;
  color:rgba(148,163,184,.95);
}

/* Smart loader */
.portal-smart-loader{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  background:rgba(2,6,23,.72);
  backdrop-filter:blur(6px);
}
.portal-smart-loader.d-none{ display:none !important; }
.portal-smart-loader-card{
  text-align:center; padding:28px 32px; max-width:320px;
  background:rgba(15,23,42,.95);
  border:1px solid rgba(148,163,184,.2);
  border-radius:16px;
  box-shadow:0 20px 50px rgba(0,0,0,.4);
}
.portal-smart-loader-ring{
  width:44px; height:44px; margin:0 auto 16px;
  border:3px solid rgba(148,163,184,.25);
  border-top-color:#818cf8;
  border-radius:50%;
  animation:portalSpin .85s linear infinite;
}
.portal-smart-loader.is-timeout .portal-smart-loader-ring{
  animation-duration:1.4s;
  opacity:.5;
}
.portal-smart-loader-msg{
  color:#e2e8f0; font-size:.95rem; font-weight:600;
}
@keyframes portalSpin{ to{ transform:rotate(360deg); } }

/* Order cards + stepper */
.portal-orders-list{ display:flex; flex-direction:column; gap:12px; }
.portal-order-card{
  padding:14px 16px;
  background:rgba(2,6,23,.35);
  border:1px solid rgba(148,163,184,.15);
  border-radius:12px;
}
.portal-order-badge{
  font-size:.72rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; padding:4px 10px; border-radius:999px;
  background:rgba(148,163,184,.15); color:#cbd5e1;
}
.portal-order-badge.phase-review{ background:rgba(245,158,11,.18); color:#fcd34d; }
.portal-order-badge.phase-active{ background:rgba(16,185,129,.18); color:#6ee7b7; }
.portal-order-badge.phase-suspended{ background:rgba(245,158,11,.2); color:#fbbf24; }
.portal-order-badge.phase-deleted{ background:rgba(239,68,68,.18); color:#fca5a5; }
.portal-order-badge.phase-rejected,
.portal-order-badge.phase-cancelled{ background:rgba(239,68,68,.18); color:#fca5a5; }

.portal-reset-badge.phase-cooling{ background:rgba(245,158,11,.22); color:#fcd34d; }
.portal-reset-badge.phase-ready{ background:rgba(59,130,246,.2); color:#93c5fd; }

.portal-stepper{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:0; margin:10px 0 4px; padding:0 4px;
}
.portal-stepper-item{
  display:flex; flex-direction:column; align-items:center;
  flex:0 0 auto; min-width:56px; max-width:72px;
}
.portal-stepper-node{
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem;
  background:rgba(30,41,59,.8);
  border:2px solid rgba(148,163,184,.35);
  color:#94a3b8;
  transition:all .25s ease;
}
.portal-stepper-item.done .portal-stepper-node{
  background:rgba(16,185,129,.2);
  border-color:#10b981; color:#6ee7b7;
}
.portal-stepper-item.active .portal-stepper-node{
  border-color:#818cf8;
  box-shadow:0 0 0 3px rgba(99,102,241,.25);
  color:#a5b4fc;
}
.portal-stepper-item.error .portal-stepper-node{
  background:rgba(239,68,68,.15);
  border-color:#ef4444; color:#fca5a5;
}
.portal-stepper-dot{
  width:6px; height:6px; border-radius:50%; background:#64748b;
}
.portal-stepper-pulse{
  width:10px; height:10px; border-radius:50%;
  background:#818cf8;
  animation:portalPulse 1.2s ease-in-out infinite;
}
@keyframes portalPulse{
  0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(.75); opacity:.5; }
}
.portal-stepper-label{
  margin-top:6px; font-size:.65rem; text-align:center;
  color:#64748b; line-height:1.2; font-weight:500;
}
.portal-stepper-item.done .portal-stepper-label{ color:#94a3b8; }
.portal-stepper-item.active .portal-stepper-label{ color:#c7d2fe; font-weight:700; }
.portal-stepper-item.error .portal-stepper-label{ color:#fca5a5; }
.portal-stepper-line{
  flex:1; height:2px; margin-top:14px; min-width:12px;
  background:rgba(148,163,184,.2); border-radius:1px;
}
.portal-stepper-line.done{ background:linear-gradient(90deg,#10b981,rgba(148,163,184,.2)); }

/* Mon abonnement */
.portal-page-header h1{ color: var(--portal-heading); font-weight:800; }
.portal-btn-primary{
  background:linear-gradient(135deg,#6366f1,#4f46e5);
  border:none;
  color:#fff !important;
}
.portal-btn-primary:hover{
  background:linear-gradient(135deg,#4f46e5,#4338ca);
  color:#fff !important;
}
.portal-badge{
  display:inline-flex; align-items:center;
  padding:.2rem .55rem; border-radius:999px;
  font-size:.72rem; font-weight:700;
  background:rgba(99,102,241,.18);
  border:1px solid rgba(129,140,248,.35);
  color:#c7d2fe;
}
.portal-badge-success{
  background:rgba(16,185,129,.15);
  border-color:rgba(52,211,153,.35);
  color:#6ee7b7;
}
.portal-badge-info{
  background:rgba(59,130,246,.15);
  border-color:rgba(96,165,250,.35);
  color:#93c5fd;
}
.portal-badge-danger{
  background:rgba(239,68,68,.15);
  border-color:rgba(248,113,113,.35);
  color:#fca5a5;
}
.portal-badge-warn{
  background:rgba(245,158,11,.15);
  border-color:rgba(251,191,36,.35);
  color:#fcd34d;
}
.portal-badge-muted{
  background:rgba(148,163,184,.12);
  border-color:rgba(148,163,184,.25);
  color:#94a3b8;
}
.portal-subscription-card{ overflow:hidden; }
.portal-subscription-stat{
  padding:12px 14px;
  border-radius:12px;
  background:rgba(2,6,23,.35);
  border:1px solid rgba(148,163,184,.12);
  height:100%;
}
.portal-subscription-stat-label{
  display:block;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:rgba(148,163,184,.95);
  margin-bottom:4px;
}
.portal-pay-box{
  padding:16px 18px;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(79,70,229,.22),rgba(16,185,129,.1));
  border:1px solid rgba(129,140,248,.35);
}
.portal-pay-box-title{
  font-weight:800;
  font-size:1rem;
  color: var(--portal-pay-title);
  margin-bottom:6px;
}
.portal-subscription-history summary{
  cursor:pointer;
  user-select:none;
}
.portal-subscription-history summary:hover{ color:#c7d2fe; }
.portal-subscription-history-item{
  padding:6px 0;
  border-bottom:1px solid rgba(148,163,184,.1);
}
.portal-subscription-history-item:last-child{ border-bottom:none; }

.portal-pay-awaiting-msg{
  border-radius: 10px;
}
[data-ld-theme="light"] .portal-pay-awaiting-msg{
  background: #eff6ff;
  border-color: #93c5fd;
  color: #1e3a8a;
}
[data-ld-theme="dark"] .portal-pay-awaiting-msg{
  background: rgba(30, 58, 138, 0.35);
  border-color: rgba(96, 165, 250, 0.35);
  color: #dbeafe;
}

/* —— Mode clair : composants encore en couleurs « dark » codées en dur —— */
[data-ld-theme="light"] .portal-slug-info{
  color: var(--portal-accent-text);
  background: var(--portal-accent-soft);
  border-color: #c7d2fe;
}
[data-ld-theme="light"] .portal-slug-info strong{ color: #312e81; }
[data-ld-theme="light"] .portal-slug-info em{ color: #4338ca; }
[data-ld-theme="light"] .portal-slug-help-toggle{ color: var(--portal-link) !important; }
[data-ld-theme="light"] .portal-slug-help-toggle:hover{ color: var(--portal-link-hover) !important; }

[data-ld-theme="light"] .portal-wizard-step{ color: #64748b; }
[data-ld-theme="light"] .portal-wizard-step.is-active{ color: #4338ca; }
[data-ld-theme="light"] .portal-wizard-step.is-done{ color: #64748b; }
[data-ld-theme="light"] .portal-wizard-node{
  background: #e2e8f0;
  border-color: #cbd5e1;
  color: #64748b;
}
[data-ld-theme="light"] .portal-wizard-step.is-active .portal-wizard-node{
  border-color: #6366f1;
  background: #eef2ff;
  color: #4338ca;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}
[data-ld-theme="light"] .portal-wizard-step.is-done .portal-wizard-node{
  border-color: #10b981;
  background: #ecfdf5;
  color: #059669;
}
[data-ld-theme="light"] .portal-wizard-step.is-active .portal-wizard-label{ color: #4338ca; }
[data-ld-theme="light"] .portal-wizard-panel{
  background: var(--portal-surface-a);
  border-color: var(--portal-panel-border);
}
[data-ld-theme="light"] .portal-wizard-panel .form-label{ color: #334155; }
[data-ld-theme="light"] .portal-wizard-panel .text-muted,
[data-ld-theme="light"] .portal-wizard-panel small.text-muted{ color: #64748b !important; }

[data-ld-theme="light"] .portal-billing-option{
  border-color: rgba(15, 23, 42, 0.12);
  background: #fff;
}
[data-ld-theme="light"] .portal-billing-option:has(.portal-billing-radio:checked),
[data-ld-theme="light"] .portal-billing-option:has(.portal-commitment-radio:checked){
  border-color: rgba(99, 102, 241, 0.45);
  background: #eef2ff;
}
[data-ld-theme="light"] .portal-billing-option-title{ color: #0f172a; }
[data-ld-theme="light"] .portal-billing-option-desc{ color: #64748b; }

[data-ld-theme="light"] .portal-smart-loader{ background: rgba(248, 250, 252, 0.88); }
[data-ld-theme="light"] .portal-smart-loader-card{
  background: #fff;
  border-color: rgba(15, 23, 42, 0.1);
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.1);
}
[data-ld-theme="light"] .portal-smart-loader-msg{ color: #0f172a; }

[data-ld-theme="light"] .portal-order-card{
  background: var(--portal-surface-a);
  border-color: var(--portal-panel-border);
}
[data-ld-theme="light"] .portal-order-badge{ background: #e2e8f0; color: #475569; }
[data-ld-theme="light"] .portal-stepper-node{
  background: #e2e8f0;
  border-color: #cbd5e1;
  color: #64748b;
}
[data-ld-theme="light"] .portal-stepper-item.done .portal-stepper-node{
  background: #ecfdf5;
  border-color: #10b981;
  color: #059669;
}
[data-ld-theme="light"] .portal-stepper-item.active .portal-stepper-node{
  border-color: #6366f1;
  color: #4338ca;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}
[data-ld-theme="light"] .portal-stepper-label{ color: #64748b; }
[data-ld-theme="light"] .portal-stepper-item.active .portal-stepper-label{ color: #4338ca; }

[data-ld-theme="light"] .portal-badge{
  background: #eef2ff;
  border-color: #c7d2fe;
  color: #4338ca;
}
[data-ld-theme="light"] .portal-badge-muted{
  background: #f1f5f9;
  border-color: #e2e8f0;
  color: #64748b;
}
[data-ld-theme="light"] .portal-subscription-stat{
  background: var(--portal-surface-a);
  border-color: var(--portal-panel-border);
}
[data-ld-theme="light"] .portal-pay-box{
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(16, 185, 129, 0.06));
  border-color: rgba(99, 102, 241, 0.25);
}
[data-ld-theme="light"] .portal-subscription-history summary:hover{ color: var(--portal-link); }
[data-ld-theme="light"] .portal-subscription-history-item{
  border-bottom-color: rgba(15, 23, 42, 0.08);
}
[data-ld-theme="light"] .portal-body .btn-outline-light{
  border-color: var(--portal-nav-btn-border) !important;
  color: var(--portal-nav-btn-text) !important;
}
[data-ld-theme="light"] .portal-body .text-light{
  color: var(--portal-emphasis) !important;
}
[data-ld-theme="light"] .portal-card h2,
[data-ld-theme="light"] .portal-card h5{ color: var(--portal-heading); }

/* —— Abonnement : liens & boutons PDF (override Bootstrap .link-light !important) —— */
html[data-ld-theme="light"] .portal-body a.portal-support-link{
  color: #4f46e5 !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
html[data-ld-theme="light"] .portal-body a.portal-support-link:hover,
html[data-ld-theme="light"] .portal-body a.portal-support-link:focus{
  color: #4338ca !important;
}
html[data-ld-theme="dark"] .portal-body a.portal-support-link{
  color: #a5b4fc !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
html[data-ld-theme="dark"] .portal-body a.portal-support-link:hover,
html[data-ld-theme="dark"] .portal-body a.portal-support-link:focus{
  color: #c7d2fe !important;
}

html[data-ld-theme="light"] .portal-body .alert-success{
  --bs-alert-color: #14532d;
  --bs-alert-bg: #ecfdf5;
  --bs-alert-border-color: #86efac;
  color: var(--bs-alert-color);
  border-color: var(--bs-alert-border-color);
}
html[data-ld-theme="dark"] .portal-body .alert-success{
  --bs-alert-color: #d1fae5;
  --bs-alert-bg: rgba(6, 78, 59, 0.5);
  --bs-alert-border-color: rgba(52, 211, 153, 0.35);
  color: var(--bs-alert-color);
  border-color: var(--bs-alert-border-color);
}

html[data-ld-theme="light"] .portal-body .portal-payment-receipt-btn{
  border: 1px solid #15803d !important;
  color: #14532d !important;
  background-color: #ffffff !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
  padding: 0.35rem 0.75rem !important;
  font-weight: 600;
}
html[data-ld-theme="light"] .portal-body .portal-payment-receipt-btn:hover,
html[data-ld-theme="light"] .portal-body .portal-payment-receipt-btn:focus{
  color: #14532d !important;
  background-color: #f0fdf4 !important;
  border-color: #166534 !important;
}

html[data-ld-theme="dark"] .portal-body .portal-payment-receipt-btn{
  border: 1px solid rgba(134, 239, 172, 0.55) !important;
  color: #ecfdf5 !important;
  background-color: rgba(2, 6, 23, 0.45) !important;
  padding: 0.35rem 0.75rem !important;
  font-weight: 600;
}
html[data-ld-theme="dark"] .portal-body .portal-payment-receipt-btn:hover,
html[data-ld-theme="dark"] .portal-body .portal-payment-receipt-btn:focus{
  color: #ffffff !important;
  background-color: rgba(2, 6, 23, 0.65) !important;
  border-color: rgba(134, 239, 172, 0.85) !important;
}

html[data-ld-theme="light"] .portal-body .portal-history-receipt-btn{
  border: 1px solid rgba(15, 23, 42, 0.2) !important;
  color: #0f172a !important;
  background-color: #ffffff !important;
}
html[data-ld-theme="light"] .portal-body .portal-history-receipt-btn:hover,
html[data-ld-theme="light"] .portal-body .portal-history-receipt-btn:focus{
  color: #0f172a !important;
  background-color: #f1f5f9 !important;
  border-color: rgba(15, 23, 42, 0.3) !important;
}

html[data-ld-theme="dark"] .portal-body .portal-history-receipt-btn{
  border: 1px solid rgba(248, 250, 252, 0.35) !important;
  color: #f8fafc !important;
  background-color: rgba(2, 6, 23, 0.4) !important;
}
html[data-ld-theme="dark"] .portal-body .portal-history-receipt-btn:hover,
html[data-ld-theme="dark"] .portal-body .portal-history-receipt-btn:focus{
  color: #ffffff !important;
  background-color: rgba(2, 6, 23, 0.6) !important;
  border-color: rgba(248, 250, 252, 0.5) !important;
}

.portal-modal {
  background: var(--portal-card-bg);
  color: var(--portal-text);
  border: 1px solid var(--portal-card-border);
  box-shadow: var(--portal-card-shadow);
}
.portal-modal .modal-header,
.portal-modal .modal-body {
  color: var(--portal-text);
}
.portal-modal .btn-close {
  filter: var(--portal-btn-close-filter, none);
}
[data-ld-theme="dark"] .portal-modal .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

