/* ===== Base ===== */
* { box-sizing: border-box; }
:root {
  --primary: #5B68E3;
  --primary-dark: #4A56C2;
  --bg: #FCFBFE;
  --card: #FCFBFE;
  --text: #1d1d2b;
  --muted: #6b6b80;
  --border: #e4e4ee;
  --green: #14804a;
  --green-bg: #e3f5ec;
  --red: #c0392b;
  --red-bright: #e5342a;
  --red-bg: #fdecea;
  --radius: 10px;
}

/* VAT checkout details stay visually secondary to the payable total while
   making the accounting split easy to scan. */
.checkout-vat-breakdown {
  display: grid;
  gap: .45rem;
  margin-top: 1rem;
  padding: .85rem 0;
  border-top: 1px solid color-mix(in srgb, currentColor 13%, transparent);
  border-bottom: 1px solid color-mix(in srgb, currentColor 13%, transparent);
}
.checkout-vat-breakdown > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: var(--muted, #667085);
  font-size: .9rem;
}
.checkout-vat-breakdown strong { color: inherit; font-variant-numeric: tabular-nums; }
.checkout-vat-fields {
  display: grid;
  gap: .85rem;
  margin: .5rem 0 1rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--primary, #5b68e3) 18%, #d0d5dd);
  border-radius: 14px;
  background: color-mix(in srgb, var(--primary, #5b68e3) 3%, white);
  transition: border-color .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.checkout-vat-fields:focus-within {
  border-color: color-mix(in srgb, var(--primary, #5b68e3) 55%, #d0d5dd);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary, #5b68e3) 10%, transparent);
}
.checkout-vat-conflict { margin: 0; animation: vat-notice-in .25s ease both; }
.checkout-vat-validation[data-state="valid"] { color: #067647; }
.checkout-vat-validation[data-state="invalid"],
.checkout-vat-validation[data-state="unavailable"] { color: #b54708; }
.product-vat-note { margin: -.35rem 0 .8rem; color: var(--muted, #667085); font-size: .86rem; }
.vat-liability-warning { display: grid; grid-template-columns: auto 1fr; gap: .2rem .65rem; align-items: start; }
.vat-liability-warning > strong, .vat-liability-warning > span { grid-column: 2; }
.vat-settings-options { display: grid; gap: 1.1rem; margin-top: 1rem; animation: vat-notice-in .24s ease both; }
.vat-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.vat-reverse-charge-toggle { margin: 0; }
.vat-registrations { padding-top: 1rem; border-top: 1px solid var(--border); }
.vat-registration-list { display: grid; gap: .7rem; }
.vat-registration-row {
  display: grid; grid-template-columns: minmax(135px, .8fr) minmax(190px, 1.2fr) minmax(150px, .8fr) auto;
  gap: .65rem; align-items: end; padding: .8rem; border: 1px solid var(--border); border-radius: 12px; background: #fff;
}

.vat-report-page .page-head > div:first-child { min-width: 0; }
.vat-report-page h1 { margin-top: .4rem; }
.vat-report-currency { margin: 1.25rem 0; }
.vat-report-currency-head { display: flex; align-items: center; gap: .65rem; margin-bottom: .65rem; }
.vat-report-currency-head strong { font-size: .82rem; letter-spacing: .08em; }
.vat-report-currency-head span { color: var(--muted); font-size: .85rem; }
.vat-report-empty { padding: 3rem 1.5rem; text-align: center; }
.vat-report-empty-icon { display: inline-flex; width: 3rem; height: 3rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--surface-2); color: var(--primary); }
.vat-report-empty-icon svg { width: 1.4rem; height: 1.4rem; }
.vat-report-table-head { margin-bottom: .8rem; }
.vat-country-cell { display: flex; flex-direction: column; gap: .1rem; }
.vat-country-cell small, .vat-refund-tax { display: block; color: var(--muted); font-size: .75rem; margin-top: .15rem; }
.order-receipt-page { max-width: 920px; margin: 0 auto; }
.order-receipt-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.order-receipt { padding: clamp(1.2rem, 4vw, 3rem); }
.order-receipt-head { display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, 1.15fr); gap: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.order-receipt-head h1 { margin: .25rem 0; font-size: 1.45rem; letter-spacing: -.02em; }
.order-receipt-head p { margin: 0; color: var(--muted); }
.order-receipt-parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.order-receipt-parties > div { display: flex; flex-direction: column; gap: .2rem; overflow-wrap: anywhere; }
.order-receipt-parties small { color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: .7rem; }
.order-receipt-lines { margin: 1.5rem 0; }
.order-receipt-lines td small { display: block; color: var(--muted); margin-top: .15rem; }
.order-receipt-legal td { background: color-mix(in srgb, var(--primary) 6%, white); color: #344054; font-size: .84rem; }
.order-receipt-totals { width: min(100%, 390px); margin-left: auto; display: grid; gap: .55rem; }
.order-receipt-totals > div { display: flex; justify-content: space-between; gap: 1rem; }
.order-receipt-grand-total { margin-top: .2rem; padding-top: .7rem; border-top: 1px solid var(--border); font-size: 1.08rem; }
.order-receipt-refund { color: var(--red); }
.order-receipt-responsibility { margin: 2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .78rem; }
.content-receipt-link { display: flex; align-items: center; gap: .35rem; width: fit-content; margin-top: .35rem; font-size: .82rem; }
.content-receipt-link svg, .pb-customer-product-actions svg { width: 14px; height: 14px; }
.pb-customer-product-actions { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; flex-wrap: wrap; }
@media (max-width: 680px) {
  .order-receipt-head, .order-receipt-parties { grid-template-columns: 1fr; }
  .order-receipt-toolbar { align-items: flex-start; flex-direction: column; }
}
@media print {
  .order-receipt-toolbar, .topnav, .site-footer, footer:not(.order-receipt-totals) { display: none !important; }
  .container { max-width: none; padding: 0; }
  .order-receipt { border: 0; box-shadow: none; }
}
.vat-registration-row .field { margin: 0; }
.vat-registration-remove { margin-bottom: .15rem; }
.vat-checkout-reloading .checkout-payment-card,
.vat-checkout-reloading .checkout-summary-column { opacity: .62; transition: opacity .15s ease; }
@keyframes vat-notice-in {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
/* Sur mobile la barre garde ses pictogrammes et perd ses libellés : elle
   dépasserait sinon la largeur de l'écran. */
@media (max-width: 650px) {
  .ce-inline-toolbar .se-inline-trigger .se-inline-label,
  .se-toolbar .se-tool--style .se-tool-label,
  .se-toolbar .se-tool--lumia .se-tool-label { display: none; }
  .se-inline-style,
  .se-tool--style { min-width: 0; }
  .se-toolbar { max-width: calc(100vw - 24px); flex-wrap: wrap; }
  .se-ai-panel,
  .se-link { width: min(320px, calc(100vw - 24px)); }
}

/* ---- Message court ---- */
.se-toast {
  position: fixed; left: 50%; bottom: 26px; z-index: 2700;
  max-width: min(420px, calc(100vw - 32px)); padding: .6rem .9rem;
  border-radius: 11px; background: #171720; color: #fff;
  box-shadow: 0 18px 40px -14px rgba(10, 10, 25, .55);
  font-size: .82rem; line-height: 1.45;
  opacity: 0; transform: translate(-50%, 10px);
  transition: opacity .2s var(--se-ease), transform .2s var(--se-ease);
}
.se-toast.is-open { opacity: 1; transform: translate(-50%, 0); }
.se-toast.is-error { background: #7a1f1a; }

@media (prefers-reduced-motion: reduce) {
  .checkout-vat-conflict { animation: none; }
}
@media (max-width: 760px) {
  .vat-settings-grid, .vat-registration-row { grid-template-columns: 1fr; }
  .vat-registration-remove { justify-self: end; }
}
html { font-size: 16px; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
}
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.8rem; margin: 0 0 .5rem; }
h2 { font-size: 1.3rem; }
hr { border: none; border-top: 1px solid var(--border); margin: 1rem 0; }
code { background: #efeff6; padding: .1em .35em; border-radius: 4px; font-size: .9em; }

.container { max-width: 1100px; margin: 0 auto; padding: 1.5rem 1.25rem 3rem; min-height: calc(100vh - 140px); }
.hint { color: var(--muted); font-size: .85rem; font-weight: normal; }
.center { text-align: center; }

/* ===== Nav ===== */
.topnav {
  display: flex; align-items: center; justify-content: space-between;
  padding: .75rem 1.5rem; background: #222222; border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 50;
}
.brand { font-weight: 700; font-size: 1.15rem; color: #fff; display: inline-flex; align-items: center; }
.brand:hover { text-decoration: none; }
.brand-logo { height: 28px; width: auto; display: block; }
.store-nav-logo { width: auto; max-width: 150px; object-fit: contain; display: block; }
.nav-links { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.nav-links a { color: #fff; font-size: .95rem; }
.nav-links a.active { color: var(--primary); font-weight: 600; }
.nav-user { color: #ccc; font-size: .9rem; }
.inline-form { display: inline; margin: 0; }

/* Navigation de l'espace vendeur, dans le langage visuel du site public. */
.dashboard-shell { -webkit-font-smoothing: antialiased; }
.dashboard-shell :focus-visible { outline: 3px solid rgba(91, 104, 227, .34); outline-offset: 3px; }
.dashboard-nav {
  position: sticky; top: 0; z-index: 100;
  width: 100%; min-height: 76px; padding: 13px max(24px, calc((100vw - 1440px) / 2));
  border: 0; border-bottom: 1px solid rgba(37, 52, 120, .09);
  background: rgba(252, 251, 254, .91); box-shadow: 0 8px 30px rgba(37, 52, 120, .045);
  backdrop-filter: saturate(160%) blur(18px);
}
.dashboard-brand {
  display: inline-flex; flex: none; align-items: center; gap: 9px; color: #222;
  font-size: 1.25rem; font-weight: 820; letter-spacing: -.045em;
}
.dashboard-brand > span > span { color: var(--primary); }
.dashboard-brand-icon {
  width: 39px; height: 39px; object-fit: contain;
  filter: drop-shadow(0 5px 8px rgba(37, 52, 120, .16));
}
.dashboard-nav-links {
  min-width: 0; margin-left: auto; gap: clamp(7px, .85vw, 14px); flex-wrap: nowrap;
}
.dashboard-nav-links > a {
  position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 10px 0;
  color: #3f4252; font-size: clamp(.75rem, .68rem + .12vw, .84rem); font-weight: 650;
  line-height: 1; white-space: nowrap; transition: color .2s ease;
}
.dashboard-nav-links > a::after {
  content: ""; position: absolute; right: 0; bottom: 4px; left: 0; height: 2px;
  border-radius: 999px; background: var(--primary); transform: scaleX(0);
  transform-origin: center; transition: transform .22s cubic-bezier(.2, .8, .2, 1);
}
.dashboard-nav-links > a:hover,
.dashboard-nav-links > a.active { color: #253478; text-decoration: none; }
.dashboard-nav-links > a:hover::after,
.dashboard-nav-links > a.active::after { transform: scaleX(1); }
.dashboard-nav-links > a .icon { width: 15px; height: 15px; }
.dashboard-nav-links > .dashboard-store-link {
  min-height: 40px; padding: 0 12px; border: 1px solid rgba(37, 52, 120, .14);
  border-radius: 10px; color: #253478; background: #fff;
  box-shadow: 0 6px 18px rgba(37, 52, 120, .07);
  transition: color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s cubic-bezier(.2, .8, .2, 1);
}
.dashboard-nav-links > .dashboard-store-link::after { display: none; }
.dashboard-nav-links > .dashboard-store-link:hover {
  color: #fff; border-color: #253478; background: #253478;
  box-shadow: 0 10px 24px rgba(37, 52, 120, .19); transform: translateY(-1px);
}
.dashboard-nav-links > .dashboard-store-link .icon:last-child { width: 12px; height: 12px; opacity: .62; }
.dashboard-nav-account { display: flex; flex: none; align-items: center; gap: 8px; margin-left: 10px; }
.dashboard-nav .dashboard-notification-toggle {
  border-color: rgba(37, 52, 120, .13); color: #4b4f64; background: #fff;
  box-shadow: 0 5px 16px rgba(37, 52, 120, .07);
}
.dashboard-nav .dashboard-notification-toggle:hover,
.dashboard-nav .dashboard-notification-menu.open .dashboard-notification-toggle {
  color: #253478; border-color: rgba(91, 104, 227, .38); background: #f3f4ff;
}
.dashboard-nav .dashboard-notification-badge { border-color: #fcfbfe; }
.dashboard-nav .avatar-btn {
  border-color: #fff; background: linear-gradient(145deg, #5b68e3, #253478);
  box-shadow: 0 0 0 1px rgba(37, 52, 120, .12), 0 6px 16px rgba(37, 52, 120, .14);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.dashboard-nav .avatar-btn:hover,
.dashboard-nav .avatar-menu.open .avatar-btn {
  border-color: #fff; box-shadow: 0 0 0 2px rgba(91, 104, 227, .3), 0 8px 20px rgba(37, 52, 120, .18);
  transform: translateY(-1px);
}
.dashboard-nav .dashboard-notification-panel,
.dashboard-nav .avatar-dropdown { border-color: rgba(37, 52, 120, .12); border-radius: 16px; }
.dashboard-menu-toggle {
  display: none; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(37, 52, 120, .13);
  border-radius: 11px; background: #fff; cursor: pointer;
}
.dashboard-menu-toggle span {
  display: block; width: 18px; height: 2px; margin: 4px auto; border-radius: 5px;
  background: #253478; transition: transform .2s ease, opacity .2s ease;
}

@media (max-width: 1180px) {
  .dashboard-nav { min-height: 68px; padding: 10px 18px; }
  .dashboard-brand-icon { width: 36px; height: 36px; }
  .dashboard-menu-toggle { display: block; order: 3; margin-left: 8px; }
  .dashboard-nav-account { order: 2; margin-left: auto; }
  .dashboard-nav-links {
    position: absolute; top: calc(100% + 1px); right: 14px; left: 14px; order: 4;
    display: flex; max-height: 0; margin: 0; padding: 0 14px; overflow: hidden;
    flex-direction: column; align-items: stretch; gap: 2px;
    visibility: hidden; border: 0 solid rgba(37, 52, 120, .13); border-radius: 0 0 16px 16px;
    background: rgba(252, 251, 254, .98); box-shadow: 0 25px 45px rgba(37, 52, 120, .14);
    opacity: 0; transform: translateY(-8px);
    transition: max-height .32s cubic-bezier(.2, .8, .2, 1), padding .3s ease, opacity .2s ease, transform .3s cubic-bezier(.2, .8, .2, 1), visibility .3s;
    pointer-events: none; backdrop-filter: blur(18px);
  }
  .dashboard-nav.is-open .dashboard-nav-links {
    max-height: min(620px, calc(100vh - 82px)); padding-top: 12px; padding-bottom: 15px;
    overflow-y: auto; visibility: visible; border-width: 0 1px 1px;
    opacity: 1; transform: none; pointer-events: auto;
  }
  .dashboard-nav-links > a { width: 100%; min-height: 42px; padding: 0 10px; border-radius: 9px; font-size: .9rem; }
  .dashboard-nav-links > a::after { display: none; }
  .dashboard-nav-links > a:hover,
  .dashboard-nav-links > a.active { color: #253478; background: #eef0ff; }
  .dashboard-nav-links > .dashboard-store-link {
    justify-content: center; margin-top: 8px; border-color: #253478; color: #fff; background: #253478;
  }
  .dashboard-nav-links > .dashboard-store-link:hover { background: var(--primary); transform: none; }
  .dashboard-nav.is-open .dashboard-menu-toggle span:first-child { transform: translateY(6px) rotate(45deg); }
  .dashboard-nav.is-open .dashboard-menu-toggle span:nth-child(2) { opacity: 0; }
  .dashboard-nav.is-open .dashboard-menu-toggle span:last-child { transform: translateY(-6px) rotate(-45deg); }
}
@media (max-width: 520px) {
  .dashboard-nav { padding-right: 12px; padding-left: 12px; }
  .dashboard-brand { gap: 7px; font-size: 1.08rem; }
  .dashboard-brand-icon { width: 34px; height: 34px; }
  .dashboard-nav-account { gap: 6px; }
  .dashboard-menu-toggle { width: 38px; height: 38px; margin-left: 6px; }
  .dashboard-nav .dashboard-notification-toggle,
  .dashboard-nav .avatar-btn { width: 36px; height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-nav-links,
  .dashboard-nav-links > a,
  .dashboard-menu-toggle span { transition: none; }
}

/* Notifications du tableau de bord */
.dashboard-notification-menu { position: relative; flex: none; }
.dashboard-notification-toggle {
  position: relative; display: grid; place-items: center; width: 38px; height: 38px;
  padding: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 50%;
  background: rgba(255,255,255,.07); color: #fff; cursor: pointer;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.dashboard-notification-toggle:hover,
.dashboard-notification-menu.open .dashboard-notification-toggle {
  background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.32);
  transform: translateY(-1px);
}
.dashboard-notification-toggle .icon { width: 19px; height: 19px; }
.dashboard-notification-badge {
  position: absolute; top: -5px; right: -6px; min-width: 19px; height: 19px;
  display: grid; place-items: center; padding: 0 5px; border: 2px solid #222;
  border-radius: 999px; background: #ef4444; color: #fff;
  font-size: .64rem; font-weight: 800; line-height: 1;
}
.dashboard-notification-panel {
  position: absolute; top: calc(100% + .65rem); right: 0; z-index: 120;
  width: min(390px, calc(100vw - 24px)); overflow: hidden;
  color: var(--text); background: #fff; border: 1px solid var(--border);
  border-radius: 16px; box-shadow: 0 20px 55px rgba(18, 18, 28, .23);
  transform-origin: top right;
  opacity: 0; transform: translateY(-6px) scale(.98);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}
.dashboard-notification-panel[hidden] {
  opacity: 0; transform: translateY(-6px) scale(.98);
  pointer-events: none;
}
.dashboard-notification-panel.open {
  opacity: 1; transform: none;
  pointer-events: auto;
}
.dashboard-notification-panel.closing {
  opacity: 0; transform: translateY(-6px) scale(.98);
  pointer-events: none;
}
@keyframes dashboardNotificationsIn {
  from { opacity: 0; transform: translateY(-6px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.dashboard-notification-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1rem 1rem .85rem; border-bottom: 1px solid #ececf3;
}
.dashboard-notification-head > div { display: flex; align-items: baseline; gap: .5rem; }
.dashboard-notification-head strong { font-size: 1.02rem; }
.dashboard-notification-head span { color: var(--muted); font-size: .76rem; }
.dashboard-notification-head > a {
  display: grid; place-items: center; width: 32px; height: 32px;
  border-radius: 9px; color: var(--muted); background: #f5f5f9;
}
.dashboard-notification-head > a:hover { color: var(--primary); text-decoration: none; }
.dashboard-notification-list { max-height: min(440px, 60vh); overflow-y: auto; }
.dashboard-notification-item {
  position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) 28px;
  align-items: start; gap: .7rem; padding: .85rem .75rem .85rem 1rem;
  border-bottom: 1px solid #eeeeF4; transition: opacity .18s ease, transform .18s ease, background .18s ease;
}
.dashboard-notification-item:hover { background: #fafafe; }
.dashboard-notification-item.is-unread { background: #f4f5ff; }
.dashboard-notification-item.is-unread::before {
  content: ""; position: absolute; left: 5px; top: 50%; width: 5px; height: 5px;
  border-radius: 50%; background: var(--primary); transform: translateY(-50%);
}
.dashboard-notification-item.is-removing { opacity: 0; transform: translateX(12px); }
.dashboard-notification-type {
  display: grid; place-items: center; width: 38px; height: 38px;
  border-radius: 11px; color: #4e5bd3; background: #e9ebff;
}
.dashboard-notification-type-sale { color: #14804a; background: #e6f7ef; }
.dashboard-notification-type-login { color: #946313; background: #fff3d7; }
.dashboard-notification-type-site_update { color: #7c3aed; background: #f0e8ff; }
.dashboard-notification-type-account_warning { color: #b3261e; background: #fdeaea; }
.dashboard-notification-type-security { color: #2f5bd0; background: #e8eeff; }
.dashboard-notification-item.is-warning { background: #fff6f6; }
.dashboard-notification-item.is-warning:hover { background: #fff0f0; }
.dashboard-notification-item.is-warning.is-unread { background: #fdeaea; }
.dashboard-notification-item.is-warning.is-unread::before { background: #d93025; }
.dashboard-notification-item.is-warning .dashboard-notification-content strong { color: #a01a12; }
.dashboard-notification-type .icon { width: 18px; height: 18px; }
.nav-links .dashboard-notification-content {
  display: flex; min-width: 0; flex-direction: column; gap: .16rem;
  color: var(--text); font-size: .85rem; line-height: 1.35;
}
.nav-links .dashboard-notification-content:hover { text-decoration: none; }
.dashboard-notification-content strong {
  overflow: hidden; color: var(--text); font-size: .88rem;
  text-overflow: ellipsis; white-space: nowrap;
}
.dashboard-notification-content > span {
  display: -webkit-box; overflow: hidden; color: #5f6071; font-size: .79rem;
  -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.dashboard-notification-content time { color: #9090a2; font-size: .72rem; }
.dashboard-notification-delete {
  display: grid; place-items: center; width: 28px; height: 28px; padding: 0;
  opacity: 0; border: 0; border-radius: 8px; color: #9b9baa;
  background: transparent; cursor: pointer; transition: opacity .15s ease, color .15s ease, background .15s ease;
}
.dashboard-notification-item:hover .dashboard-notification-delete,
.dashboard-notification-delete:focus-visible { opacity: 1; }
.dashboard-notification-delete:hover { color: var(--red); background: var(--red-bg); }
.dashboard-notification-delete .icon { width: 15px; height: 15px; }
.dashboard-notification-empty {
  display: flex; flex-direction: column; align-items: center; padding: 2.2rem 1.5rem;
  text-align: center;
}
.dashboard-notification-empty[hidden] { display: none; }
.dashboard-notification-empty > span {
  display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: .7rem;
  border-radius: 15px; color: var(--primary); background: #eef0ff;
}
.dashboard-notification-empty p {
  max-width: 270px; margin: .3rem 0 0; color: var(--muted); font-size: .8rem; line-height: 1.45;
}
.dashboard-notification-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 42px; padding: .6rem 1rem; border-top: 1px solid #ececf3;
  background: #fafafd; color: var(--muted); font-size: .75rem;
}
.dashboard-notification-foot button {
  padding: .2rem 0; border: 0; color: var(--red); background: none;
  font: inherit; font-weight: 650; cursor: pointer;
}
.dashboard-notification-foot button[hidden] { display: none; }
@media (max-width: 700px) {
  .dashboard-notification-panel {
    position: fixed; top: 68px; right: 12px; left: 12px; width: auto;
    max-height: calc(100vh - 80px);
  }
  .dashboard-notification-list { max-height: calc(100vh - 220px); }
  .dashboard-notification-delete { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-notification-panel,
  .dashboard-notification-item,
  .avatar-dropdown { animation: none; transition: none; }
}

/* ===== Buttons ===== */
.btn {
  display: inline-block; padding: .5rem 1rem; border-radius: var(--radius);
  border: 1px solid transparent; background: #ececf4; color: var(--text);
  font-size: .95rem; cursor: pointer; text-align: center; font-family: inherit;
  transition: all 0.2s ease;
}
.btn:hover { text-decoration: none; filter: brightness(.97); transform: scale(1.02); }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); transform: scale(1.02); }
.btn-secondary { background: var(--card); border-color: var(--border); transition: all 0.2s ease; }
.btn-secondary:hover { transform: scale(1.02); }
.btn-ghost { background: transparent; border-color: var(--border); transition: all 0.2s ease; }
.btn-ghost:hover { transform: scale(1.02); }
.btn-danger { color: var(--red); transition: all 0.2s ease; }
.btn-danger:hover { transform: scale(1.02); }
.btn-sm { padding: .3rem .65rem; font-size: .85rem; }
.btn-lg { padding: .8rem 1.5rem; font-size: 1.05rem; }
.btn-block { display: block; width: 100%; }

/* ===== Forms ===== */
input[type="text"], input[type="email"], input[type="password"], input[type="url"], select, textarea {
  width: 100%; padding: .55rem .75rem; border: 1px solid var(--border);
  border-radius: var(--radius); font-size: .95rem; font-family: inherit; background: var(--card);
}
input:focus, select:focus { outline: 2px solid var(--primary); outline-offset: 0; border-color: transparent; }
label { display: block; }
.field { display: block; margin-bottom: 1.1rem; }
.field[hidden] { display: none; }
.field-label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .35rem; }
.field-row { display: flex; gap: .75rem; }
.field-row .field { flex: 1; }

/* Cases à cocher communes : visuelles, accessibles et légèrement animées */
input[type="checkbox"] {
  appearance: none; -webkit-appearance: none; width: 1.18rem !important; height: 1.18rem;
  min-width: 1.18rem; margin: .1rem 0 0; border: 1.5px solid var(--theme-border, #b8b8c7); border-radius: 5px;
  background-color: var(--theme-card, var(--card)); background-position: center; background-repeat: no-repeat;
  background-size: 0; cursor: pointer; vertical-align: middle;
  transition: background-color .16s ease, border-color .16s ease, background-size .18s cubic-bezier(.2,.8,.2,1), transform .16s ease, box-shadow .16s ease;
}
input[type="checkbox"]:hover { border-color: var(--theme-primary, var(--primary)); transform: scale(1.06); }
input[type="checkbox"]:checked {
  border-color: var(--theme-primary, var(--primary)); background-color: var(--theme-primary, var(--primary));
  background-size: 78%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.2 6.3 11.4 13 4.8' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  animation: checkboxPop .22s ease;
}
input[type="checkbox"]:focus-visible { outline: 3px solid rgba(91, 104, 227, .24); outline-offset: 2px; }
input[type="checkbox"]:disabled { opacity: .5; cursor: not-allowed; transform: none; }
@keyframes checkboxPop { 50% { transform: scale(1.14); } }

.auth-card {
  max-width: 420px; margin: 3rem auto; background: var(--card);
  border: 1px solid var(--border); border-radius: var(--radius); padding: 2rem;
}
.auth-card label { margin-bottom: 1rem; font-weight: 600; font-size: .9rem; }
.auth-card input { margin-top: .35rem; font-weight: normal; }
.auth-alt { margin-top: 1.25rem; text-align: center; color: var(--muted); font-size: .9rem; }

.alert { padding: .75rem 1rem; border-radius: var(--radius); margin-bottom: 1rem; font-size: .95rem; }
.alert-error { background: #fdecea; color: var(--red); }
.alert-success { background: var(--green-bg); color: var(--green); }

/* ===== Cards / layout ===== */
.card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.5rem; margin-bottom: 1.25rem;
}
.card-title { margin-top: 0; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.page-head h1 { margin: 0; }
.page-head-actions { display: flex; gap: .6rem; flex-wrap: wrap; }

/* ===== Hero / home ===== */
.hero { text-align: center; padding: 3rem 1rem 2.5rem; }
.hero h1 { font-size: 2.3rem; max-width: 700px; margin: 0 auto .75rem; }
.hero p { color: var(--muted); font-size: 1.1rem; margin: 0 auto 1.5rem; max-width: 550px; }
.section-title { margin: 2rem 0 1rem; }
.home-pricing-callout {
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  margin: 3rem 0 .5rem; padding: 2rem;
  border: 1px solid #d8dcff; border-radius: 20px;
  background: linear-gradient(135deg, #f1f3ff, #fff 58%, #fdf3ff);
}
.home-pricing-callout h2 { margin: .35rem 0 .5rem; font-size: clamp(1.45rem, 3vw, 2rem); }
.home-pricing-callout p { margin: 0; max-width: 720px; color: var(--muted); }
@media (max-width: 720px) {
  .home-pricing-callout { align-items: flex-start; flex-direction: column; }
}

/* ===== Public pricing ===== */
.pricing-hero {
  max-width: 850px; margin: 1.5rem auto 2.5rem; text-align: center;
}
.pricing-eyebrow, .pricing-plan-label {
  color: var(--primary); font-weight: 750; font-size: .78rem;
  letter-spacing: .09em; text-transform: uppercase;
}
.pricing-hero h1 {
  max-width: 820px; margin: .55rem auto .75rem;
  font-size: clamp(2.15rem, 5vw, 3.65rem); line-height: 1.05; letter-spacing: -.04em;
}
.pricing-hero > p {
  max-width: 700px; margin: 0 auto 1.5rem; color: var(--muted); font-size: 1.08rem;
}
.pricing-billing-toggle {
  display: inline-flex; gap: .25rem; padding: .3rem;
  border: 1px solid var(--border); border-radius: 999px; background: #fff;
  box-shadow: 0 6px 20px rgba(29, 29, 43, .07);
}
.pricing-billing-toggle button {
  border: 0; border-radius: 999px; padding: .65rem 1rem; cursor: pointer;
  background: transparent; color: var(--muted); font: inherit; font-weight: 650;
}
.pricing-billing-toggle button span {
  margin-left: .35rem; padding: .18rem .45rem; border-radius: 999px;
  color: var(--green); background: var(--green-bg); font-size: .72rem;
}
.pricing-billing-toggle button.active { color: #fff; background: #171729; }
.pricing-billing-toggle button.active span { color: #b7f1d1; background: rgba(255,255,255,.12); }
.pricing-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.35rem; align-items: start; max-width: 940px; margin: 0 auto;
}
.pricing-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1280px; }
.pricing-card {
  position: relative; padding: 2rem; border: 1px solid var(--border);
  border-radius: 22px; background: #fff; box-shadow: 0 12px 35px rgba(29,29,43,.06);
}
.pricing-card-featured {
  border: 2px solid var(--primary);
  box-shadow: 0 18px 50px rgba(91,104,227,.16);
}
.pricing-card-shaker {
  border-color: #d7b758;
  background: linear-gradient(180deg, #fffdf6, #fff 20%);
  box-shadow: 0 16px 45px rgba(115, 88, 16, .1);
}
.pricing-shaker-label { background: linear-gradient(135deg, #8b6810, #d1a62f); }
.pricing-popular {
  position: absolute; top: 0; right: 1.5rem; transform: translateY(-50%);
  padding: .38rem .8rem; border-radius: 999px;
  color: #fff; background: linear-gradient(135deg, var(--primary), #8f5de7);
  font-size: .76rem; font-weight: 750; letter-spacing: .03em;
}
.pricing-card-head h2 { margin: .2rem 0 0; font-size: 1.8rem; }
.pricing-card-head > p:last-child { min-height: 3rem; color: var(--muted); }
.pricing-price {
  display: flex; align-items: baseline; gap: .45rem; margin: .8rem 0 .35rem;
}
.pricing-price strong { font-size: 2.6rem; line-height: 1; letter-spacing: -.05em; }
.pricing-price span { color: var(--muted); font-size: .86rem; }
.pricing-fee-pill {
  display: inline-flex; padding: .45rem .7rem; margin-bottom: 1rem;
  border-radius: 999px; color: #303d9f; background: #eef0ff; font-weight: 700; font-size: .84rem;
}
.pricing-checkout-form { margin: 1.1rem 0 0; }
.pricing-fee-select select { font-weight: 700; background: #fafaff; }
.pricing-config-note { display: block; margin-top: .5rem; color: var(--muted); font-size: .78rem; text-align: center; }
.premium-locked { gap: .4rem; }
.premium-locked > span:last-child {
  padding: .12rem .4rem; border-radius: 999px;
  color: #4a3590; background: #eee8ff; font-size: .68rem; font-weight: 800; text-transform: uppercase;
}
.ai-panel-locked { min-width: 260px; padding: 1rem; text-align: left; }
.ai-panel-locked p { margin: .35rem 0 .8rem; color: var(--muted); font-size: .82rem; }
.pricing-features { list-style: none; margin: 1.35rem 0 0; padding: 0; }
.pricing-features li {
  display: flex; align-items: flex-start; gap: .65rem; padding: .48rem 0;
  border-bottom: 1px solid #f0f0f5; font-size: .91rem;
}
.pricing-features li > span {
  display: grid; flex: 0 0 20px; place-items: center; width: 20px; height: 20px;
  margin-top: .05rem; border-radius: 50%; color: var(--green); background: var(--green-bg);
  font-size: .72rem; font-weight: 800;
}
.pricing-features .pricing-feature-soon { color: var(--muted); }
.pricing-features .pricing-feature-soon > span { color: #75520d; background: #fff2c9; }
.pricing-footnote {
  max-width: 760px; margin: 2.5rem auto 0; padding: 1.25rem; text-align: center;
}
.pricing-footnote h2 { margin-bottom: .3rem; }
.pricing-footnote p { margin: 0; color: var(--muted); }
button[hidden], a[hidden], label[hidden] { display: none !important; }
@media (max-width: 1040px) {
  .pricing-grid-three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-card-shaker { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .pricing-grid { grid-template-columns: 1fr; }
  .pricing-card-shaker { grid-column: auto; }
  .pricing-card { padding: 1.5rem; }
  .pricing-billing-toggle button span { display: none; }
}

/* ===== ScaleEdges billing ===== */
.billing-page-head .hint { margin: .25rem 0 0; }
.billing-overview-grid {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 1.25rem; align-items: start;
}
.billing-plan-title, .settings-billing-head, .billing-section-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
}
.billing-plan-title h2, .settings-billing-head h2 { margin: .15rem 0 0; font-size: 1.8rem; }
.billing-status, .avatar-plan-badge {
  display: inline-flex; align-items: center; width: fit-content;
  padding: .25rem .55rem; border-radius: 999px;
  color: #475569; background: #eef1f5; font-size: .72rem; font-weight: 750;
  text-transform: capitalize;
}
.billing-status.is-active, .avatar-plan-badge.is-premium {
  color: #146c43; background: #e2f6eb;
}
.avatar-dropdown-head .avatar-plan-badge { margin-top: .4rem; }
.billing-plan-metrics {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin: 1.35rem 0;
}
.billing-plan-metrics > div {
  display: flex; flex-direction: column; padding: 1rem;
  border: 1px solid var(--border); border-radius: 13px; background: #fafaff;
}
.billing-plan-metrics strong { font-size: 1.35rem; }
.billing-plan-metrics span { color: var(--muted); font-size: .78rem; }
.billing-actions, .settings-billing-actions {
  display: flex; align-items: center; gap: .65rem; flex-wrap: wrap;
}
.billing-actions form { margin: 0; }
.billing-entitlements h2, .billing-history h2 { margin-top: 0; }
.billing-entitlements .pricing-features { margin-top: .5rem; }
.billing-entitlements .pricing-features li { font-size: .84rem; padding: .35rem 0; }
.billing-ai-usage { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.billing-ai-usage > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .84rem; }
.billing-ai-usage > div span, .billing-ai-usage small { color: var(--muted); }
.billing-ai-usage progress { width: 100%; height: 8px; margin: .55rem 0 .25rem; accent-color: var(--primary); }
.billing-ai-usage small { display: block; font-size: .72rem; }
.billing-history { margin-top: .25rem; }
.billing-section-head p { margin: -.25rem 0 .75rem; }
.billing-table-wrap { overflow-x: auto; }
.billing-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.billing-table th, .billing-table td {
  padding: .75rem; border-bottom: 1px solid var(--border); text-align: left;
}
.billing-table th { color: var(--muted); font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.billing-table .num { text-align: right; }
.billing-payment-status {
  display: inline-flex; padding: .2rem .5rem; border-radius: 999px;
  color: #475569; background: #eef1f5; font-size: .75rem; font-weight: 700; text-transform: capitalize;
}
.billing-payment-status.status-paid { color: var(--green); background: var(--green-bg); }
.billing-payment-status.status-failed,
.billing-payment-status.status-expired,
.billing-payment-status.status-canceled { color: var(--red); background: var(--red-bg); }
.billing-test-state { display: block; margin-top: .25rem; font-size: .74rem; }
.billing-empty { padding: 1.5rem; border: 1px dashed var(--border); border-radius: 12px; color: var(--muted); text-align: center; }
.billing-help {
  display: flex; justify-content: center; gap: .5rem; flex-wrap: wrap;
  margin: 1.5rem 0; color: var(--muted); font-size: .9rem;
}
.billing-cancel-shell { max-width: 620px; margin: 1.5rem auto; }
.billing-cancel-card { margin-top: 1rem; padding: 2rem; }
.billing-cancel-icon {
  display: grid; place-items: center; width: 48px; height: 48px;
  margin-bottom: 1rem; border-radius: 14px; color: var(--red); background: var(--red-bg);
  font-size: 1.5rem;
}
.billing-cancel-card h1 { margin-bottom: .75rem; }
.billing-cancel-losses {
  margin: 1.25rem 0; padding: 1rem; border-radius: 12px; background: #faf8fb;
}
.billing-cancel-losses ul { margin-bottom: 0; padding-left: 1.25rem; }
.billing-cancel-form { padding-top: 1rem; border-top: 1px solid var(--border); }
@media (max-width: 780px) {
  .billing-overview-grid { grid-template-columns: 1fr; }
}

.pb-scaleedges-branding {
  margin-top: 1.25rem; padding-top: .85rem;
  border-top: 1px solid var(--theme-border, var(--border)); text-align: center;
}
.pb-scaleedges-branding a {
  color: var(--theme-muted, var(--muted)); font-size: .76rem; font-weight: 700; letter-spacing: .02em;
}

.product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.25rem; }
.product-card {
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);
  overflow: hidden; color: var(--text); display: flex; flex-direction: column;
  transition: box-shadow .15s, transform .15s;
}
.product-card:hover { text-decoration: none; box-shadow: 0 6px 20px rgba(30,30,60,.1); transform: translateY(-2px); }
.product-cover { aspect-ratio: 16/10; background: #ecebf5; overflow: hidden; }
.product-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cover-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; }
.product-card-body { padding: .9rem 1rem 1.1rem; }
.product-card-body :is(h1, h2, h3, h4) { margin: 0 0 .2rem; font-size: 1.05rem; }
.product-author { color: var(--muted); font-size: .85rem; margin: 0 0 .6rem; }
.price-tag { font-weight: 700; color: var(--theme-price, var(--primary)); }
.price-tag.free { color: var(--green); }

/* ===== Dashboard ===== */
.stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; margin-bottom: 1.75rem; }
.stat-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.25rem; }

/* Parcours de démarrage du dashboard */
.getting-started {
  position: relative; overflow: hidden; margin: 0 0 1.5rem;
  border: 1px solid #dfe2ff; border-radius: 20px;
  background:
    radial-gradient(circle at 92% -20%, rgba(143, 93, 231, .14), transparent 36%),
    linear-gradient(145deg, #fff 0%, #fafaff 58%, #f7f8ff 100%);
  box-shadow: 0 14px 42px rgba(52, 58, 133, .08);
  transition: box-shadow .3s ease, border-color .3s ease, opacity .25s ease, transform .25s ease;
}
.getting-started:hover {
  border-color: #cfd3ff; box-shadow: 0 18px 50px rgba(52, 58, 133, .11);
}
.getting-started.is-dismissing { opacity: 0; transform: translateY(-10px) scale(.99); }
.getting-started-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem;
  padding: 1rem 1.45rem .5rem;
}
.getting-started-heading { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.getting-started-hero-icon {
  display: grid; flex: 0 0 48px; place-items: center; width: 48px; height: 48px;
  border-radius: 15px; color: #fff;
  background: linear-gradient(135deg, var(--primary), #8f5de7);
  box-shadow: 0 8px 18px rgba(91, 104, 227, .23);
}
.getting-started-hero-icon .icon { width: 23px; height: 23px; }
.getting-started-kicker {
  display: block; margin-bottom: .1rem; color: var(--primary);
  font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.getting-started-heading h2 {
  margin: 0; font-size: clamp(1.16rem, 2vw, 1.38rem); letter-spacing: -.02em;
}
.getting-started-heading p { margin: .15rem 0 0; color: var(--muted); font-size: .86rem; }
.getting-started-tools { display: flex; align-items: center; gap: .35rem; flex: none; }
.getting-started-tool {
  display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .6rem;
  border: 0; border-radius: 9px; color: #68697c; background: rgba(238, 239, 249, .78);
  font: inherit; font-size: .76rem; font-weight: 650; cursor: pointer;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}
.getting-started-tool:hover { color: var(--primary); background: #eceeff; transform: translateY(-1px); }
.getting-started-tool:focus-visible,
.getting-started-step:focus-visible {
  outline: 3px solid rgba(91, 104, 227, .28); outline-offset: 2px;
}
.getting-started-tool .icon { width: 15px; height: 15px; }
.getting-started-tool[data-getting-started-toggle] .icon { transition: transform .22s ease; }
.getting-started.is-compact .getting-started-tool[data-getting-started-toggle] .icon {
  transform: rotate(180deg);
}
.getting-started-remove:hover { color: var(--red); background: var(--red-bg); }

.getting-started-progress {
  display: grid; grid-template-columns: minmax(190px, auto) minmax(180px, 1fr);
  align-items: center; gap: 1.1rem; padding: 0 1.45rem 1rem;
}
.getting-started-progress-copy { display: flex; align-items: baseline; gap: .55rem; white-space: nowrap; }
.getting-started-progress-copy strong { font-size: .79rem; }
.getting-started-progress-copy span { color: var(--muted); font-size: .75rem; }
.getting-started-progress-track {
  overflow: hidden; height: 7px; border-radius: 999px; background: #e8e9f3;
}
.getting-started-progress-track > span {
  display: block; height: 100%; border-radius: inherit;
  background: #1d1d20;
  box-shadow: 0 0 10px rgba(29, 29, 32, .18);
  transition: width .45s cubic-bezier(.2, .8, .2, 1);
}

.getting-started-body {
  display: grid; overflow: hidden; grid-template-rows: 1fr; opacity: 1;
  transition: grid-template-rows .42s cubic-bezier(.2, .8, .2, 1), opacity .22s ease;
}
.getting-started-body-inner { min-height: 0; padding: .3rem 1.45rem 1rem; overflow: hidden; }
.getting-started.is-compact .getting-started-body { grid-template-rows: 0fr; opacity: 0; }
.getting-started.is-compact .getting-started-head { padding-bottom: .75rem; }
.getting-started.is-compact .getting-started-heading p { display: none; }
.getting-started.is-compact .getting-started-progress { padding-bottom: 1rem; }

.getting-started-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem;
}
.getting-started-step {
  position: relative; display: flex; min-width: 0; min-height: 140px;
  flex-direction: column; align-items: flex-start; padding: .7rem;
  overflow: hidden; border: 1px solid #e5e6f1; border-radius: 14px;
  color: var(--text); background: rgba(255, 255, 255, .82);
  box-shadow: 0 3px 10px rgba(32, 35, 84, .025);
  text-decoration: none;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s cubic-bezier(.2, .8, .2, 1), background .22s ease;
}
.getting-started-step::before {
  content: ""; position: absolute; inset: 0; opacity: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.85) 48%, transparent 66%);
  transform: translateX(-100%); transition: transform .55s ease, opacity .2s ease;
}
a.getting-started-step:hover {
  border-color: #c9ceff; color: var(--text); background: #fff;
  box-shadow: 0 12px 28px rgba(51, 57, 136, .12);
  text-decoration: none; transform: translateY(-4px);
}
a.getting-started-step:hover::before { opacity: 1; transform: translateX(100%); }
a.getting-started-step:hover .getting-started-step-icon { transform: scale(1.08) rotate(-3deg); }
.getting-started-step-static { cursor: default; }
.getting-started-step-static:hover {
  border-color: #d9ebe2; box-shadow: 0 8px 20px rgba(28, 107, 68, .07);
  transform: translateY(-2px);
}
.getting-started-step-check {
  position: absolute; top: .72rem; right: .72rem; display: grid; place-items: center;
  width: 24px; height: 24px; border: 1px solid #d8d9e5; border-radius: 50%;
  color: transparent; background: #fff; transform: scale(.92);
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .25s cubic-bezier(.2, .9, .2, 1.35);
}
.getting-started-step-check .icon { width: 13px; height: 13px; stroke-width: 2.6; }
.getting-started-step-icon {
  display: grid; place-items: center; width: 38px; height: 38px; margin: .12rem 0 .7rem;
  border-radius: 11px; color: #1d1d20; background: #f0f0f3;
  transition: transform .22s cubic-bezier(.2, .8, .2, 1), color .2s ease, background .2s ease;
}
.getting-started-step-icon .icon { width: 19px; height: 19px; }
.getting-started-step-copy { display: flex; min-width: 0; flex-direction: column; }
.getting-started-step-copy strong { font-size: .9rem; line-height: 1.3; }
.getting-started-step-copy > span {
  display: -webkit-box; overflow: hidden; margin-top: .22rem; color: var(--muted);
  font-size: .72rem; line-height: 1.38; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.getting-started-step-cta {
  display: flex; align-items: center; gap: .3rem; margin-top: auto; padding-top: .55rem;
  color: var(--primary); font-size: .68rem; font-weight: 750;
}
.getting-started-step-cta .icon { width: 13px; height: 13px; transition: transform .18s ease; }
a.getting-started-step:hover .getting-started-step-cta .icon { transform: translateX(2px); }
.getting-started-step.is-complete {
  border-color: #dedee4; color: #74747d;
  background: linear-gradient(145deg, rgba(242, 242, 245, .96), rgba(247, 247, 249, .92));
  box-shadow: none; opacity: .62;
}
.getting-started-step.is-complete .getting-started-step-check {
  color: #fff; border-color: #85858e; background: #85858e; transform: scale(1);
}
.getting-started-step.is-complete .getting-started-step-icon { color: #777780; background: #e4e4e8; }
.getting-started-step.is-complete .getting-started-step-cta { color: #777780; }
.getting-started-step.is-complete .getting-started-step-cta .icon-arrow-right { display: none; }
a.getting-started-step.is-complete:hover,
.getting-started-step-static.is-complete:hover {
  border-color: #d5d5db; color: #66666f; background: #f3f3f5;
  box-shadow: none; opacity: .76; transform: none;
}
.getting-started-step.is-finishing { animation: gettingStartedComplete .48s cubic-bezier(.2, .8, .2, 1); }
@keyframes gettingStartedComplete {
  0% { transform: scale(1); }
  45% { transform: translateY(-3px) scale(1.025); }
  100% { transform: scale(1); }
}

.getting-started-modal .modal-box { max-width: 440px; border: 1px solid #e3e3ee; border-radius: 16px; }
.getting-started-modal-icon {
  display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: .85rem;
  border-radius: 12px; color: #9a6511; background: #fff2d6;
}
.getting-started-modal-icon .icon { width: 20px; height: 20px; }
.getting-started-modal-error {
  padding: .65rem .75rem; border-radius: 9px; color: var(--red) !important;
  background: var(--red-bg); font-size: .82rem;
}

@media (max-width: 900px) {
  .getting-started-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .getting-started-head { align-items: center; }
  .getting-started-tools span { display: none; }
  .getting-started-tool { width: 35px; height: 35px; justify-content: center; padding: 0; }
  .getting-started-progress { grid-template-columns: 1fr; gap: .5rem; }
  .getting-started-progress-copy { justify-content: space-between; }
}
@media (max-width: 520px) {
  .getting-started { border-radius: 16px; }
  .getting-started-head { padding: .85rem 1rem .4rem 1.15rem; }
  .getting-started-hero-icon { flex-basis: 40px; width: 40px; height: 40px; border-radius: 12px; }
  .getting-started-heading p { display: none; }
  .getting-started-progress { padding: 0 1rem .9rem 1.15rem; }
  .getting-started-progress-copy span { display: none; }
  .getting-started-body-inner { padding: .3rem 1rem 1rem 1.15rem; }
  .getting-started-grid { grid-template-columns: 1fr; gap: .6rem; }
  .getting-started-step { min-height: 130px; }
  .getting-started-modal .modal-actions { flex-direction: column-reverse; }
  .getting-started-modal .modal-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .getting-started, .getting-started-body, .getting-started-progress-track > span,
  .getting-started-tool, .getting-started-step, .getting-started-step::before,
  .getting-started-step-icon, .getting-started-step-check, .getting-started-step-cta .icon {
    animation: none; transition: none;
  }
}

.download-limit-default {
  max-width: 320px;
}

.download-limit-apply-options {
  border: 0;
  margin: 1.25rem 0 0;
  padding: 0;
}

.download-limit-apply-options legend {
  font-size: .9rem;
  font-weight: 650;
  margin-bottom: .55rem;
}

.download-limit-file-picker {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-top: 1rem;
  padding: .85rem;
}

.download-limit-file-picker-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: .55rem;
}

.download-limit-file-list {
  max-height: 310px;
  overflow: auto;
}

.download-limit-file-option {
  border-top: 1px solid var(--border);
  margin: 0;
  padding: .65rem .15rem;
}

.download-limit-file-option small {
  color: var(--muted);
  display: block;
  font-size: .8rem;
  margin-top: .15rem;
}

.download-limit-all-warning {
  margin-top: 1rem;
}
.stat-value { display: block; font-size: 1.6rem; font-weight: 700; }
.stat-label { color: var(--muted); font-size: .85rem; }

.table { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.table th, .table td { padding: .7rem .9rem; text-align: left; border-bottom: 1px solid var(--border); font-size: .93rem; vertical-align: middle; }
.table th { background: #fafafe; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); }
.table tr:last-child td { border-bottom: none; }
.table-product { display: flex; align-items: center; gap: .7rem; }
.table-thumb { width: 52px; height: 36px; object-fit: cover; border-radius: 6px; border: 1px solid var(--border); }
.table-thumb.placeholder { display: flex; align-items: center; justify-content: center; background: #ecebf5; font-size: 1rem; }
.actions-col { white-space: nowrap; }
.actions-col .btn { margin-left: .15rem; }

.badge { display: inline-block; padding: .18rem .6rem; border-radius: 99px; font-size: .78rem; font-weight: 600; }
.badge-green { background: var(--green-bg); color: var(--green); }
.badge-gray { background: #ececf4; color: var(--muted); }

.empty-state { text-align: center; padding: 3rem 1rem; color: var(--muted); background: var(--card); border: 1px dashed var(--border); border-radius: var(--radius); }
.empty-state h1, .empty-state h2 { color: var(--text); }
.empty-state .btn { margin-top: .75rem; }

/* ===== Dashboard overview — light bento layout ===== */
.dashboard-main { max-width: 1300px; padding-top: 2rem; }
.dashboard-page { --dashboard-ink: #222332; --dashboard-indigo: #253478; }
.dashboard-page h1,
.dashboard-page h2,
.dashboard-page h3 { color: var(--dashboard-ink); letter-spacing: -.035em; }
.dashboard-welcome-bento {
  position: relative; margin-bottom: 1.1rem; padding: 1rem 0 1.35rem;
  border: 0; background: transparent; box-shadow: none;
}
.dashboard-welcome-copy { position: relative; z-index: 2; }
.dashboard-eyebrow,
.dashboard-card-kicker {
  display: inline-flex; align-items: center; gap: .38rem; color: #5b68e3;
  font-size: .68rem; font-weight: 850; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase;
}
.dashboard-eyebrow .icon { width: 14px; height: 14px; }
.dashboard-welcome-copy h1 {
  margin: 0 0 .45rem; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.08; letter-spacing: -.045em;
}
.dashboard-welcome-copy h1 span { color: #5b68e3; }
.dashboard-welcome-copy > p { max-width: 610px; margin: 0; color: #5c6071; font-size: 1rem; line-height: 1.65; }
.dashboard-welcome-copy > p strong { color: #35384a; }
.dashboard-welcome-actions { display: flex; align-items: center; gap: .7rem; margin-top: 1.35rem; flex-wrap: wrap; }
.dashboard-primary-action,
.dashboard-secondary-action,
.dashboard-ai-action {
  display: inline-flex; align-items: center; justify-content: center; gap: .48rem;
  min-height: 50px; padding: 0 1.3rem; border: 1px solid transparent; border-radius: 12px;
  font-family: inherit; font-size: .9rem; font-weight: 760; line-height: 1; cursor: pointer;
  transition: transform .2s cubic-bezier(.2, .8, .2, 1), box-shadow .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}
.dashboard-primary-action { color: #fff; background: #5b68e3; box-shadow: 0 10px 24px rgba(91, 104, 227, .22); }
.dashboard-primary-action:hover { color: #fff; background: #4a56c2; box-shadow: 0 13px 28px rgba(74, 86, 194, .28); text-decoration: none; transform: translateY(-2px); }
.dashboard-secondary-action { color: #35394e; border-color: rgba(37, 52, 120, .14); background: rgba(255,255,255,.8); }
.dashboard-secondary-action:hover { color: #253478; border-color: rgba(37, 52, 120, .3); background: #fff; text-decoration: none; transform: translateY(-2px); }
.dashboard-primary-action .icon,
.dashboard-secondary-action .icon { width: 16px; height: 16px; }
.dashboard-secondary-action .icon:last-child { width: 12px; height: 12px; opacity: .6; }
.dashboard-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.1rem; }
.dashboard-metric {
  position: relative; display: grid; grid-template-columns: 43px minmax(0, 1fr); align-items: center;
  gap: .75rem; min-height: 132px; padding: 1rem; overflow: hidden;
  border: 1px solid rgba(36,39,59,.08); border-radius: 20px;
  background: #fff; box-shadow: 0 10px 30px rgba(37, 52, 120, .045);
  transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease;
}
.dashboard-metric:hover { border-color: rgba(91,104,227,.17); box-shadow: 0 15px 36px rgba(37,52,120,.08); transform: translateY(-3px); }
.dashboard-metric::after { content: ""; position: absolute; right: -22px; bottom: -32px; width: 88px; height: 88px; border-radius: 50%; opacity: .55; }
.dashboard-metric-icon { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; }
.dashboard-metric-icon .icon { width: 20px; height: 20px; }
.dashboard-metric > div { display: flex; min-width: 0; flex-direction: column; }
.dashboard-metric > div span { color: #737687; font-size: .73rem; font-weight: 650; }
.dashboard-metric > div strong { overflow: hidden; font-size: clamp(1.55rem, 2.5vw, 2.05rem); line-height: 1.1; letter-spacing: -.05em; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-metric > small { grid-column: 1 / -1; color: #858898; font-size: .68rem; line-height: 1.35; }
.dashboard-metric-indigo { background: linear-gradient(145deg, #fff, #f4f5ff); }
.dashboard-metric-indigo .dashboard-metric-icon { color: #5360d6; background: #e9ebff; }
.dashboard-metric-indigo::after { background: #e5e8ff; }
.dashboard-metric-green { background: linear-gradient(145deg, #fff, #f3fbf7); }
.dashboard-metric-green .dashboard-metric-icon { color: #238158; background: #e2f5eb; }
.dashboard-metric-green::after { background: #def4e8; }
.dashboard-metric-purple { background: linear-gradient(145deg, #fff, #f8f3ff); }
.dashboard-metric-purple .dashboard-metric-icon { color: #7950b7; background: #eee5fb; }
.dashboard-metric-purple::after { background: #eee3fb; }
.dashboard-metric-amber { background: linear-gradient(145deg, #fff, #fff8ec); }
.dashboard-metric-amber .dashboard-metric-icon { color: #a36c16; background: #fff0d2; }
.dashboard-metric-amber::after { background: #ffedc9; }
.dashboard-metric-rose { background: linear-gradient(145deg, #fff, #fff3f7); }
.dashboard-metric-rose .dashboard-metric-icon { color: #ad4f75; background: #f9e4ed; }
.dashboard-metric-rose::after { background: #f8e1eb; }

.dashboard-page .getting-started { margin-bottom: 1.1rem; border-radius: 24px; box-shadow: 0 12px 38px rgba(52,58,133,.065); }
.dashboard-page .getting-started-head { padding-top: 1.2rem; }
.dashboard-page .getting-started-tool[data-getting-started-toggle] { padding-right: .7rem; padding-left: .7rem; }
.dashboard-content-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(300px, .75fr); gap: 1.1rem; align-items: start; }
.dashboard-main-stack { display: grid; align-content: start; gap: 1.1rem; min-width: 0; }
.dashboard-bento-card {
  min-width: 0; border: 1px solid rgba(36,39,59,.09); border-radius: 24px;
  background: #fff; box-shadow: 0 14px 42px rgba(37,52,120,.055);
}
.dashboard-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.35rem 1.4rem 1rem; }
.dashboard-card-head h2 { margin: .22rem 0 .2rem; font-size: 1.35rem; }
.dashboard-card-head p { margin: 0; color: #777a8c; font-size: .76rem; }
.dashboard-card-head-compact { padding-bottom: .75rem; }
.dashboard-card-link {
  display: inline-flex; flex: none; align-items: center; justify-content: center; gap: .38rem;
  min-height: 37px; padding: 0 .7rem; border: 1px solid #e4e5ef; border-radius: 10px;
  color: #4f556e; background: #fafafe; font: inherit; font-size: .72rem; font-weight: 720; cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}
.dashboard-card-link:hover { color: #253478; border-color: #cdd1f2; background: #f1f2ff; text-decoration: none; transform: translateY(-1px); }
.dashboard-card-link .icon { width: 13px; height: 13px; }
.dashboard-card-link b { min-width: 22px; padding: .15rem .35rem; border-radius: 999px; color: #5b68e3; background: #e9ebff; font-size: .62rem; }
.dashboard-card-tools { display: flex; flex: none; align-items: center; gap: .5rem; }
.dashboard-product-search { position: relative; display: flex; align-items: center; flex: 0 1 240px; }
.dashboard-product-search-icon {
  position: absolute; left: .62rem; z-index: 1; display: grid; place-items: center;
  color: #9498ac; pointer-events: none;
}
.dashboard-product-search-icon .icon { width: 15px; height: 15px; }
.dashboard-product-search input {
  width: 100%; min-height: 37px; padding: 0 2rem 0 1.95rem;
  color: #33364a; background: #fafafe; border: 1px solid #e4e5ef; border-radius: 10px;
  font: inherit; font-size: .72rem; font-weight: 650;
  transition: color .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.dashboard-product-search input::placeholder { color: #9498ac; font-weight: 650; }
.dashboard-product-search input:focus {
  outline: none; border-color: #cdd1f2; background: #fff;
  box-shadow: 0 0 0 3px rgba(91, 104, 227, .14);
}
.dashboard-product-search input::-webkit-search-cancel-button { display: none; }
.dashboard-product-search-clear {
  position: absolute; right: .35rem; display: grid; place-items: center;
  width: 24px; height: 24px; padding: 0; color: #9498ac; background: transparent;
  border: 0; border-radius: 50%; font-size: 1.05rem; line-height: 1; cursor: pointer;
}
.dashboard-product-search-clear:hover { color: #5b68e3; background: #f1f2ff; }
.dashboard-product-sort {
  flex: none; min-height: 37px; padding: 0 1.9rem 0 .7rem;
  color: #4f556e; background-color: #fafafe; border: 1px solid #e4e5ef; border-radius: 10px;
  font: inherit; font-size: .72rem; font-weight: 720; cursor: pointer;
}
.dashboard-product-sort:focus { outline: none; border-color: #cdd1f2; box-shadow: 0 0 0 3px rgba(91, 104, 227, .14); }
.dashboard-all-products { display: grid; gap: .9rem; }
.dashboard-all-products .back-link { justify-self: start; }
.dashboard-all-products .dashboard-card-head h1 { display: flex; align-items: center; gap: .55rem; margin: .22rem 0 .2rem; font-size: 1.6rem; }
.dashboard-all-products-count { padding: .18rem .5rem; border-radius: 999px; color: #5b68e3; background: #e9ebff; font-size: .78rem; font-weight: 720; letter-spacing: 0; }
.dashboard-all-products .dashboard-card-tools { margin: 0; }
.dashboard-product-no-results { margin: 0; padding: 2.1rem 1.15rem; color: #83869a; font-size: .78rem; text-align: center; }
.dashboard-product-no-results strong { color: #4f5368; }
.dashboard-pagination[hidden] { display: none; }
.dashboard-product-list { border-top: 1px solid #eeeef4; }
.dashboard-product-row {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center;
  gap: 1.2rem; min-height: 92px; padding: .8rem 1rem .8rem 1.15rem; border-bottom: 1px solid #f0f0f5;
  transition: background .18s ease, opacity .2s ease, transform .2s ease;
}
.dashboard-product-row:last-child { border-bottom: 0; border-radius: 0 0 24px 24px; }
.dashboard-product-row:hover { background: #fbfbfe; }
.dashboard-product-row[hidden] { display: none; }
.dashboard-product-main { display: flex; min-width: 0; align-items: center; gap: .85rem; }
.dashboard-product-thumb {
  display: block; flex: 0 0 66px; width: 66px; height: 52px; object-fit: cover;
  border: 1px solid #e4e5ed; border-radius: 12px; background: #f0f0f7;
}
.dashboard-product-thumb-placeholder { display: grid; place-items: center; color: #737993; background: linear-gradient(145deg, #eef0ff, #f7f3ff); }
.dashboard-product-thumb-placeholder .icon { width: 21px; height: 21px; }
.dashboard-product-copy { display: flex; min-width: 0; flex-direction: column; }
.dashboard-product-copy > a { overflow: hidden; color: #292b3b; font-size: .86rem; font-weight: 760; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-product-copy > a:hover { color: #5b68e3; text-decoration: none; }
.dashboard-product-copy > span { margin-top: .08rem; color: #747789; font-size: .7rem; }
.dashboard-product-badges { display: flex; align-items: center; gap: .28rem; margin-top: .38rem; overflow: hidden; flex-wrap: wrap; }
.dashboard-product-badges .badge { display: inline-flex; align-items: center; gap: .22rem; padding: .12rem .42rem; font-size: .58rem; line-height: 1.4; }
.dashboard-product-badges .icon { width: 10px; height: 10px; }
.dashboard-product-kpis { display: grid; grid-template-columns: repeat(2, minmax(68px, auto)); gap: .55rem; }
.dashboard-product-kpis > span { display: flex; min-width: 68px; flex-direction: column; padding: .45rem .6rem; border-radius: 10px; background: #f8f8fb; }
.dashboard-product-kpis small { color: #888b9a; font-size: .6rem; }
.dashboard-product-kpis strong { margin-top: .05rem; color: #393c4e; font-size: .76rem; white-space: nowrap; }
.dashboard-product-actions { display: flex; align-items: center; gap: .35rem; }
.dashboard-product-edit,
.dashboard-product-more > summary {
  display: inline-flex; align-items: center; justify-content: center; gap: .3rem; min-height: 36px;
  padding: 0 .65rem; border: 1px solid #e2e3ec; border-radius: 10px; color: #53576a;
  background: #fff; font-size: .7rem; font-weight: 700; cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.dashboard-product-edit:hover,
.dashboard-product-more > summary:hover,
.dashboard-product-more[open] > summary { color: #253478; border-color: #cbd0f2; background: #f2f3ff; text-decoration: none; }
.dashboard-product-edit .icon { width: 13px; height: 13px; }
.dashboard-product-more { position: relative; }
.dashboard-product-more > summary { width: 36px; padding: 0; list-style: none; letter-spacing: .04em; }
.dashboard-product-more > summary::-webkit-details-marker { display: none; }
.dashboard-product-menu {
  position: absolute; top: calc(100% + .45rem); right: 0; z-index: 30; width: 180px; padding: .35rem;
  border: 1px solid #e1e2eb; border-radius: 12px; background: #fff;
  box-shadow: 0 18px 42px rgba(29,31,50,.16); transform-origin: top right;
}
.dashboard-product-more[open] .dashboard-product-menu {
  animation: dashboard-product-menu-open .2s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes dashboard-product-menu-open {
  from { opacity: 0; transform: translateY(-6px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.dashboard-product-menu form { margin: 0; }
.dashboard-product-menu a,
.dashboard-product-menu button {
  display: flex; align-items: center; gap: .48rem; width: 100%; min-height: 36px; padding: 0 .55rem;
  border: 0; border-radius: 8px; color: #494c5e; background: transparent;
  font: inherit; font-size: .7rem; font-weight: 650; text-align: left; cursor: pointer;
}
.dashboard-product-menu a:hover,
.dashboard-product-menu button:hover { color: #253478; background: #f3f4ff; text-decoration: none; }
.dashboard-product-menu button.is-danger { color: var(--red); }
.dashboard-product-menu button.is-danger:hover { background: var(--red-bg); }
.dashboard-product-menu .icon { width: 14px; height: 14px; }
.dashboard-product-empty {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem;
  min-height: 175px; margin: 0 1.15rem 1.15rem; padding: 1.25rem;
  border: 1px dashed #d9dbea; border-radius: 17px; background: linear-gradient(145deg, #fafaff, #f8f9ff);
}
.dashboard-product-empty > span { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px; color: #5b68e3; background: #e9ebff; }
.dashboard-product-empty > span .icon { width: 23px; height: 23px; }
.dashboard-product-empty h3 { margin: 0 0 .22rem; font-size: 1rem; }
.dashboard-product-empty p { max-width: 430px; margin: 0; color: #76798a; font-size: .75rem; line-height: 1.45; }

.dashboard-pagination {
  display: flex; align-items: center; justify-content: space-between; gap: .8rem; flex-wrap: wrap;
  padding: .8rem 1.15rem .9rem; border-top: 1px solid #f0f0f5;
}
.dashboard-pagination-summary { color: #83869a; font-size: .68rem; }
.dashboard-pagination-summary strong { color: #4f5368; font-weight: 700; }
.dashboard-pagination-pages { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.dashboard-pagination-page,
.dashboard-pagination-arrow {
  display: inline-flex; align-items: center; justify-content: center; min-width: 31px; height: 31px;
  padding: 0 .45rem; border: 1px solid #e4e5ef; border-radius: 9px; color: #55596e;
  background: #fff; font: inherit; font-size: .7rem; font-weight: 700; cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.dashboard-pagination-page:hover,
.dashboard-pagination-arrow:hover:not(:disabled) { color: #253478; border-color: #cdd1f2; background: #f1f2ff; }
.dashboard-pagination-page.is-current { color: #fff; border-color: #5b68e3; background: #5b68e3; }
.dashboard-pagination-arrow:disabled { opacity: .42; cursor: default; }
.dashboard-pagination-arrow .icon { width: 13px; height: 13px; }
.dashboard-pagination-ellipsis { padding: 0 .1rem; color: #a2a5b6; font-size: .7rem; }
.dashboard-pagination-page[hidden], .dashboard-pagination-ellipsis[hidden] { display: none; }

.dashboard-blog-nudge {
  display: flex; align-items: flex-start; gap: .55rem; margin: 0 1.15rem 1rem; padding: .7rem .85rem;
  border: 1px dashed #dfe0e9; border-radius: 13px; color: #83869a; background: #fafafc;
  font-size: .72rem; line-height: 1.5;
}
.dashboard-blog-nudge-icon { display: grid; flex: none; place-items: center; width: 22px; height: 22px; border-radius: 7px; color: #8a8da0; background: #eeeef3; }
.dashboard-blog-nudge-icon .icon { width: 13px; height: 13px; }
.dashboard-blog-nudge-link { color: #6f7285; font-weight: 700; white-space: nowrap; text-decoration: underline; text-underline-offset: 2px; }
.dashboard-blog-nudge-link:hover { color: #4a4d61; }
.dashboard-blog-list { border-top: 1px solid #eeeef4; }
.dashboard-blog-row {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .75rem 1.15rem; border-bottom: 1px solid #f0f0f5; transition: background .18s ease;
}
.dashboard-blog-row:last-child { border-bottom: 0; border-radius: 0 0 24px 24px; }
.dashboard-blog-row:hover { background: #fbfbfe; }
.dashboard-blog-copy { display: flex; min-width: 0; flex-direction: column; }
.dashboard-blog-copy > a { overflow: hidden; color: #292b3b; font-size: .82rem; font-weight: 740; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-blog-copy > a:hover { color: #5b68e3; text-decoration: none; }
.dashboard-blog-copy > span { margin-top: .12rem; color: #83869a; font-size: .67rem; }
.dashboard-blog-meta { display: flex; flex: none; align-items: center; gap: .4rem; }
.dashboard-blog-meta .badge { font-size: .6rem; }
.dashboard-blog-view { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #e4e5ef; border-radius: 9px; color: #6c7085; background: #fafafe; }
.dashboard-blog-view:hover { color: #253478; border-color: #cdd1f2; background: #f1f2ff; text-decoration: none; }
.dashboard-blog-view .icon { width: 13px; height: 13px; }
.dashboard-blog-empty { min-height: 150px; }

.dashboard-side-stack {
  display: grid; grid-template-areas: "quick" "ai" "suggestion";
  gap: 1.1rem; min-width: 0;
}
.dashboard-quick-card { grid-area: quick; padding-bottom: 1rem; }
.dashboard-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding: 0 1rem; }
.dashboard-quick-grid > a {
  display: flex; min-width: 0; min-height: 112px; flex-direction: column; align-items: flex-start;
  padding: .75rem; border: 1px solid #ebebf2; border-radius: 15px; color: #343747; background: #fafafe;
  transition: transform .2s cubic-bezier(.2,.8,.2,1), color .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.dashboard-quick-grid > a:hover { color: #253478; border-color: #d5d8f5; background: #f4f5ff; box-shadow: 0 9px 22px rgba(37,52,120,.07); text-decoration: none; transform: translateY(-2px); }
.dashboard-quick-grid > a > span { display: grid; place-items: center; width: 31px; height: 31px; margin-bottom: auto; border-radius: 9px; color: #5b68e3; background: #e9ebff; }
.dashboard-quick-grid > a:nth-child(2) > span { color: #25805a; background: #e4f5ec; }
.dashboard-quick-grid > a:nth-child(3) > span { color: #a36c16; background: #fff0d2; }
.dashboard-quick-grid > a:nth-child(4) > span { color: #7950b7; background: #eee5fb; }
.dashboard-quick-grid .icon { width: 15px; height: 15px; }
.dashboard-quick-grid strong { margin-top: .55rem; font-size: .72rem; }
.dashboard-quick-grid small { overflow: hidden; width: 100%; margin-top: .08rem; color: #858898; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-order-insight { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .8rem 1rem 0; padding: .7rem .8rem; border-radius: 12px; color: #727587; background: #f5f5f9; font-size: .66rem; }
.dashboard-order-insight strong { color: #343746; font-size: .82rem; }
.dashboard-ai-card {
  grid-area: ai; position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem;
  padding: 1.15rem; overflow: hidden;
  background:
    radial-gradient(circle at 105% -10%, rgba(170,124,234,.22), transparent 37%),
    linear-gradient(145deg, #f8f5ff, #f2f4ff);
}
.dashboard-ai-card::after { content: ""; position: absolute; right: -35px; bottom: -60px; width: 135px; height: 135px; border: 1px solid rgba(111,88,192,.12); border-radius: 50%; }
.dashboard-ai-mark { position: relative; z-index: 1; display: grid; place-items: center; width: 45px; height: 45px; border-radius: 14px; color: #fff; background: linear-gradient(145deg, #5b68e3, #8a5dd7); box-shadow: 0 10px 22px rgba(91,104,227,.23); }
.dashboard-ai-mark .icon { width: 20px; height: 20px; }
.dashboard-ai-copy { position: relative; z-index: 1; }
.dashboard-ai-copy h2 { margin: .2rem 0 .3rem; font-size: 1.1rem; }
.dashboard-ai-copy p { margin: 0; color: #6f7285; font-size: .7rem; line-height: 1.45; }
.dashboard-ai-action { position: relative; z-index: 1; grid-column: 1 / -1; justify-content: space-between; width: 100%; color: #fff; border: 0; background: #5b68e3; box-shadow: 0 10px 24px rgba(91, 104, 227, .2); }
.dashboard-ai-action:hover { color: #fff; background: #4a56c2; box-shadow: 0 13px 28px rgba(74, 86, 194, .26); text-decoration: none; transform: translateY(-2px); }
.dashboard-ai-action .icon { width: 14px; height: 14px; }
.dashboard-ai-card > small { position: relative; z-index: 1; grid-column: 1 / -1; color: #7a7689; font-size: .62rem; text-align: center; }

.dashboard-suggestion-card { grid-area: suggestion; padding: 1.1rem; overflow: hidden; }
.dashboard-suggestion-head { display: flex; align-items: flex-start; gap: .72rem; }
.dashboard-suggestion-mark {
  display: grid; flex: 0 0 39px; place-items: center; width: 39px; height: 39px;
  border-radius: 12px; color: #8a651b; background: #fff2cf;
}
.dashboard-suggestion-mark .icon { width: 18px; height: 18px; }
.dashboard-suggestion-head h2 { margin: .1rem 0 .24rem; font-size: 1rem; line-height: 1.25; }
.dashboard-suggestion-head p { margin: 0; color: #777a8c; font-size: .68rem; line-height: 1.45; }
.dashboard-suggestion-frame-wrap { position: relative; min-height: 285px; margin-top: .8rem; }
.dashboard-suggestion-frame-wrap::before {
  content: ""; position: absolute; inset: 0; display: grid; place-items: center;
  color: #8a8c99; font-size: .65rem; pointer-events: none;
}
.dashboard-suggestion-frame { position: relative; z-index: 1; display: block; width: 100%; min-height: 285px; border: 0; background: transparent; }
.dashboard-suggestion-success { align-items: center; gap: .7rem; min-height: 126px; margin-top: .9rem; padding: .85rem; border-radius: 14px; background: #eef9f3; }
.dashboard-suggestion-success:not([hidden]) { display: flex; }
.dashboard-suggestion-success > span { display: grid; flex: 0 0 37px; place-items: center; width: 37px; height: 37px; border-radius: 50%; color: #27815b; background: #d9f1e5; }
.dashboard-suggestion-success .icon { width: 18px; height: 18px; }
.dashboard-suggestion-success div { display: flex; min-width: 0; flex-direction: column; }
.dashboard-suggestion-success strong { color: #285d48; font-size: .74rem; }
.dashboard-suggestion-success small { margin-top: .14rem; color: #54806d; font-size: .62rem; }
.dashboard-suggestion-unavailable { display: flex; align-items: center; gap: .6rem; min-height: 90px; margin-top: .85rem; padding: .8rem; border: 1px dashed #dcdde7; border-radius: 13px; color: #858796; background: #fafafe; }
.dashboard-suggestion-unavailable > span { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; color: #777b90; background: #eeeef4; }
.dashboard-suggestion-unavailable .icon { width: 15px; height: 15px; }
.dashboard-suggestion-unavailable p { margin: 0; font-size: .67rem; }

@media (max-width: 1050px) {
  .dashboard-content-grid { grid-template-columns: 1fr; }
  .dashboard-side-stack {
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    grid-template-areas: "quick ai" "quick suggestion";
    align-items: start;
  }
}
@media (max-width: 900px) {
  .dashboard-main { padding-top: 1.35rem; }
  .dashboard-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .dashboard-side-stack { grid-template-columns: 1fr; grid-template-areas: "quick" "ai" "suggestion"; }
  .dashboard-product-row { grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; }
  .dashboard-product-kpis { grid-column: 1 / -1; grid-row: 2; }
  .dashboard-product-kpis > span { flex-direction: row; align-items: center; justify-content: space-between; }
  .dashboard-product-actions { grid-column: 2; grid-row: 1; }
  .dashboard-product-empty { grid-template-columns: auto minmax(0, 1fr); }
  .dashboard-product-empty .dashboard-primary-action { grid-column: 1 / -1; }
  .dashboard-products-panel .dashboard-card-head { flex-wrap: wrap; }
  .dashboard-card-tools { flex: 1 1 100%; }
  .dashboard-product-search { flex: 1 1 auto; }
  .dashboard-all-products .dashboard-card-tools { flex-wrap: wrap; }
}
@media (max-width: 520px) {
  .dashboard-main { padding: 1rem .75rem 2.5rem; }
  .dashboard-welcome-bento { margin-bottom: .8rem; padding: .65rem 0 1rem; }
  .dashboard-welcome-copy h1 { font-size: 1.7rem; }
  .dashboard-welcome-copy > p { font-size: .84rem; }
  .dashboard-welcome-actions { align-items: stretch; flex-direction: column; }
  .dashboard-primary-action, .dashboard-secondary-action { width: 100%; }
  .dashboard-metric-grid { gap: .7rem; margin-bottom: .8rem; }
  .dashboard-metric { grid-template-columns: 36px minmax(0, 1fr); min-height: 110px; padding: .75rem; border-radius: 16px; }
  .dashboard-metric-icon { width: 36px; height: 36px; border-radius: 11px; }
  .dashboard-metric-icon .icon { width: 17px; height: 17px; }
  .dashboard-metric > div strong { font-size: 1.4rem; }
  .dashboard-metric > small { display: none; }
  .dashboard-bento-card { border-radius: 19px; }
  .dashboard-card-head { align-items: center; padding: 1rem .9rem .8rem; }
  .dashboard-card-head p { display: none; }
  .dashboard-pagination { justify-content: center; padding: .75rem .65rem .8rem; }
  .dashboard-pagination-summary { width: 100%; text-align: center; }
  .dashboard-product-row { min-height: 86px; padding: .7rem .65rem; }
  .dashboard-product-thumb { flex-basis: 52px; width: 52px; height: 48px; border-radius: 10px; }
  .dashboard-product-edit { width: 36px; padding: 0; }
  .dashboard-product-edit span { display: none; }
  .dashboard-product-kpis { gap: .35rem; }
  .dashboard-product-badges .badge:nth-child(n+3) { display: none; }
  .dashboard-quick-grid { padding: 0 .75rem; }
  .dashboard-order-insight { margin-right: .75rem; margin-left: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-primary-action, .dashboard-secondary-action, .dashboard-ai-action,
  .dashboard-metric, .dashboard-card-link, .dashboard-product-row, .dashboard-pagination-page,
  .dashboard-product-search input,
  .dashboard-pagination-arrow, .dashboard-blog-row,
  .dashboard-product-edit, .dashboard-product-more > summary, .dashboard-quick-grid > a {
    transition: none;
  }
  .dashboard-product-more[open] .dashboard-product-menu { animation: none; }
}

/* ===== Product form ===== */
.form-layout { display: grid; grid-template-columns: 1fr 320px; gap: 1.25rem; align-items: start; }
@media (max-width: 900px) { .form-layout { grid-template-columns: 1fr; } }
.save-status { padding: .6rem 1rem; border-radius: var(--radius); margin-bottom: 1rem; font-size: .92rem; background: #ececf4; }
.save-status.success { background: var(--green-bg); color: var(--green); }
.save-status.error { background: #fdecea; color: var(--red); }

.editor-holder {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: .5rem 1rem; min-height: 140px; background: var(--card);
}
.editor-holder-lg { min-height: 260px; }
.editor-holder .codex-editor__redactor { padding-bottom: 60px !important; }
.editor-holder .ce-header,
.editor-holder .ce-header :is(h1, h2, h3, h4, h5, h6) { font-weight: normal; }
.editor-holder .ce-header :is(b, strong) { font-weight: 700; }
.editor-holder .ce-editorjsColumns_col {
  border: 1px solid #000 !important;
  border-radius: 8px;
}
.advanced-options-container { grid-column: 1 / -1; }
.advanced-options-toggle { margin-bottom: .8rem; }

/* Versions de produit */
.product-version-selector {
  border: 0;
  margin: 0 0 1rem;
  padding: 0;
}

.product-version-selector legend {
  color: var(--theme-text, var(--text));
  font-size: .92rem;
  font-weight: 750;
  margin-bottom: .65rem;
}

.product-version-options {
  display: grid;
  gap: .55rem;
}

.product-version-option {
  align-items: center;
  background: color-mix(in srgb, var(--theme-bg, #fff) 92%, var(--theme-primary, #5c4bea));
  border: 1px solid color-mix(in srgb, var(--theme-text, #1f2937) 18%, transparent);
  border-radius: 11px;
  cursor: pointer;
  display: grid;
  gap: .7rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: .8rem .9rem;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.product-version-option:hover {
  border-color: color-mix(in srgb, var(--theme-primary, #5c4bea) 55%, transparent);
  transform: translateY(-1px);
}

.product-version-option.is-selected {
  border-color: var(--theme-primary, #5c4bea);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--theme-primary, #5c4bea) 18%, transparent);
}

.product-version-option input {
  accent-color: var(--theme-primary, #5c4bea);
  height: 17px;
  margin: 0;
  width: 17px;
}

.product-version-option-copy {
  display: grid;
  gap: .15rem;
  min-width: 0;
}

.product-version-option-copy small {
  color: var(--theme-muted, var(--text-muted));
  line-height: 1.35;
}

.product-version-option-price {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: .12rem;
  white-space: nowrap;
}

.product-version-option-price .price-old { font-size: .76rem; }
.product-version-option-price > b {
  white-space: nowrap;
}

.checkout-product-version,
.cart-drawer-version {
  color: var(--theme-primary, var(--primary));
  display: block;
  font-size: .78rem;
  font-weight: 700;
  margin-top: .15rem;
}

.content-version-label {
  color: var(--primary);
  font-weight: 700;
  margin: .15rem 0 .35rem;
}

.content-owner-versions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: 1rem;
}

.content-owner-versions .field-label {
  margin-right: .35rem;
}

.buyer-content-tabs {
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: .2rem;
  margin-bottom: 1rem;
  overflow-x: auto;
}

.buyer-content-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--text-muted);
  cursor: pointer;
  font: inherit;
  font-weight: 650;
  padding: .75rem 1rem;
  white-space: nowrap;
}

.buyer-content-tabs button.is-active {
  border-color: var(--primary);
  color: var(--primary);
}

.buyer-content-panel[hidden] {
  display: none;
}
.newsletter-group-options h4 { margin: 1rem 0 .55rem; }
.newsletter-group-options h4:first-child { margin-top: .35rem; }
.newsletter-product-empty { border: 1px dashed var(--border); border-radius: var(--radius); padding: 1rem; }
.newsletter-product-empty p { margin-top: 0; }

/* Discord — seller integrations and product benefits */
.discord-integration-card {
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0, rgba(91, 104, 227, .14), transparent 34%),
    var(--card);
}
.discord-integration-heading,
.newsletter-integration-heading,
.product-discord-benefit-heading {
  display: flex; align-items: flex-start; gap: .85rem;
}
.discord-integration-heading > div,
.newsletter-integration-heading > div,
.product-discord-benefit-heading > div { flex: 1; min-width: 0; }
.discord-integration-heading .card-title,
.newsletter-integration-heading .card-title,
.product-discord-benefit-heading .card-title { margin: .1rem 0 .2rem; }
.discord-brand-mark,
.newsletter-integration-icon {
  display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px;
  border-radius: 13px; color: #fff; background: linear-gradient(145deg, #6875ee, #4d5bd3);
  box-shadow: 0 10px 24px rgba(88, 101, 242, .25);
}
.discord-brand-mark svg,
.newsletter-integration-icon svg { width: 22px; height: 22px; }
.discord-connect-pitch {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-top: 1.15rem; padding: 1rem 1.1rem; border: 1px solid rgba(91, 104, 227, .2);
  border-radius: 14px; background: rgba(91, 104, 227, .055);
}
.discord-connect-pitch p { margin: .3rem 0 0; color: var(--muted); }
.discord-connect-pitch form,
.discord-integration-actions form { margin: 0; }
.discord-connect-button { white-space: nowrap; }
.discord-server-summary {
  display: flex; align-items: center; gap: .8rem; margin: 1.15rem 0;
  padding: .85rem 1rem; border: 1px solid var(--border); border-radius: 13px;
  background: color-mix(in srgb, var(--primary) 4%, var(--card));
}
.discord-server-summary > div:last-child { display: grid; gap: .15rem; min-width: 0; }
.discord-server-avatar {
  display: inline-grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px;
  overflow: hidden; border-radius: 15px; color: #fff; background: #5865f2;
  font-size: 1.05rem; font-weight: 850;
}
.discord-server-avatar img { width: 100%; height: 100%; object-fit: cover; }
.discord-integration-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.product-discord-benefit {
  margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border);
}
.product-discord-benefit-heading { margin-bottom: 1rem; }
.product-discord-benefit-heading .badge { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-discord-role-list { display: grid; gap: .75rem; }
.product-discord-role-row {
  display: grid; grid-template-columns: 1fr;
  align-items: start; gap: .5rem; margin: 0; padding: .8rem .9rem;
  border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2, #fafafe);
}
.product-discord-role-row .field-label { margin: 0; }
.product-discord-target { display: block; color: var(--text); }
@media (max-width: 700px) {
  .discord-integration-heading, .product-discord-benefit-heading { flex-wrap: wrap; }
  .discord-integration-heading .badge, .product-discord-benefit-heading .badge { margin-left: 58px; }
  .discord-connect-pitch { align-items: stretch; flex-direction: column; }
  .product-discord-role-row { grid-template-columns: 1fr; gap: .5rem; }
}

.cover-preview {
  aspect-ratio: 16/10; border: 1px dashed var(--border); border-radius: var(--radius);
  overflow: hidden; margin-bottom: .5rem; display: flex; align-items: center; justify-content: center;
  color: var(--muted); font-size: .85rem; background: #fafafe;
}
.cover-preview img { width: 100%; height: 100%; object-fit: cover; }
.tips-card ul { padding-left: 1.1rem; margin: .5rem 0 0; }
.tips-card li { font-size: .87rem; color: var(--muted); margin-bottom: .45rem; }
.tips-card h3 { margin: 0; font-size: 1rem; }

/* ===== Séparateurs et déplacement des blocs Editor.js ===== */
.editor-divider {
  --editor-divider-color: #1f2937;
  --editor-divider-thickness: 1px;
  box-sizing: border-box;
  min-height: 28px;
  margin: .7rem 0;
  color: var(--editor-divider-color);
}
.editor-divider--line, .editor-divider--dotted {
  border-top: var(--editor-divider-thickness) solid var(--editor-divider-color);
  transform: translateY(14px);
}
.editor-divider--dotted { border-top-style: dotted; }
.editor-divider--stars {
  display: flex; align-items: center; justify-content: center; gap: .35rem;
  font-size: 1rem; letter-spacing: .45em; line-height: 28px;
}
.ce-popover:has(.divider-settings-menu) { --width: 286px; --max-height: 440px; }
.divider-settings-menu { box-sizing: border-box; width: 270px; padding: .35rem; color: var(--text); }
.divider-settings-heading { display: flex; align-items: center; gap: .65rem; padding: .25rem .25rem .7rem; }
.divider-settings-heading > svg { width: 24px; height: 24px; padding: .25rem; border-radius: 8px; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, #fff); }
.divider-settings-heading span, .divider-settings-heading strong, .divider-settings-heading small { display: block; }
.divider-settings-heading small { margin-top: .05rem; color: var(--muted); font-size: .72rem; }
.divider-style-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; }
.divider-style-option {
  display: grid; gap: .3rem; min-width: 0; padding: .5rem .3rem; border: 1px solid var(--border);
  border-radius: 9px; background: var(--card); color: var(--muted); cursor: pointer; font: inherit; font-size: .72rem;
}
.divider-style-option:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--border)); color: var(--text); }
.divider-style-option.is-active { border-color: var(--primary); color: var(--primary); background: color-mix(in srgb, var(--primary) 7%, #fff); box-shadow: 0 0 0 1px var(--primary); }
.divider-style-preview { display: grid; place-items: center; height: 16px; color: currentColor; font-size: .6rem; white-space: nowrap; }
.divider-style-preview--line::before, .divider-style-preview--dotted::before { content: ""; width: 80%; border-top: 1px solid currentColor; }
.divider-style-preview--dotted::before { border-top-style: dotted; }
.divider-settings-controls { display: grid; gap: .4rem; margin-top: .65rem; padding-top: .65rem; border-top: 1px solid var(--border); }
.divider-settings-controls label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .8rem; }
.divider-settings-controls select { min-width: 76px; padding: .3rem .45rem; border: 1px solid var(--border); border-radius: 7px; background: var(--card); color: var(--text); }
.divider-settings-controls input[type="color"] { width: 38px; height: 28px; padding: 2px; border: 1px solid var(--border); border-radius: 7px; background: var(--card); cursor: pointer; }

/* Citation dans l'éditeur : même rendu que la boutique (filet mi-transparent). */
.codex-editor .cdx-quote {
  margin: .1rem 0;
  padding: 0 0 0 1.15em;
  border-left: 3px solid color-mix(in srgb, currentColor 30%, transparent);
}
.codex-editor .cdx-quote__text { min-height: 0; margin-bottom: 0; padding: 0; border: 0; box-shadow: none; }
.codex-editor .cdx-quote__caption {
  min-height: 0; margin-top: .25rem; padding: 0; border: 0; box-shadow: none;
  color: var(--muted); font-size: .85rem;
}

/* Bloc vidéo */
.editor-video-block { margin: .2rem 0; }
.editor-video-placeholder { text-align: center; }
.editor-video-frame { position: relative; }
.editor-video-frame iframe {
  display: block; width: 100%; aspect-ratio: 16 / 9; height: auto;
  border: 1px solid var(--border); border-radius: 10px; background: #000;
}
.editor-video-replace { position: absolute; top: .5rem; right: .5rem; opacity: .92; }

.pb-video-player {
  width: 100%; min-height: 0; overflow: hidden; border-radius: var(--media-border-radius, 16px);
  background: #08090d;
}
.pb-video-player video-player, .pb-video-player video-skin { display: block; width: 100%; height: 100%; }
.pb-video-player video, .pb-video-player [slot="poster"] { width: 100%; height: 100%; object-fit: contain; }
.pb-video-player video-player:not(:defined) video { display: block; }
.pb-video-player video-player:not(:defined) [slot="poster"] { display: none; }
.builder-video-selection { display: grid; gap: .2rem; margin-bottom: .65rem; padding: .75rem; border: 1px solid var(--border); border-radius: 10px; background: color-mix(in srgb, var(--card) 92%, var(--border)); }
.builder-video-appearance .animated-details-body { display: grid; gap: .8rem; }
/* Bouton d'action d'une vidéo (importer/remplacer une piste, la vignette),
   avec son bouton « Remove » accolé. Utilisé dans le panneau d'options. */
.builder-video-action { display: inline-flex; align-items: center; gap: .25rem; }
.builder-video-live { min-height: 180px; aspect-ratio: 16 / 9; }
/* Fenêtre d'information du builder (plafond atteint, etc.) */
.builder-notice-card { max-width: 420px; text-align: left; }
.builder-notice-card h3 { margin: 0 0 .35rem; }
.builder-notice-card .hint { margin: 0 0 .5rem; }
.builder-notice-actions { display: flex; justify-content: flex-end; gap: .4rem; margin-top: .6rem; }
/* Champ média : les onglets Image / Video ouvrent le même emplacement. */
.media-field { gap: .35rem; }
.media-field .media-field-tabs .builder-settings-tabs { margin-bottom: .55rem; }
.media-field .builder-video-selection { margin-bottom: .4rem; }

/* Fenêtre « Insert a video » */
.video-embed-modal { position: fixed; inset: 0; z-index: 1650; display: grid; place-items: center; padding: 1.25rem; }
.video-embed-modal[hidden] { display: none; }
.video-embed-backdrop { position: absolute; inset: 0; background: rgba(10, 12, 20, .72); backdrop-filter: blur(3px); }
.video-embed-dialog {
  position: relative; width: min(520px, 100%); padding: 0 1.25rem 1.25rem;
  background: var(--card); border: 1px solid var(--border); border-radius: 18px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
}
.video-embed-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.1rem 0 .9rem; border-bottom: 1px solid var(--border); margin-bottom: 1.1rem;
}
.video-embed-head h2 { margin: 0; font-size: 1.05rem; }
.video-embed-hint { margin: .35rem 0 0; }
.video-embed-error { margin: .8rem 0 0; }
.video-embed-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1.2rem; }
.video-source-choices { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.video-source-choice { display: grid; gap: .35rem; min-height: 145px; padding: 1rem; border: 1px solid var(--border); border-radius: 13px; color: var(--text); background: var(--card); cursor: pointer; text-align: left; }
.video-source-choice:hover { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 5%, var(--card)); }
.video-source-choice strong { font-size: 1rem; }
.video-source-choice span { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.editor-video-frame .pb-video-player { aspect-ratio: 16 / 9; }

.video-picker-modal { position: fixed; inset: 0; z-index: 1700; display: grid; place-items: center; padding: 1rem; }
.video-picker-modal[hidden] { display: none; }
.video-picker-backdrop { position: absolute; inset: 0; background: rgba(10, 12, 20, .72); backdrop-filter: blur(4px); }
.video-picker-dialog { position: relative; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; width: min(900px, 100%); max-height: min(780px, calc(100vh - 2rem)); overflow: hidden; border: 1px solid var(--border); border-radius: 19px; background: var(--card); box-shadow: 0 28px 90px rgba(0,0,0,.3); }
.video-picker-head, .video-picker-toolbar, .video-picker-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.2rem; }
.video-picker-head { border-bottom: 1px solid var(--border); }
.video-picker-head h2 { margin: .15rem 0 0; }
.video-picker-toolbar input { flex: 1; }
.video-picker-message { margin: 0 1.2rem .8rem; }
.video-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .75rem; min-height: 180px; padding: .3rem 1.2rem 1rem; overflow-y: auto; }
.video-picker-card { min-width: 0; overflow: hidden; padding: 0; border: 1px solid var(--border); border-radius: 13px; color: var(--text); background: var(--card); cursor: pointer; text-align: left; }
.video-picker-card:hover { border-color: var(--primary); box-shadow: 0 8px 24px rgba(50,45,100,.12); }
.video-picker-thumb { display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; color: #fff; background: linear-gradient(135deg, #24233b, #5b4fc2); }
.video-picker-thumb img { width: 100%; height: 100%; object-fit: cover; }
.video-picker-thumb i { font-style: normal; font-size: 1.6rem; }
.video-picker-info { display: grid; gap: .2rem; padding: .7rem; }
.video-picker-info strong, .video-picker-info small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.video-picker-info small { color: var(--muted); }
.video-picker-uppy { padding: 0 1.2rem 1rem; }
.video-picker-uppy[hidden] { display: none; }
.video-picker-actions { border-top: 1px solid var(--border); }

@media (max-width: 600px) {
  .video-source-choices { grid-template-columns: 1fr; }
  .video-source-choice { min-height: 112px; }
  .video-picker-toolbar { align-items: stretch; flex-direction: column; }
  .video-picker-actions { flex-wrap: wrap; }
}


/* ===== Bloc "Produit" : édition dans le menu natif du bloc ===== */
.pe-product-block { margin: .4em 0; position: relative; }
.pe-picker {
  border: 1px dashed var(--border); border-radius: var(--radius); padding: .75rem; background: #fafafe;
}
.pe-picker-search {
  width: 100%; padding: .5rem .7rem; border: 1px solid var(--border); border-radius: 8px;
  margin-bottom: .5rem; font-size: .92rem;
}
.pe-picker-list { max-height: 220px; overflow-y: auto; display: flex; flex-direction: column; gap: .3rem; }
.pe-picker-empty { margin: .3rem 0; }
.pe-picker-item {
  display: flex; align-items: center; gap: .6rem; padding: .4rem .5rem; border: 1px solid transparent;
  border-radius: 8px; background: none; cursor: pointer; text-align: left; font: inherit; width: 100%;
}
.pe-picker-item:hover { border-color: var(--border); background: var(--card); }
.pe-picker-thumb {
  width: 34px; height: 34px; border-radius: 6px; overflow: hidden; background: #ecebf5; color: var(--muted);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.pe-picker-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pe-picker-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.pe-picker-title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pe-picker-price { color: var(--muted); font-size: .85rem; }
.pe-preview-missing {
  padding: .9rem; border: 1px dashed var(--red); border-radius: var(--radius); color: var(--red); font-size: .9rem;
}

.ce-popover--nested:has(.pe-settings-menu) { --max-height: min(570px, 80vh); }
.ce-popover--nested:has(.pe-settings-menu) > .ce-popover__container { width: 370px; min-width: 370px; }
.ce-popover-item-html:has(.pe-settings-menu) { width: 100%; }
.pe-settings { display: flex; flex-direction: column; gap: .55rem; box-sizing: border-box; width: 354px; padding: .2rem; color: var(--text); }
.pe-settings-summary {
  display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: .6rem;
  padding: .5rem; border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--border)); border-radius: 11px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, #fff), var(--card));
}
.pe-settings-summary-icon { display: grid; place-items: center; width: 38px; height: 38px; overflow: hidden; border-radius: 9px; color: var(--primary); background: var(--card); box-shadow: 0 1px 5px rgba(25,24,45,.1); }
.pe-settings-summary-icon img { width: 100%; height: 100%; object-fit: cover; }
.pe-settings-summary-copy { display: grid; min-width: 0; }
.pe-settings-summary-copy small { color: var(--primary); font-size: .61rem; font-weight: 800; letter-spacing: .07em; }
.pe-settings-summary-copy strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.pe-settings-btn {
  padding: .32rem .58rem; border: 1px solid color-mix(in srgb, var(--primary) 32%, var(--border)); border-radius: 999px;
  background: var(--card); color: var(--primary); cursor: pointer; font: inherit; font-size: .72rem; font-weight: 700;
}
.pe-settings-btn:hover { background: color-mix(in srgb, var(--primary) 8%, #fff); }
.pe-settings-section { display: grid; gap: .4rem; padding: .55rem .5rem; border-top: 1px solid var(--border); }
.pe-settings-section h4 { margin: 0 0 .08rem; color: var(--text); font-size: .68rem; letter-spacing: .055em; text-transform: uppercase; }
.pe-settings-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 30px; }
.pe-settings-label { font-size: .79rem; color: var(--muted); flex-shrink: 0; }
.pe-settings-group { display: flex; gap: .3rem; flex-wrap: wrap; justify-content: flex-end; }
.pe-settings-chip {
  padding: .3rem .55rem; border: 1px solid var(--border); border-radius: 999px; background: var(--card);
  color: var(--muted); cursor: pointer; font: inherit; font-size: .72rem;
}
.pe-settings-chip.is-active { background: var(--primary); border-color: var(--primary); color: #fff; }
.pe-settings-inline { display: flex; align-items: center; gap: .4rem; justify-content: flex-end; flex-wrap: wrap; }
.pe-settings input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--primary); cursor: pointer; }
.pe-settings input[type="color"] { width: 36px; height: 28px; padding: 2px; border: 1px solid var(--border); border-radius: 7px; background: var(--card); cursor: pointer; }
.pe-settings select { max-width: 190px; padding: .34rem .45rem; border: 1px solid var(--border); border-radius: 7px; background: var(--card); color: var(--text); font: inherit; font-size: .75rem; }
.pe-settings-inline input[type="text"] { width: 145px; padding: .34rem .5rem; border: 1px solid var(--border); border-radius: 7px; font: inherit; font-size: .76rem; }
.pe-settings-discount select { padding: .3rem; border: 1px solid var(--border); border-radius: 6px; }
.pe-settings-discount input[type="number"] { width: 70px; padding: .3rem .5rem; border: 1px solid var(--border); border-radius: 6px; }

@media (max-width: 650px) {
  .pe-settings { width: 100%; }
  .ce-popover:has(.divider-settings-menu) { --width: calc(100vw - 10px); }
  .ce-popover--nested:has(.pe-settings-menu) > .ce-popover__container { width: calc(100vw - 10px); min-width: calc(100vw - 10px); }
  .divider-settings-menu { width: 100%; }
}

/* ===== Product page ===== */
.owner-banner {
  background: #fff8e1; border: 1px solid #f2e3a1; color: #7a5d00;
  padding: .6rem 1rem; border-radius: var(--radius); margin-bottom: 1.25rem; font-size: .9rem;
  display: flex; gap: .75rem; align-items: center; flex-wrap: wrap;
}
.product-detail-section {
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  box-sizing: border-box; background-color: var(--theme-bg, #fff); color: var(--theme-text, inherit);
  background-size: cover; background-position: center;
}
.product-detail-shell {
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
  gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start;
}
.product-detail-media-right { grid-template-columns: minmax(300px, .92fr) minmax(0, 1.08fr); }
.product-detail-media-right .product-media-carousel { order: 2; }
.product-detail-stacked { grid-template-columns: minmax(0, 1fr); }
.product-detail-stacked .product-media-carousel { max-width: 840px; width: 100%; margin-inline: auto; }
.product-detail-stacked .product-detail-copy { max-width: 840px; width: 100%; margin-inline: auto; }
.product-heading-title-row {
  display: block; width: 100%;
}
.product-heading-title-row > :is(h1, h2, h3, h4) {
  min-width: 0; margin: 0 0 .35rem;
  font-size: clamp(1.65rem, 2.75vw, 2.55rem); line-height: 1.08;
}
.product-share-trigger:focus-visible { outline: 3px solid color-mix(in srgb, var(--theme-primary, var(--primary)) 26%, transparent); outline-offset: 3px; }
.product-secondary-actions { display: flex; align-items: stretch; justify-content: flex-end; gap: .6rem; margin: .15rem 0 .6rem; }
.product-secondary-actions > form { display: flex; flex: 1; margin: 0; }
.product-secondary-actions > .product-cart-action,
.product-secondary-actions > form .product-cart-action { flex: 1; width: 100%; min-width: 0; margin: 0; }
.product-detail-reviews > :is(h1, h2, h3, h4) { font-size: 1.5rem; margin: 0 0 1rem; }
.product-detail-heading .product-author { margin: 0 0 .7rem; color: var(--theme-muted, var(--muted)); }
.product-detail-heading .rating-summary { display: inline-flex; gap: .4rem; color: var(--theme-text, inherit); text-decoration: none; }
.product-detail-copy { min-width: 0; }
/* Prix, champs d'achat et boutons se posent directement sur la page : plus
   d'encadré autour du bloc d'achat. */
.product-detail-copy .buy-card { margin: 1.35rem 0; padding: 0; text-align: center; }
.product-detail-description { color: var(--theme-text, inherit); }
.product-detail-description > :first-child { margin-top: 0; }
.product-detail-reviews { padding-top: clamp(1.5rem, 4vw, 3rem); }
.product-media-carousel { position: relative; min-width: 0; }
.product-media-viewport {
  width: min(100%, var(--pb-block-image-size, 100%)); margin-inline: auto;
  overflow: hidden; border: 1px solid var(--theme-border, var(--border)); border-radius: var(--pb-block-image-radius, calc(var(--radius) + 4px));
  background: var(--theme-card, var(--card)); box-shadow: 0 18px 50px rgba(15, 23, 42, .09);
}
.product-media-track { display: flex; width: 100%; transition: transform .65s cubic-bezier(.22, .75, .18, 1); }
.product-media-slide { min-width: 100%; aspect-ratio: 1 / 1; display: grid; place-items: center; }
.product-media-slide img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  transform: scale(var(--pb-block-image-scale, 1));
}
.product-media-placeholder { color: var(--theme-primary, var(--primary)); background: color-mix(in srgb, var(--theme-primary, var(--primary)) 9%, var(--theme-card, #fff)); }
.product-media-placeholder .icon { width: 26%; height: 26%; }
.product-media-arrow {
  position: absolute; z-index: 2; top: 50%; width: 42px; height: 42px; padding: 0;
  display: grid; place-items: center; border: 1px solid var(--theme-border, var(--border));
  border-radius: 999px; color: var(--theme-text, var(--text)); background: color-mix(in srgb, var(--theme-card, #fff) 88%, transparent);
  box-shadow: 0 7px 22px rgba(15, 23, 42, .13); cursor: pointer; transform: translateY(-50%);
}
.product-media-prev { left: .75rem; }
.product-media-next { right: .75rem; }
.product-media-dots { display: flex; justify-content: center; gap: .45rem; padding-top: .85rem; }
.product-media-dot {
  width: 9px; height: 9px; padding: 0; border: 0; border-radius: 999px;
  background: color-mix(in srgb, var(--theme-muted, #6b7280) 45%, transparent); cursor: pointer;
  transition: width .2s ease, background .2s ease;
}
.product-media-dot.is-active { width: 26px; background: var(--theme-primary, var(--primary)); }
.buy-card { text-align: center; }
/* Le prix se lit à gauche, sobre : l'ancien prix et la pastille de promotion
   sur la première ligne, le prix à payer en dessous. */
.buy-price-top { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; }
.buy-price-badge {
  align-items: center; display: inline-flex; gap: .25rem; width: fit-content;
  padding: .18rem .6rem; border-radius: 99px;
  background: var(--theme-sale, var(--red)); color: #fff;
  font-size: .78rem; font-weight: 700;
}
.buy-price-badge.is-upsell { background: var(--theme-primary, var(--primary)); }
.buy-price-badge .icon { flex: none; height: 14px; width: 14px; }
.buy-price {
  align-items: flex-start; display: flex; flex-direction: column; gap: .12rem;
  margin-bottom: 1rem; text-align: left;
  font-size: 1.3rem; font-weight: 600; line-height: 1.25; color: var(--theme-text, var(--text));
}
.buy-price.free { color: var(--green); }
.buy-card .btn { margin-bottom: .6rem; }
.product-flexible-price,
.product-quantity-picker {
  align-items: center; display: flex; gap: .75rem; justify-content: space-between;
  margin: 0 0 .65rem; text-align: left;
}
/* Encadré optionnel, activé depuis l'onglet Design du bloc produit. */
.has-purchase-field-background :is(.product-flexible-price, .product-quantity-picker) {
  margin-bottom: .8rem; padding: .8rem;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 12px;
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 4%, var(--theme-card, #fff));
}
.product-flexible-price > span:first-child,
.product-quantity-picker > span:first-child { display: grid; gap: .12rem; }
.product-flexible-price small,
.product-quantity-picker small { color: var(--theme-muted, var(--muted)); font-size: .76rem; }
.product-money-input { align-items: stretch; display: flex; }
.product-money-input > span {
  align-items: center; display: flex; padding: 0 .6rem; border: 1px solid var(--theme-border, var(--border));
  border-right: 0; border-radius: 9px 0 0 9px; color: var(--theme-muted, var(--muted)); font-size: .75rem; font-weight: 750;
}
.product-money-input input,
.product-quantity-picker input {
  width: 112px; min-height: 42px; padding: .55rem .65rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: 0 9px 9px 0; color: var(--theme-text, var(--text)); background: var(--theme-bg, #fff); font: inherit; font-weight: 750;
}
.product-quantity-picker input { width: 84px; border-radius: 9px; text-align: center; }
.product-stock-note {
  align-items: center; display: flex; gap: .45rem; justify-content: center; margin: -.15rem 0 .8rem;
  color: var(--theme-muted, var(--muted)); font-size: .82rem; font-weight: 650;
}
/* Posé autour du titre, le compteur suit l'alignement choisi dans le bloc. */
.product-stock-note.is-heading { margin: .2rem 0 .55rem; }
.product-stock-note.is-heading.is-left { justify-content: flex-start; text-align: left; }
.product-stock-note.is-heading.is-center { justify-content: center; text-align: center; }
.product-stock-note.is-heading.is-right { justify-content: flex-end; text-align: right; }
.product-stock-note.is-sold-out { color: var(--red); }
.product-stock-note .icon { flex: none; height: 16px; width: 16px; }
.product-refund-policy-link {
  align-items: center; display: inline-flex; gap: .4rem; margin: .15rem auto .65rem; padding: .25rem .35rem;
  border: 0; color: var(--theme-muted, var(--muted)); background: transparent; cursor: pointer;
  font: inherit; font-size: .8rem; font-weight: 650; text-decoration: underline; text-underline-offset: 3px;
}
.product-refund-policy-link:hover { color: var(--theme-primary, var(--primary)); }
.product-refund-policy-link .icon { height: 16px; width: 16px; }
.product-refund-modal { position: fixed; inset: 0; z-index: 270; display: grid; place-items: center; padding: 1rem; }
.product-refund-modal[hidden] { display: none; }
.product-refund-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(15, 23, 42, .58); backdrop-filter: blur(3px); }
.product-refund-dialog {
  position: relative; z-index: 1; width: min(520px, 100%); max-height: calc(100vh - 2rem); overflow-y: auto;
  padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid var(--border); border-radius: 22px;
  color: var(--text); background: var(--card); box-shadow: 0 28px 90px rgba(15, 23, 42, .3); text-align: left;
}
.product-refund-dialog h2 { margin: .8rem 2rem .5rem 0; }
.product-refund-dialog > p { color: var(--muted); }
.product-refund-close { position: absolute; right: 1rem; top: 1rem; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: var(--bg); cursor: pointer; font-size: 1.5rem; }
.product-refund-icon { align-items: center; display: flex; justify-content: center; width: 44px; height: 44px; border-radius: 13px; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, #fff); }
.product-refund-icon .icon { width: 22px; height: 22px; }
.product-refund-fine-print { margin: 1rem 0; padding: 1rem; border: 1px solid var(--border); border-radius: 11px; background: var(--bg); line-height: 1.6; white-space: pre-wrap; }
.product-share-modal { position: fixed; inset: 0; z-index: 260; display: grid; place-items: center; padding: 1rem; }
.product-share-modal[hidden] { display: none; }
.product-share-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(15, 23, 42, .58); backdrop-filter: blur(3px); cursor: default; }
.product-share-dialog {
  position: relative; z-index: 1; width: min(560px, 100%); max-height: calc(100vh - 2rem); overflow-y: auto;
  padding: clamp(1.25rem, 4vw, 2rem); color: var(--theme-text, var(--text));
  background: var(--theme-card, var(--card)); border: 1px solid var(--theme-border, var(--border));
  border-radius: 22px; box-shadow: 0 28px 90px rgba(15, 23, 42, .3);
  animation: popupSlideIn .25s ease both;
}
.product-share-dialog h2 { margin: .35rem 2.5rem .45rem 0; font-size: clamp(1.45rem, 4vw, 2rem); }
.product-share-dialog > p { margin: 0 0 1.15rem; color: var(--theme-muted, var(--muted)); }
.product-share-eyebrow { display: inline-flex; align-items: center; gap: .4rem; color: var(--theme-primary, var(--primary)); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.product-share-close {
  position: absolute; top: 1rem; right: 1rem; display: grid; width: 36px; height: 36px;
  place-items: center; padding: 0; border: 0; border-radius: 999px; color: inherit;
  background: color-mix(in srgb, var(--theme-text, var(--text)) 7%, transparent); cursor: pointer; font-size: 1.5rem;
}
.product-share-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; margin: 1.25rem 0; }
.product-share-copy-row input {
  min-width: 0; padding: .72rem .85rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: 10px; color: var(--theme-text, var(--text)); background: var(--theme-bg, var(--bg)); font: inherit;
}
.product-share-copy-row .btn { display: inline-flex; align-items: center; gap: .4rem; margin: 0; white-space: nowrap; }
.product-share-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.product-share-option {
  display: flex; min-width: 0; flex-direction: column; align-items: center; gap: .45rem;
  padding: .85rem .4rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 13px;
  color: var(--theme-text, var(--text)); background: var(--theme-bg, #fff); cursor: pointer;
  font: inherit; font-size: .82rem; font-weight: 700; text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.product-share-option:hover { transform: translateY(-2px); border-color: var(--theme-primary, var(--primary)); background: color-mix(in srgb, var(--theme-primary, var(--primary)) 6%, var(--theme-bg, #fff)); text-decoration: none; }
.product-share-option-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; color: #fff; background: var(--theme-primary, var(--primary)); }
.product-share-option-icon .icon { width: 19px; height: 19px; }
.product-share-x { font-size: 1rem; font-weight: 900; }
.product-share-tracking-note { display: flex; align-items: center; justify-content: center; gap: .4rem; margin: 1rem 0 0 !important; font-size: .76rem; text-align: center; }
.product-share-tracking-note .icon { flex: none; }
body.product-share-open { overflow: hidden; }
@media (max-width: 850px) {
  .product-detail-shell, .product-detail-media-right { grid-template-columns: 1fr; }
  .product-detail-media-right .product-media-carousel { order: initial; }
}
@media (max-width: 480px) {
  .product-flexible-price, .product-quantity-picker { align-items: stretch; flex-direction: column; }
  .product-money-input input { flex: 1; width: 100%; }
  .product-share-dialog { border-radius: 18px; }
  .product-share-copy-row { grid-template-columns: 1fr; }
  .product-share-copy-row .btn { justify-content: center; }
  .product-share-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===== Checkout public ===== */
.checkout-page {
  max-width: 1120px; margin: 0 auto;
  --primary: var(--theme-primary, #5B68E3);
  --primary-dark: var(--theme-secondary, #4A56C2);
  --card: var(--theme-card, #fff);
  --text: var(--theme-text, #1d1d2b);
  --muted: var(--theme-muted, #6b6b80);
  --border: var(--theme-border, #e4e4ee);
  color: var(--theme-text, inherit); font-family: var(--theme-font-body, inherit);
}
.checkout-page h1, .checkout-page h2, .checkout-page h3, .checkout-page h4 { font-family: var(--theme-font-heading, inherit); }
.checkout-page h1 { color: var(--theme-h1, inherit); }
.checkout-page h2 { color: var(--theme-h2, inherit); }
.checkout-page-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem;
  margin-bottom: 1.5rem;
}
.checkout-page-head :is(h1, h2, h3, h4) { font-size: 2rem; margin: 0; }
.checkout-kicker {
  display: block; color: var(--primary); font-size: .75rem; font-weight: 800;
  letter-spacing: .09em; text-transform: uppercase; margin-bottom: .2rem;
}
.checkout-layout {
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  grid-template-areas: "summary details"; gap: 1.5rem; align-items: start;
}
.checkout-layout.summary-right {
  grid-template-columns: minmax(360px, .92fr) minmax(0, 1.08fr);
  grid-template-areas: "details summary";
}
.checkout-summary-column { grid-area: summary; min-width: 0; }
.checkout-details-column { grid-area: details; min-width: 0; position: sticky; top: 88px; }
.checkout-summary-block, .checkout-payment-card {
  background: var(--card); border: 1px solid var(--border); border-radius: 16px;
  padding: 1.35rem; margin-bottom: 1rem;
}
.checkout-summary-block > :is(h1, h2, h3, h4) { font-size: 1.5rem; margin: 0 0 .9rem; }
.checkout-products-list { display: flex; flex-direction: column; gap: .85rem; }
.checkout-product-row {
  display: grid; grid-template-columns: 66px minmax(0, 1fr) auto;
  gap: .85rem; align-items: center; padding: .85rem;
  border: 1px solid var(--border); border-radius: 12px; background: #fff;
}
.checkout-page .checkout-product-row,
.checkout-page .checkout-payment-method,
.checkout-page .stripe-payment-element,
.checkout-page .paypal-card-fields { background: var(--theme-card, #fff); }
.checkout-product-row .checkout-product-cover {
  width: 66px; height: 52px; object-fit: cover; border-radius: 9px; border: 1px solid var(--border);
}
.checkout-product-row .checkout-product-cover.placeholder {
  display: flex; align-items: center; justify-content: center; background: #f1f0f7; color: #aaa6c5;
}
.checkout-product-info { min-width: 0; }
.checkout-product-info strong { display: block; line-height: 1.25; }
.checkout-product-info .product-author { margin: .2rem 0 0; }
.checkout-product-price { text-align: right; font-weight: 750; white-space: nowrap; color: var(--theme-price, currentColor); }
.checkout-products-cards .checkout-products-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.checkout-products-cards .checkout-product-row { grid-template-columns: 1fr; align-items: start; }
.checkout-products-cards .checkout-product-cover { width: 100%; height: 128px; }
.checkout-products-cards .checkout-product-price { text-align: left; }
.checkout-products-compact .checkout-product-row { grid-template-columns: 42px minmax(0, 1fr) auto; padding: .55rem .65rem; }
.checkout-products-compact .checkout-product-cover { width: 42px; height: 38px; }
.checkout-products-compact .product-author { display: none; }
.checkout-discounts {
  display: flex; flex-direction: column; gap: .55rem;
  margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border);
}
.checkout-discount-row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .8rem;
  color: var(--theme-discount, var(--red)); font-size: .95rem; font-weight: 700;
}
.checkout-discount-label {
  display: flex; align-items: center; justify-content: flex-start; gap: .4rem;
  min-width: 0; text-align: left;
}
.checkout-discount-label .icon { flex: 0 0 auto; }
.checkout-discount-value { text-align: right; white-space: nowrap; }
.checkout-coupon-block { margin-top: 1rem; padding-top: .1rem; }
.checkout-coupon-block .checkout-section-label { margin-top: .7rem; }
.checkout-coupon-applied { margin-bottom: 0; }
.checkout-total {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 1.08rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border);
}
.checkout-total strong { font-size: 1.25rem; }
.checkout-cross-heading { margin-bottom: .9rem; }
.checkout-cross-heading :is(h1, h2, h3, h4) { font-size: 1.17rem; margin: 0 0 .15rem; }
.checkout-cross-heading p { margin: 0; color: var(--muted); font-size: .9rem; }
.checkout-cross-list { display: flex; flex-direction: column; gap: .7rem; }
.checkout-cross-offer {
  display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: .8rem;
  background: linear-gradient(135deg, #f7f6ff, #fff); border: 1px solid #dad7fa;
  border-radius: 12px; padding: .8rem;
}
.checkout-cross-offer .table-thumb { width: 58px; height: 50px; }
.checkout-cross-copy { min-width: 0; }
.checkout-cross-copy .cross-sell-text { margin-top: .18rem; }
.checkout-cross-banner .checkout-cross-offer { padding: 1rem 1.1rem; }
.checkout-cross-compact .checkout-cross-offer { grid-template-columns: minmax(0, 1fr) auto; }
.checkout-cross-compact .table-thumb { display: none; }
.checkout-custom-text { white-space: normal; }
.checkout-custom-text.align-center { text-align: center; }
.checkout-custom-text p { margin: 0; color: var(--muted); }
.checkout-custom-image { padding: 0; overflow: hidden; }
.checkout-custom-image img { display: block; width: 100%; max-height: 420px; object-fit: cover; }
.checkout-custom-image figcaption { padding: .65rem 1rem; color: var(--muted); font-size: .85rem; text-align: center; }
.checkout-recommended-head :is(h1, h2, h3, h4) { font-size: 1.05rem; margin-bottom: .15rem; }
.checkout-custom-text > :is(h1, h2, h3, h4) { font-size: 1.05rem; margin: 0 0 .35rem; }
.checkout-recommended-head p { color: var(--muted); margin: 0 0 1rem; font-size: .9rem; }
.checkout-recommended-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.checkout-recommended-list { display: flex; flex-direction: column; gap: .6rem; }
.checkout-recommended-item {
  display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: .7rem;
  border: 1px solid var(--border); border-radius: 11px; padding: .6rem; color: var(--text);
}
.checkout-recommended-item:hover { text-decoration: none; border-color: var(--primary); }
.checkout-recommended-item img, .checkout-recommended-item .placeholder {
  width: 50px; height: 44px; border-radius: 8px; object-fit: cover;
  background: #f0eff7; display: flex; align-items: center; justify-content: center;
}
.checkout-recommended-item small { display: block; color: var(--muted); }
.checkout-recommended-item b { white-space: nowrap; font-size: .9rem; }
.checkout-recommended-grid .checkout-recommended-item {
  grid-template-columns: 1fr; align-items: start;
}
.checkout-recommended-grid .checkout-recommended-item img,
.checkout-recommended-grid .checkout-recommended-item .placeholder { width: 100%; height: 105px; }
.checkout-recommended-grid .checkout-recommended-item b { color: var(--primary); }
.checkout-payment-card { padding: 1.5rem; box-shadow: 0 14px 40px rgba(28, 27, 50, .08); }
.checkout-payment-card > :is(h1, h2, h3, h4) { font-size: 1.5rem; margin: 0 0 .25rem; }
.checkout-section-label {
  display: flex; align-items: center; gap: .5rem; margin: 1.3rem 0 .7rem;
  font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; color: var(--muted);
}
.checkout-section-label::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.checkout-known-email {
  background: #f7f7fb; border: 1px solid var(--border); border-radius: 10px;
  padding: .7rem .8rem; margin-bottom: 1rem;
}
.checkout-known-email strong { display: block; }
.checkout-payment-method {
  display: flex; align-items: center; gap: .65rem; border: 1.5px solid var(--primary);
  border-radius: 11px; padding: .75rem .85rem; margin-bottom: .85rem; background: #fafaff;
}
.checkout-payment-radio { width: 16px; height: 16px; border: 4px solid var(--primary); border-radius: 50%; }
.checkout-card-brands { margin-left: auto; color: var(--muted); font-size: .75rem; font-weight: 700; }
.stripe-payment-element {
  min-height: 160px; padding: .85rem; border: 1px solid var(--border); border-radius: 12px; background: #fff;
}
.paypal-card-fields {
  display: grid; gap: .75rem; padding: .85rem;
  border: 1px solid var(--border); border-radius: 12px; background: #fff;
}
.paypal-card-fields label { display: grid; gap: .35rem; color: var(--muted); font-size: .82rem; font-weight: 700; }
.paypal-card-fields-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.paypal-card-field {
  display: block; height: 44px; overflow: hidden;
  border: 1px solid var(--border); border-radius: 9px; background: #fff;
}
.paypal-card-field:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent); }
.paypal-checkout-divider {
  align-items: center; color: var(--muted); display: flex; font-size: .78rem;
  gap: .75rem; margin: 1rem 0; text-transform: uppercase;
}
.paypal-checkout-divider::before, .paypal-checkout-divider::after { background: var(--border); content: ""; flex: 1; height: 1px; }
.paypal-button-container { min-height: 48px; position: relative; z-index: 0; }
.checkout-paypal-privacy { font-size: .75rem; line-height: 1.45; margin: .65rem 0 0; text-align: center; }
.stripe-payment-loading { display: flex; gap: .6rem; align-items: center; color: var(--muted); font-size: .9rem; }
.stripe-payment-loading::before {
  content: ""; width: 17px; height: 17px; border: 2px solid var(--border);
  border-top-color: var(--primary); border-radius: 50%; animation: checkoutSpin .8s linear infinite;
}
@keyframes checkoutSpin { to { transform: rotate(360deg); } }
.checkout-payment-error { color: var(--red); font-size: .88rem; margin: .7rem 0; }
/* Offrir un produit : petite entrée sous les informations de paiement, puis
   résumé du destinataire une fois le cadeau posé. */
.checkout-gift { margin: .9rem 0 1.1rem; }
.checkout-gift-error {
  color: var(--red); font-size: .85rem; margin: 0 0 .6rem;
  display: flex; align-items: center; gap: .4rem;
}
.checkout-gift-trigger {
  display: inline-flex; align-items: center; gap: .45rem; padding: 0;
  background: none; border: 0; cursor: pointer; color: var(--primary);
  font-size: .88rem; font-weight: 700; text-decoration: underline;
  text-underline-offset: 3px; text-decoration-thickness: 1px;
}
.checkout-gift-trigger:hover { opacity: .82; }
.checkout-gift-summary {
  display: flex; align-items: center; gap: .65rem;
  border: 1px solid var(--primary); border-radius: 11px;
  padding: .7rem .55rem .7rem .8rem; background: #fafaff;
}
.checkout-gift-icon { display: inline-flex; color: var(--primary); }
.checkout-gift-edit {
  flex: 1; min-width: 0; display: grid; gap: .1rem; text-align: left;
  background: none; border: 0; padding: 0; cursor: pointer; color: inherit; font: inherit;
}
.checkout-gift-edit strong { font-size: .92rem; }
.checkout-gift-edit small { color: var(--muted); font-size: .78rem; overflow-wrap: anywhere; }
.checkout-gift-edit:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.checkout-gift-remove { display: flex; }
.checkout-gift-modal { z-index: 1400; }
.checkout-gift-box { position: relative; max-width: 460px; }
.checkout-gift-box h2 { display: flex; align-items: center; gap: .5rem; }
.checkout-gift-box > p { margin-bottom: 1.1rem; }
.checkout-gift-close { position: absolute; top: .6rem; right: .6rem; }
.checkout-gift-open { overflow: hidden; }

/* Cadeau reçu : message de l'offrant, en tête du contenu acheté. */
.content-gift {
  display: flex; gap: .85rem; align-items: flex-start;
  border: 1px solid var(--border); border-left: 3px solid var(--primary);
  border-radius: 12px; padding: 1rem 1.1rem; margin-bottom: 1.4rem; background: #fafaff;
}
.content-gift-icon { display: inline-flex; color: var(--primary); margin-top: .15rem; }
.content-gift h2 { font-size: 1.05rem; margin: 0 0 .2rem; }
.content-gift p { margin: 0; }
.content-gift-message { margin-top: .45rem; white-space: normal; }
.content-gift-from { color: var(--muted); font-size: .82rem; margin-top: .45rem; }

.checkout-payment-card .coupon-form { margin-bottom: .2rem; }
.checkout-payment-card .checkout-questions { margin-top: .7rem; }
.checkout-submit { margin-top: 1rem; }
.checkout-submit[disabled] { opacity: .62; cursor: wait; transform: none; }
.checkout-secure-note { text-align: center; margin: .7rem 0 0; }

@media (max-width: 820px) {
  .checkout-layout, .checkout-layout.summary-right {
    grid-template-columns: 1fr; grid-template-areas: "summary" "details";
  }
  .checkout-details-column { position: static; }
}
@media (max-width: 540px) {
  .checkout-products-cards .checkout-products-list, .checkout-recommended-grid { grid-template-columns: 1fr; }
  .checkout-product-row { grid-template-columns: 52px minmax(0, 1fr); }
  .checkout-product-row .checkout-product-cover { width: 52px; height: 46px; }
  .checkout-product-price { grid-column: 2; text-align: right; }
  .checkout-cross-offer { grid-template-columns: 48px minmax(0, 1fr); }
  .checkout-cross-offer form { grid-column: 1 / -1; }
  .paypal-card-fields-row { grid-template-columns: 1fr; }
}

/* ===== Checkout editor ===== */
main.container:has(> .checkout-builder) { max-width: none; padding: .8rem 1rem 1.5rem; }
.checkout-builder { min-height: calc(100vh - 95px); }
.checkout-builder-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: var(--card); border: 1px solid var(--border); border-radius: 14px;
  padding: .8rem 1rem; margin-bottom: .8rem;
}
.checkout-builder-toolbar h1 { font-size: 1.25rem; margin: 0; }
.checkout-builder-toolbar p { margin: .12rem 0 0; }
.eyebrow { color: var(--primary); text-transform: uppercase; letter-spacing: .09em; font-size: .67rem; font-weight: 800; }
.checkout-builder-actions { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; justify-content: flex-end; }
.checkout-builder-layout { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: .8rem; align-items: start; }
.checkout-builder-preview-wrap {
  background: #e9edf4; border: 1px solid #d8dde8; border-radius: 14px; padding: .9rem; min-width: 0;
}
.checkout-layout-switch {
  display: flex; align-items: center; justify-content: center; gap: .45rem; margin: 0 auto .8rem;
  background: rgba(255,255,255,.78); border: 1px solid #d6dbe5; width: fit-content;
  padding: .3rem; border-radius: 11px;
}
.checkout-layout-switch > span { font-size: .78rem; font-weight: 700; color: var(--muted); padding: 0 .45rem; }
.checkout-layout-switch button {
  display: flex; align-items: center; gap: .4rem; border: 1px solid transparent; border-radius: 8px;
  padding: .4rem .55rem; background: transparent; color: var(--muted); cursor: pointer; font: inherit; font-size: .78rem;
}
.checkout-layout-switch button.is-active { color: var(--primary); background: #fff; border-color: #dcd9fa; box-shadow: 0 2px 8px rgba(30,30,60,.08); }
.layout-mini { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2px; width: 23px; height: 16px; }
.layout-mini i { display: block; background: #b9bfd0; border-radius: 2px; }
.layout-mini-summary-right { grid-template-columns: .8fr 1.2fr; }
.checkout-layout-switch button.is-active .layout-mini i:first-child { background: var(--primary); }
.checkout-builder-preview { max-width: 980px; margin: 0 auto; }
.cb-preview-page {
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(270px, .92fr);
  grid-template-areas: "title title" "summary payment"; gap: 1rem;
  background: #f8f8fb; border-radius: 11px; padding: 1.1rem; min-height: 650px;
  box-shadow: 0 12px 30px rgba(38,42,55,.12); color: #262632;
}
.cb-preview-page.pb-themed {
  background: var(--theme-bg, #f8f8fb); color: var(--theme-text, #262632);
  font-family: var(--theme-font-body, inherit);
}
.cb-preview-page.pb-themed h3, .cb-preview-page.pb-themed h4, .cb-preview-page.pb-themed b {
  color: var(--theme-text, inherit); font-family: var(--theme-font-heading, inherit);
}
.cb-preview-page.pb-themed .cb-preview-summary > section,
.cb-preview-page.pb-themed .cb-preview-payment,
.cb-preview-page.pb-themed .cb-preview-product,
.cb-preview-page.pb-themed .cb-card-fields {
  background: var(--theme-card, #fff); border-color: var(--theme-border, #e1e2e8);
}
.cb-preview-page.pb-themed .cb-preview-title span,
.cb-preview-page.pb-themed .cb-recommended-grid .cb-preview-product b { color: var(--theme-primary, #5B68E3); }
.cb-preview-page.pb-themed .cb-card-method { border-color: var(--theme-primary, #5B68E3); }
.cb-preview-page.pb-themed .cb-radio { border-color: var(--theme-primary, #5B68E3); }
.cb-preview-page.pb-themed .cb-pay-button {
  background: var(--theme-btn-primary, var(--theme-primary, #5B68E3));
  color: var(--theme-btn-primary-text, #fff);
}
.cb-preview-page.summary-right { grid-template-columns: minmax(270px, .92fr) minmax(0, 1.08fr); grid-template-areas: "title title" "payment summary"; }
.cb-preview-title { grid-area: title; display: flex; align-items: center; justify-content: space-between; }
.cb-preview-title span { color: #5B68E3; text-transform: uppercase; font-size: .63rem; font-weight: 800; letter-spacing: .08em; }
.cb-preview-title :is(h1, h2, h3, h4) { font-size: 1.25rem; margin: 0; }
.cb-preview-summary { grid-area: summary; min-width: 0; }
.cb-preview-payment {
  grid-area: payment; align-self: start; background: #fff; border: 1px solid #e1e2e8; border-radius: 13px;
  padding: 1rem; box-shadow: 0 10px 25px rgba(40,40,60,.07);
}
.cb-preview-summary > section {
  background: #fff; border: 1px solid #e1e2e8; border-radius: 12px; padding: 1rem; margin-bottom: .75rem;
  cursor: pointer; transition: outline .12s;
}
.cb-preview-summary > section:hover { outline: 2px dashed rgba(91,104,227,.45); outline-offset: -2px; }
.cb-preview-summary > section.is-selected { outline: 2px solid #5B68E3; outline-offset: -2px; }
.cb-preview-summary > section > :is(h1, h2, h3, h4) { font-size: 1.1rem; margin: 0 0 .7rem; }
.cb-preview-payment > :is(h1, h2, h3, h4) { font-size: 1.1rem; margin: 0 0 .3rem; }
.cb-preview-product {
  display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: .65rem; align-items: center;
  border: 1px solid #e5e5eb; border-radius: 10px; padding: .6rem;
}
.cb-preview-product img, .cb-product-placeholder {
  width: 52px; height: 42px; object-fit: cover; border-radius: 7px; background: #eeedf5;
  display: flex; align-items: center; justify-content: center; color: #aaa7c0;
}
.cb-preview-product strong, .cb-preview-product small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cb-preview-product small { color: #79798b; font-size: .7rem; }
.cb-preview-product b { font-size: .8rem; white-space: nowrap; }
.cb-preview-product.is-compact { grid-template-columns: 36px minmax(0, 1fr) auto; padding: .45rem; }
.cb-preview-product.is-compact img, .cb-preview-product.is-compact .cb-product-placeholder { width: 36px; height: 32px; }
.cb-total { display: flex; justify-content: space-between; border-top: 1px solid #e5e5eb; margin-top: .75rem; padding-top: .75rem; }
.cb-discount-row {
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  margin-top: .65rem; color: var(--theme-discount, #dc2626); font-size: .72rem; font-weight: 700;
}
.cb-discount-row > span { display: inline-flex; align-items: center; gap: .3rem; text-align: left; }
.cb-products-cards .cb-preview-product { grid-template-columns: 1fr; }
.cb-products-cards .cb-preview-product img, .cb-products-cards .cb-product-placeholder { width: 100%; height: 110px; }
.cb-products-cards .cb-preview-product b { color: #5B68E3; }
.cb-section-heading :is(h1, h2, h3, h4) { font-size: 1.05rem; margin-bottom: .1rem; }
.cb-text > :is(h1, h2, h3, h4) { font-size: 1.05rem; margin: 0 0 .35rem; }
.cb-section-heading p { margin: 0 0 .65rem; font-size: .72rem; color: #79798b; }
.cb-cross-offer {
  display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: .6rem; align-items: center;
  padding: .55rem; border: 1px solid #dcd9fa; border-radius: 9px; background: #faf9ff;
}
.cb-cross-offer img, .cb-cross-placeholder {
  width: 48px; height: 40px; border-radius: 7px; object-fit: cover;
  background: #ebe9ff; color: #5B68E3; display: flex; align-items: center; justify-content: center;
}
.cb-cross-offer strong, .cb-cross-offer small { display: block; }
.cb-cross-offer small { color: #79798b; font-size: .67rem; line-height: 1.25; }
.cb-cross-offer button, .cb-coupon button {
  border: 1px solid #d9d9e3; background: #fff; border-radius: 7px; padding: .35rem .55rem; color: #5B68E3; font-weight: 700;
}
.cb-cross-compact .cb-cross-offer { grid-template-columns: minmax(0, 1fr) auto; }
.cb-cross-compact .cb-cross-placeholder, .cb-cross-compact .cb-cross-offer img { display: none; }
.cb-align-center { text-align: center; }
.cb-text p { margin: 0; font-size: .76rem; color: #6d6d80; }
.cb-image img { width: 100%; max-height: 210px; object-fit: cover; border-radius: 8px; }
.cb-image > small { display: block; text-align: center; color: #79798b; margin-top: .35rem; }
.cb-empty-image { height: 120px; background: #f2f2f7; border: 1px dashed #c9c9d5; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #8a899b; gap: .3rem; }
.cb-recommended-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.cb-recommended-grid .cb-preview-product { grid-template-columns: 1fr; }
.cb-recommended-grid .cb-preview-product img, .cb-recommended-grid .cb-product-placeholder { width: 100%; height: 75px; }
.cb-recommended-list { display: flex; flex-direction: column; gap: .4rem; }
.cb-preview-payment label { display: block; font-size: .7rem; font-weight: 700; margin: .5rem 0; }
.cb-preview-payment input {
  width: 100%; padding: .45rem .55rem; border: 1px solid #dedee6; border-radius: 7px; background: #fff; margin-top: .2rem; font-size: .72rem;
}
.cb-step { display: flex; align-items: center; gap: .4rem; margin: .8rem 0 .4rem; color: #7d7d8d; font-size: .62rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 800; }
.cb-step::after { content: ""; height: 1px; background: #e5e5eb; flex: 1; }
.cb-coupon { display: flex; gap: .4rem; }
.cb-coupon input { margin: 0; }
.cb-card-method { display: flex; align-items: center; gap: .45rem; border: 1.5px solid #5B68E3; border-radius: 8px; padding: .55rem; font-size: .68rem; }
.cb-card-method span:last-child { margin-left: auto; color: #777789; font-size: .6rem; }
.cb-radio { width: 13px; height: 13px; border: 3px solid #5B68E3; border-radius: 50%; }
.cb-card-fields { border: 1px solid #dfdfe7; border-radius: 8px; padding: .6rem; margin-top: .5rem; font-size: .65rem; }
.cb-card-fields span, .cb-card-fields b, .cb-card-fields i { display: block; }
.cb-card-fields span { color: #777789; }
.cb-card-fields b { font-weight: 500; padding: .3rem 0; }
.cb-card-fields i { color: #777789; border-top: 1px solid #ececf1; padding-top: .3rem; font-style: normal; }
.cb-pay-button { width: 100%; background: #5B68E3; color: #fff; border: 0; border-radius: 8px; padding: .65rem; margin-top: .75rem; font-weight: 750; }
.cb-secure { display: block; text-align: center; color: #777789; margin-top: .4rem; font-size: .6rem; }
.checkout-builder-side {
  background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 1rem;
  max-height: calc(100vh - 185px); overflow-y: auto; position: sticky; top: 84px;
}
.checkout-builder-side .builder-panel-head { align-items: flex-start; }
.checkout-builder-side .builder-panel-head p { margin: .15rem 0 .7rem; }
.cb-settings-head { display: flex; align-items: center; gap: .65rem; margin-bottom: 1.1rem; }
.cb-settings-head h3 { margin: 0; }
.cb-settings-image { width: 100%; max-height: 170px; object-fit: contain; background: #f5f5f8; border-radius: 9px; margin-bottom: .8rem; }
.cb-product-picker { margin-bottom: 1rem; }
.cb-product-picker label {
  display: flex; align-items: center; gap: .55rem; padding: .55rem .2rem; border-bottom: 1px solid var(--border); cursor: pointer;
}
.cb-product-picker input { width: auto; }
.cb-product-picker label span { min-width: 0; font-size: .88rem; font-weight: 650; }
.cb-product-picker label small { display: block; color: var(--muted); font-weight: 400; }
.checkout-add-menu { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; }
.checkout-add-menu[hidden] { display: none; }
.checkout-add-menu-overlay { position: absolute; inset: 0; background: rgba(29,29,43,.42); }
.checkout-add-menu-card {
  position: relative; width: min(520px, calc(100vw - 2rem)); background: var(--card);
  border-radius: 16px; box-shadow: 0 24px 70px rgba(20,20,40,.28); padding: 1rem;
}
.checkout-add-choice {
  display: grid; grid-template-columns: 46px minmax(0, 1fr); width: 100%; text-align: left; gap: .05rem .75rem;
  border: 1px solid var(--border); background: #fff; border-radius: 11px; padding: .75rem; margin-top: .55rem; cursor: pointer;
}
.checkout-add-choice:hover { border-color: var(--primary); background: #fafaff; }
.checkout-add-choice > span { grid-row: 1 / 3; width: 46px; height: 42px; border-radius: 9px; background: #efeffd; color: var(--primary); display: flex; align-items: center; justify-content: center; }
.checkout-add-choice strong { align-self: end; }
.checkout-add-choice small { color: var(--muted); }
@media (max-width: 1020px) {
  .checkout-builder-layout { grid-template-columns: 1fr; }
  .checkout-builder-side { position: static; max-height: none; }
}
@media (max-width: 720px) {
  .checkout-builder-toolbar { align-items: flex-start; }
  .checkout-builder-toolbar, .checkout-builder-actions { flex-direction: column; }
  .cb-preview-page, .cb-preview-page.summary-right { grid-template-columns: 1fr; grid-template-areas: "title" "summary" "payment"; }
  .checkout-layout-switch > span { display: none; }
}

/* ===== Content page ===== */
main.container:has(> .content-template) { max-width: none; padding: 0; }
main.container:has(> .content-template) > .alert,
main.container:has(> .content-template) > .owner-banner {
  margin: 1rem auto;
  max-width: min(1400px, calc(100% - 2rem));
}
.content-template {
  background-color: var(--theme-bg, var(--bg));
  background-position: center;
  background-size: cover;
  color: var(--theme-text, var(--text));
  padding: var(--content-pad-top, 40px) var(--content-pad-right, 0)
    var(--content-pad-bottom, 64px) var(--content-pad-left, 0);
}
.content-layout {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr) minmax(240px, var(--content-sidebar-width, 320px));
  margin: 0 auto;
  max-width: var(--content-max-width, 1400px);
  padding: 0 1.25rem;
}
.content-layout-sidebar-left {
  grid-template-columns: minmax(240px, var(--content-sidebar-width, 320px)) minmax(0, 1fr);
}
.content-layout-sidebar-left .content-main-column { grid-column: 2; }
.content-layout-sidebar-left .content-sidebar { grid-column: 1; grid-row: 1; }
.content-layout-stacked { display: block; max-width: min(100%, 980px); }
.content-layout-stacked .content-sidebar {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  margin-top: 1.5rem;
}
.content-main-column { min-width: 0; }
.content-sidebar {
  align-self: start;
  display: grid;
  gap: 1rem;
}
.content-layout.has-sticky-sidebar:not(.content-layout-stacked) .content-sidebar {
  position: sticky;
  top: 84px;
}
.content-head { display: flex; gap: 1rem; align-items: center; margin-bottom: 1.5rem; }
.content-head > div { min-width: 0; }
.content-discord-benefit {
  display: grid; grid-template-columns: auto minmax(180px, 1fr) auto; align-items: center;
  gap: .7rem; min-width: min(100%, 410px); margin-left: auto; padding: .75rem .8rem;
  border: 1px solid color-mix(in srgb, #5865f2 28%, var(--theme-border, var(--border)));
  border-radius: 14px; background: color-mix(in srgb, #5865f2 7%, var(--theme-card, var(--card)));
  box-shadow: 0 10px 26px rgba(46, 51, 102, .07);
}
.content-discord-benefit.is-synced {
  border-color: color-mix(in srgb, var(--green) 36%, var(--theme-border, var(--border)));
}
.content-discord-icon {
  display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 11px;
  background: #5865f2; color: #fff;
}
.content-discord-icon svg { width: 19px; height: 19px; }
.content-discord-copy { display: grid; min-width: 0; gap: .12rem; }
.content-discord-kicker {
  overflow: hidden; color: var(--theme-muted, var(--muted)); font-size: .68rem;
  font-weight: 800; letter-spacing: .045em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap;
}
.content-discord-copy strong { display: flex; align-items: center; gap: .4rem; }
.content-discord-copy small {
  display: inline-flex; align-items: center; gap: .25rem; color: var(--theme-muted, var(--muted));
  font-size: .75rem; line-height: 1.35;
}
.content-discord-copy small svg { flex: none; width: 14px; height: 14px; color: var(--green); }
.content-discord-role-dot {
  width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--discord-role-color, #5865f2);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--discord-role-color, #5865f2) 18%, transparent);
}
.content-discord-actions { display: grid; justify-items: stretch; gap: .25rem; }
.content-discord-actions form { margin: 0; }
.content-discord-actions .btn { width: 100%; white-space: nowrap; }
.content-cover { width: 110px; height: 74px; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--border); }
.content-cover-placeholder {
  align-items: center;
  background: var(--theme-card, var(--card));
  color: var(--theme-primary, var(--primary));
  display: flex;
  flex: none;
  font-size: 1.5rem;
  justify-content: center;
}
.content-card { padding: 2rem; }
.content-side-card {
  background: var(--theme-card, var(--card));
  border: 1px solid var(--theme-border, var(--border));
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(20, 20, 45, .07);
  padding: 1.1rem;
}
.content-side-card > :first-child { margin-top: 0; }
.content-side-card > :last-child { margin-bottom: 0; }
.content-side-review .stars { display: block; font-size: 1.05rem; margin: .45rem 0; }
.content-side-review h2, .content-side-upsells > h2 { font-size: 1.08rem; margin: .3rem 0 .45rem; }
.content-side-review p { color: var(--theme-muted, var(--muted)); font-size: .9rem; }
.content-upsell-list { display: grid; gap: .85rem; margin-top: .8rem; }
.content-upsell-card {
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 5%, var(--theme-card, white));
  border: 1px solid color-mix(in srgb, var(--theme-primary, var(--primary)) 25%, var(--theme-border, var(--border)));
  border-radius: 11px;
  overflow: hidden;
  padding: .85rem;
  position: relative;
}
.content-upsell-card .sale-badge {
  display: inline-flex;
  margin-bottom: .55rem;
  position: static;
}
.content-upsell-card h3 { font-size: 1rem; margin: 0 0 .35rem; }
.content-upsell-product-name { display: block; font-size: .9rem; margin-top: .45rem; }
.content-upsell-cover {
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  display: block;
  margin: 0 0 .7rem;
  object-fit: cover;
  width: 100%;
}
.content-upsell-copy {
  color: var(--theme-muted, var(--muted));
  font-size: .88rem;
  line-height: 1.5;
  margin: .35rem 0 .7rem;
  white-space: pre-line;
}
.content-upsell-price { align-items: baseline; display: flex; gap: .45rem; margin: .55rem 0; }
.content-upsell-price strong { color: var(--theme-primary, var(--primary)); font-size: 1.12rem; }
.content-upsell-count { font-size: .88rem; margin: .55rem 0; }
.upsell-deadline {
  align-items: center;
  color: var(--theme-primary, var(--primary));
  display: flex;
  font-size: .78rem;
  font-weight: 750;
  gap: .3rem;
  margin: .55rem 0;
}
.upsell-deadline[hidden], .upsell-deadline-field[hidden] { display: none; }
.upsell-products-dialog {
  max-height: min(88vh, 760px);
  max-width: 720px;
  overflow-y: auto;
  position: relative;
  text-align: left;
  width: min(92vw, 720px);
}
.upsell-products-close { position: absolute; right: .8rem; top: .8rem; }
.upsell-products-dialog > .sale-badge {
  display: inline-flex;
  margin: 0 0 .65rem;
  position: static;
}
.upsell-products-list { display: grid; gap: .65rem; margin-top: 1.1rem; }
.upsell-product-row {
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  display: grid;
  gap: .75rem;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  padding: .7rem;
}
.upsell-product-row > img, .upsell-product-row > .placeholder {
  align-items: center;
  background: var(--bg);
  border-radius: 8px;
  display: flex;
  height: 56px;
  justify-content: center;
  object-fit: cover;
  width: 64px;
}
.upsell-product-row > div { display: grid; gap: .15rem; min-width: 0; }
.upsell-product-row small { color: var(--primary); font-weight: 650; }
.upsell-modal-open { overflow: hidden; }
.content-builder-blocks { margin-top: 0; }

@media (max-width: 860px) {
  .content-layout,
  .content-layout-sidebar-left {
    display: flex;
    flex-direction: column;
  }
  .content-layout-sidebar-left .content-main-column,
  .content-layout-sidebar-left .content-sidebar { order: initial; }
  .content-layout.has-sticky-sidebar .content-sidebar { position: static; }
  .content-sidebar {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    width: 100%;
  }
  .content-head { flex-wrap: wrap; }
  .content-discord-benefit { flex-basis: 100%; width: 100%; margin-left: 0; }
}
@media (max-width: 560px) {
  .content-layout { padding-inline: .8rem; }
  .content-card { padding: 1.1rem; }
  .content-head { align-items: flex-start; }
  .content-cover { height: 60px; width: 78px; }
  .content-discord-benefit { grid-template-columns: auto minmax(0, 1fr); }
  .content-discord-actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .content-sidebar { display: grid; grid-template-columns: 1fr; }
  .upsell-product-row { align-items: start; grid-template-columns: 52px minmax(0, 1fr); }
  .upsell-product-row > img, .upsell-product-row > .placeholder { height: 48px; width: 52px; }
  .upsell-product-row .btn { grid-column: 1 / -1; width: 100%; }
}

/* ===== Rendered Editor.js content ===== */
.rendered-content { font-size: 1.02rem; }
.rendered-content :is(h1, h2, h3, h4, h5, h6) { font-weight: normal; }
.rendered-content :is(h1, h2, h3, h4, h5, h6) :is(b, strong) { font-weight: 700; }
.rendered-content h1 { font-size: 1.6rem; margin: 1.4em 0 .4em; }
.rendered-content h2 { font-size: 1.35rem; margin: 1.3em 0 .4em; }
.rendered-content h3 { font-size: 1.15rem; margin: 1.2em 0 .35em; }
.rendered-content p { margin: .6em 0; }
.rendered-content mark { background: #fff3a8; padding: 0 .15em; border-radius: 3px; }
.rendered-content .rb-divider {
  --rb-divider-color: #1f2937;
  --rb-divider-thickness: 1px;
  box-sizing: border-box;
  min-height: 28px;
  margin: 1.5em 0;
  color: var(--rb-divider-color);
}
.rendered-content .rb-divider--line, .rendered-content .rb-divider--dotted {
  border-top: var(--rb-divider-thickness) solid var(--rb-divider-color);
  transform: translateY(14px);
}
.rendered-content .rb-divider--dotted { border-top-style: dotted; }
.rendered-content .rb-divider--stars { text-align: center; letter-spacing: .55em; line-height: 28px; }
/* Citation : le texte est simplement décalé, avec un filet mi-transparent à gauche. */
.rendered-content .rb-quote {
  margin: 1.1em 0;
  padding: 0 0 0 1.15em;
  border-left: 3px solid color-mix(in srgb, currentColor 30%, transparent);
  background: none;
  border-radius: 0;
  color: inherit;
}
.rendered-content .rb-quote p { margin: 0 0 .35em; }
.rendered-content .rb-quote p:last-child { margin-bottom: 0; }
.rendered-content .rb-quote cite { color: var(--muted); font-size: .85rem; font-style: normal; }
.rendered-content .rb-image { margin: 1.2em 0; text-align: center; }
.rendered-content .rb-image img { max-width: 100%; border-radius: var(--radius); }
.rendered-content .rb-image.with-border img { border: 1px solid var(--border); }
.rendered-content .rb-image.with-background { background: #f0eff8; padding: 1rem; border-radius: var(--radius); }
.rendered-content .rb-image figcaption { color: var(--muted); font-size: .85rem; margin-top: .4em; }
.rendered-content .rb-embed { margin: 1.2em 0; }
.rendered-content .rb-embed iframe { width: 100%; aspect-ratio: 16/9; border-radius: var(--radius); border: 1px solid var(--border); }
.rendered-content .checklist { list-style: none; padding-left: .25rem; }
.rendered-content .check {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.1em; height: 1.1em; border: 1.5px solid var(--border); border-radius: 4px;
  font-size: .75em; vertical-align: -0.15em; color: #fff;
}
.rendered-content .check.checked { background: var(--primary); border-color: var(--primary); }

.rb-file {
  display: flex; align-items: center; gap: .9rem; padding: .85rem 1.1rem; margin: 1em 0;
  border: 1px solid var(--border); border-radius: var(--radius); background: #fafafe;
  color: var(--text); transition: border-color .15s, box-shadow .15s;
}
.rb-file:hover { text-decoration: none; border-color: var(--primary); box-shadow: 0 2px 10px rgba(92,75,234,.12); }
.rb-file-icon {
  min-width: 46px; height: 46px; border-radius: 8px; background: var(--primary); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700; padding: 0 .3rem;
}
.rb-file-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rb-file-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-file-size { color: var(--muted); font-size: .82rem; }
.rb-file-dl { color: var(--primary); font-weight: 600; font-size: .9rem; white-space: nowrap; }

.rb-columns { display: grid; gap: 1.25rem; margin: 1em 0; grid-template-columns: repeat(2, 1fr); }
.rb-columns.cols-3 { grid-template-columns: repeat(3, 1fr); }
.rendered-content .rb-col { min-width: 0; padding: 1rem; border: 1px solid #000; border-radius: 8px; }
@media (max-width: 700px) { .rb-columns, .rb-columns.cols-3 { grid-template-columns: 1fr; } }

/* ===== Bloc "Produit" (inséré dans les éditeurs de texte) ===== */
.rb-product {
  --rpb-btn: var(--primary); --rpb-bg: var(--card); --rpb-radius: 12px;
  display: grid; align-items: center; gap: 0 .9rem; margin: 1em 0; padding: .75rem 1rem;
  background: var(--rpb-bg); border-radius: var(--rpb-radius); border: 1px solid transparent;
  text-decoration: none; color: var(--text); cursor: pointer; width: 100%;
  font: inherit; text-align: left; transition: box-shadow .15s, transform .15s;
  grid-template-columns: auto 1fr auto auto; appearance: none; -webkit-appearance: none;
}
.rb-product:hover { text-decoration: none; box-shadow: 0 6px 18px rgba(30,30,60,.1); transform: translateY(-1px); }
.rb-product-border { border-color: var(--border); }
.rb-product-icon {
  grid-row: 1 / 3; width: 48px; height: 48px; border-radius: 8px; overflow: hidden;
  background: #ecebf5; display: flex; align-items: center; justify-content: center; color: var(--muted);
}
.rb-product-icon img { width: 100%; height: 100%; object-fit: cover; }
.rb-product-info { grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: center; gap: .2rem; min-width: 0; }
.rb-product-title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-product-stars { color: #f0a01e; font-size: .85rem; }
.rb-product-stars-count, .rb-product-stars-empty { color: var(--muted); font-size: .82rem; }
.rb-product-price { grid-row: 1 / 3; display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.rb-product-price-old { text-decoration: line-through; color: var(--theme-old-price, var(--muted)); font-size: .82rem; }
.rb-product-price-now { color: var(--theme-price, currentColor); font-weight: 700; }
.rb-product-cta {
  grid-row: 1 / 3; width: 30px; height: 30px; border-radius: 50%; background: var(--rpb-btn); color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

.rb-product--card { grid-template-columns: 1fr; text-align: center; }
.rb-product--card .rb-product-icon { grid-row: auto; width: 100%; height: 140px; border-radius: 8px; margin-bottom: .6rem; }
.rb-product--card .rb-product-info { grid-row: auto; align-items: center; }
.rb-product--card .rb-product-price { grid-row: auto; align-items: center; flex-direction: row; gap: .4rem; margin-top: .4rem; }
.rb-product--card .rb-product-cta { grid-row: auto; margin: .6rem auto 0; }

.rb-product--compact { grid-template-columns: auto 1fr auto auto; padding: .55rem .8rem; }
.rb-product--compact .rb-product-icon { width: 32px; height: 32px; }
.rb-product--compact .rb-product-info { flex-direction: row; align-items: center; }
.rb-product--compact .rb-product-cta { width: 26px; height: 26px; }

.rb-product-form { display: contents; }

/* ===== Soldes / prix barrés ===== */
.price-old { text-decoration: line-through; color: var(--theme-old-price, var(--muted)); font-weight: 500; }
.buy-price .price-old { font-size: .9rem; font-weight: 500; }
.sale-note { color: var(--theme-sale, var(--red)); font-size: .88rem; font-weight: 600; margin: -.5rem 0 1rem; }
.product-cover { position: relative; }
.sale-badge {
  position: absolute; top: .55rem; left: .55rem; background: var(--theme-sale, var(--red)); color: #fff;
  padding: .15rem .55rem; border-radius: 99px; font-size: .78rem; font-weight: 700;
}
.product-promo-badges {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  left: .55rem;
  position: absolute;
  top: .55rem;
  z-index: 2;
}
.product-promo-badges .sale-badge {
  align-items: center;
  display: inline-flex;
  gap: .22rem;
  left: auto;
  position: static;
  top: auto;
  width: fit-content;
}
.product-promo-badges .upsell-badge { background: var(--primary); }
.product-promo-badges.is-top-right { left: auto; right: .55rem; align-items: flex-end; }
.product-promo-badges.is-bottom-left { top: auto; bottom: .55rem; }
.product-promo-badges.is-bottom-right { top: auto; bottom: .55rem; left: auto; right: .55rem; align-items: flex-end; }
.badge-red { background: #fdecea; color: var(--red); }

/* ===== Collections ===== */
.collection-head { text-align: center; padding: 1.5rem 1rem 2rem; }
.collection-head h1 { margin-bottom: .2rem; }
.collection-desc { color: var(--muted); max-width: 600px; margin: .6rem auto 0; }
.check-list {
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
  max-height: 300px; overflow-y: auto;
}
.check-item {
  display: flex; align-items: center; gap: .6rem; padding: .55rem .85rem;
  border-bottom: 1px solid var(--border); cursor: pointer; font-size: .95rem;
}
.check-item:last-child { border-bottom: none; }
.check-item:hover { background: #fafafe; }
.check-item input { width: auto; }

/* ===== Marketing ===== */
.marketing-intro { margin: -1rem 0 1.5rem; }
.marketing-section {
  margin-bottom: 2.5rem;
  animation: fadeInUp 0.4s ease both;
}
.marketing-section:nth-of-type(1) { animation-delay: .04s; }
.marketing-section:nth-of-type(2) { animation-delay: .1s; }
.marketing-section:nth-of-type(3) { animation-delay: .16s; }
.marketing-section .page-head { margin-bottom: 1rem; }
.marketing-section h2 { margin: 0; }
.marketing-tabs, .communication-tabs { margin-top: -.45rem; margin-bottom: 1.7rem; }
.marketing-tab-panel { animation: fadeInUp .4s ease both; }
.marketing-tab-panel .marketing-section { animation: none; }
.marketing-page :is(.marketing-section, .marketing-tab-panel) { animation: none; }
.dashboard-content-enter { animation: dashboardContentIn .4s ease both; }
@keyframes dashboardContentIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
/* Accueil du dashboard, une fois par session : entrée en cascade des blocs.
   Remplissage « backwards » seulement, pour rendre la main aux survols
   (translateY) dès la fin de l'animation. */
.dashboard-intro .dashboard-welcome-bento::before {
  content: ""; position: absolute; z-index: 0; top: -40%; left: -8%;
  width: min(620px, 80vw); height: 240%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(91,104,227,.18), rgba(162,120,240,.08) 55%, transparent);
  animation: dashboardIntroGlow 2.6s ease-out both;
}
.dashboard-intro .dashboard-welcome-copy h1 { animation: dashboardIntroTitle .8s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-welcome-copy h1 span {
  background: linear-gradient(100deg, #5b68e3 0%, #5b68e3 38%, #b18cff 50%, #5b68e3 62%, #5b68e3 100%);
  background-size: 250% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: dashboardIntroShimmer 1.6s .55s ease-in-out backwards;
}
.dashboard-intro .dashboard-welcome-copy > p { animation: dashboardIntroRise .7s .15s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-welcome-actions > * { animation: dashboardIntroRise .6s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-welcome-actions > :nth-child(1) { animation-delay: .26s; }
.dashboard-intro .dashboard-welcome-actions > :nth-child(2) { animation-delay: .33s; }
.dashboard-intro .dashboard-welcome-actions > :nth-child(3) { animation-delay: .4s; }
.dashboard-intro .dashboard-account-warning,
.dashboard-intro > .alert { animation: dashboardIntroRise .6s cubic-bezier(.2,.8,.2,1) backwards; }

.dashboard-intro .dashboard-metric { animation: dashboardIntroPop .75s cubic-bezier(.18,.9,.25,1.15) backwards; }
.dashboard-intro .dashboard-metric:nth-child(1) { animation-delay: .38s; }
.dashboard-intro .dashboard-metric:nth-child(2) { animation-delay: .46s; }
.dashboard-intro .dashboard-metric:nth-child(3) { animation-delay: .54s; }
.dashboard-intro .dashboard-metric:nth-child(4) { animation-delay: .62s; }
.dashboard-intro .dashboard-metric-icon { animation: dashboardIntroIcon .8s cubic-bezier(.18,.9,.25,1.3) backwards; }
.dashboard-intro .dashboard-metric:nth-child(1) .dashboard-metric-icon { animation-delay: .6s; }
.dashboard-intro .dashboard-metric:nth-child(2) .dashboard-metric-icon { animation-delay: .68s; }
.dashboard-intro .dashboard-metric:nth-child(3) .dashboard-metric-icon { animation-delay: .76s; }
.dashboard-intro .dashboard-metric:nth-child(4) .dashboard-metric-icon { animation-delay: .84s; }
.dashboard-intro .dashboard-metric::before {
  content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.75) 50%, transparent 70%);
  transform: translateX(-120%); animation: dashboardIntroSheen 1.1s ease-in-out both;
}
.dashboard-intro .dashboard-metric:nth-child(1)::before { animation-delay: .95s; }
.dashboard-intro .dashboard-metric:nth-child(2)::before { animation-delay: 1.05s; }
.dashboard-intro .dashboard-metric:nth-child(3)::before { animation-delay: 1.15s; }
.dashboard-intro .dashboard-metric:nth-child(4)::before { animation-delay: 1.25s; }
html[data-dashboard-theme="dark"] .dashboard-intro .dashboard-metric::before {
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.12) 50%, transparent 70%);
}

.dashboard-intro .getting-started { animation: dashboardIntroRise .7s .7s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-main-stack > .dashboard-bento-card { animation: dashboardIntroRise .75s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-main-stack > .dashboard-bento-card:nth-child(1) { animation-delay: .78s; }
.dashboard-intro .dashboard-main-stack > .dashboard-bento-card:nth-child(2) { animation-delay: .92s; }
.dashboard-intro .dashboard-product-row:not([hidden]) { animation: dashboardIntroRow .5s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-product-row:nth-child(1) { animation-delay: .95s; }
.dashboard-intro .dashboard-product-row:nth-child(2) { animation-delay: 1s; }
.dashboard-intro .dashboard-product-row:nth-child(3) { animation-delay: 1.05s; }
.dashboard-intro .dashboard-product-row:nth-child(4) { animation-delay: 1.1s; }
.dashboard-intro .dashboard-product-row:nth-child(5) { animation-delay: 1.15s; }
.dashboard-intro .dashboard-product-row:nth-child(6) { animation-delay: 1.2s; }
.dashboard-intro .dashboard-product-row:nth-child(7) { animation-delay: 1.25s; }
.dashboard-intro .dashboard-product-row:nth-child(8) { animation-delay: 1.3s; }
.dashboard-intro .dashboard-product-row:nth-child(9) { animation-delay: 1.35s; }
.dashboard-intro .dashboard-product-row:nth-child(n+10) { animation-delay: 1.4s; }
.dashboard-intro .dashboard-side-stack > .dashboard-bento-card { animation: dashboardIntroSlide .75s cubic-bezier(.2,.8,.2,1) backwards; }
.dashboard-intro .dashboard-side-stack > .dashboard-bento-card:nth-child(1) { animation-delay: .84s; }
.dashboard-intro .dashboard-side-stack > .dashboard-bento-card:nth-child(2) { animation-delay: .96s; }
.dashboard-intro .dashboard-side-stack > .dashboard-bento-card:nth-child(3) { animation-delay: 1.08s; }
.dashboard-intro .dashboard-ai-card { animation-name: dashboardIntroSlide, dashboardIntroHalo; animation-duration: .75s, 1.8s; animation-delay: .96s, 1.5s; animation-timing-function: cubic-bezier(.2,.8,.2,1), ease-out; }
.dashboard-intro .dashboard-quick-grid > a { animation: dashboardIntroPop .55s cubic-bezier(.18,.9,.25,1.15) backwards; }
.dashboard-intro .dashboard-quick-grid > a:nth-child(1) { animation-delay: 1.02s; }
.dashboard-intro .dashboard-quick-grid > a:nth-child(2) { animation-delay: 1.08s; }
.dashboard-intro .dashboard-quick-grid > a:nth-child(3) { animation-delay: 1.14s; }
.dashboard-intro .dashboard-quick-grid > a:nth-child(4) { animation-delay: 1.2s; }

@keyframes dashboardIntroGlow {
  0% { opacity: 0; transform: scale(.6); }
  35% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.15); }
}
@keyframes dashboardIntroTitle {
  from { opacity: 0; filter: blur(8px); transform: translateY(18px); letter-spacing: -.01em; }
  to { opacity: 1; filter: blur(0); transform: none; }
}
@keyframes dashboardIntroShimmer {
  from { background-position: 100% 0; }
  to { background-position: 0 0; }
}
@keyframes dashboardIntroRise {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}
@keyframes dashboardIntroSlide {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: none; }
}
@keyframes dashboardIntroRow {
  from { opacity: 0; transform: translateX(-14px); }
  to { opacity: 1; transform: none; }
}
@keyframes dashboardIntroPop {
  0% { opacity: 0; transform: translateY(26px) scale(.92); }
  100% { opacity: 1; transform: none; }
}
@keyframes dashboardIntroIcon {
  0% { opacity: 0; transform: scale(.3) rotate(-35deg); }
  100% { opacity: 1; transform: none; }
}
@keyframes dashboardIntroSheen {
  from { transform: translateX(-120%); }
  to { transform: translateX(120%); }
}
@keyframes dashboardIntroHalo {
  0% { box-shadow: 0 0 0 0 rgba(91,104,227,.35); }
  100% { box-shadow: 0 0 0 18px rgba(91,104,227,0); }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-intro *, .dashboard-intro *::before { animation: none !important; }
  .dashboard-intro .dashboard-welcome-bento::before, .dashboard-intro .dashboard-metric::before { display: none; }
}
.feature-desc { margin: -.4rem 0 1rem; max-width: 760px; }
.field-optional {
  margin-left: .35rem; color: var(--muted); font-size: .72rem; font-weight: 500;
}
.promo-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: #efeff6; padding: .1em .45em; border-radius: 5px; font-weight: 700; font-size: .88em;
}
/* Copie du code d'une promo : discrete, revelee au survol de la ligne — et
   toujours presente au clavier, sinon elle serait inatteignable. Les couleurs
   passent par les jetons de surface, seuls a suivre le theme sombre. */
.promo-code-cell { display: inline-flex; align-items: center; gap: .3rem; }
.promo-code-copy {
  display: inline-flex; align-items: center;
  opacity: 0; transition: opacity .15s ease;
}
tr:hover .promo-code-copy, .promo-code-copy:focus-within { opacity: 1; }
.promo-copy-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; padding: 0; border: 0; border-radius: 6px;
  background: transparent; color: var(--muted); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.promo-copy-btn:hover { background: var(--surface-3, #efeff6); color: var(--primary); }
.promo-copy-btn .icon { width: 15px; height: 15px; }
.promo-copy-btn.is-copied, .promo-copy-link.is-copied {
  color: var(--green); background: var(--green-bg);
}
.promo-copy-link.is-copied .icon { color: var(--green); }
@media (prefers-reduced-motion: reduce) {
  .promo-code-copy, .promo-copy-btn { transition: none; }
}
@media (hover: none) {
  .promo-code-copy { opacity: 1; }
}

.form-narrow { max-width: 640px; margin: 0 auto; }
select:disabled { opacity: .5; background: #f2f2f7; }

/* ===== Perimetre d'une promo : cartes "Applies to" ===== */
.promo-fields { display: grid; gap: .55rem; }
.promo-fields > .field-label { margin-bottom: 0; }
.promo-scope-grid { display: grid; gap: .5rem; }
.promo-scope-card { position: relative; display: block; cursor: pointer; }
.promo-scope-card input {
  position: absolute; width: 1px; height: 1px; margin: 0; padding: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.promo-scope-body {
  display: flex; align-items: center; gap: .7rem;
  padding: .65rem .8rem; border: 1px solid var(--border); border-radius: 12px;
  background: var(--card);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.promo-scope-body::after {
  content: ""; flex: none; width: 17px; height: 17px; margin-left: auto;
  border: 2px solid var(--border); border-radius: 50%; background: var(--card);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.promo-scope-card:hover .promo-scope-body {
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
  background: color-mix(in srgb, var(--primary) 3%, var(--card));
}
.promo-scope-card input:focus-visible + .promo-scope-body {
  border-color: var(--primary); box-shadow: 0 0 0 3px rgba(92, 75, 234, .16);
}
.promo-scope-card input:checked + .promo-scope-body {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 7%, var(--card));
  box-shadow: 0 1px 8px rgba(92, 75, 234, .12);
}
.promo-scope-card input:checked + .promo-scope-body::after {
  border-color: var(--primary); background: var(--primary);
  box-shadow: inset 0 0 0 3px var(--card);
}
.promo-scope-icon {
  display: grid; place-items: center; flex: none; width: 34px; height: 34px;
  border-radius: 10px; color: var(--muted);
  background: color-mix(in srgb, var(--primary) 8%, var(--card));
  transition: color .18s ease, background .18s ease;
}
.promo-scope-icon .icon { width: 17px; height: 17px; }
.promo-scope-card input:checked + .promo-scope-body .promo-scope-icon {
  color: #fff; background: var(--primary);
}
.promo-scope-text { display: grid; gap: .1rem; min-width: 0; }
.promo-scope-text strong { font-size: .92rem; font-weight: 650; line-height: 1.25; }
.promo-scope-text small { color: var(--muted); font-size: .74rem; }
.promo-scope-card.is-disabled { cursor: not-allowed; }
.promo-scope-card.is-disabled .promo-scope-body { opacity: .5; }
.promo-scope-card.is-disabled:hover .promo-scope-body {
  border-color: var(--border); background: var(--card);
}
.promo-scope-detail {
  display: grid; gap: .3rem; margin: .2rem 0 0 .5rem; padding-left: .85rem;
  border-left: 2px solid color-mix(in srgb, var(--primary) 35%, var(--border));
}
.promo-scope-detail[hidden] { display: none; }
.promo-scope-detail .field-label { margin: 0; }
.promo-scope-detail p.hint { margin: 0; }
.promo-scope-detail.is-revealing { animation: promoScopeReveal .22s ease both; }

/* Liste filtrable produit / collection */
.promo-picker { display: grid; gap: .4rem; }
.promo-picker-search {
  display: flex; align-items: center; gap: .5rem; padding: 0 .65rem;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.promo-picker-search:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(92, 75, 234, .13); }
.promo-picker-search .icon { flex: none; width: 15px; height: 15px; color: var(--muted); }
.promo-picker-search input {
  width: 100%; min-width: 0; margin: 0; padding: .5rem 0;
  border: 0; border-radius: 0; outline: 0; background: transparent;
  color: var(--text); font: inherit; font-size: .9rem;
}
.promo-picker-search input:focus { outline: 0; box-shadow: none; }
.promo-picker-list {
  display: grid; gap: 2px; max-height: 186px; overflow-y: auto;
  margin: 0; padding: .25rem; list-style: none;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
}
.promo-picker-list li[hidden] { display: none; }
.promo-picker-option {
  display: flex; align-items: center; gap: .55rem; width: 100%; margin: 0;
  padding: .42rem .55rem; border: 1px solid transparent; border-radius: 8px;
  background: transparent; color: var(--text);
  font: inherit; font-size: .88rem; text-align: left; cursor: pointer;
  transition: color .14s ease, background .14s ease, border-color .14s ease;
}
.promo-picker-option input[type="checkbox"] {
  position: absolute; width: 1px; height: 1px; margin: 0; padding: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.promo-picker-check {
  position: relative; flex: none; width: 16px; height: 16px;
  border: 1.5px solid var(--border); border-radius: 5px; background: var(--card);
  transition: border-color .14s ease, background .14s ease;
}
.promo-picker-check::after {
  content: ""; position: absolute; top: 1px; left: 4.5px;
  width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(.4); opacity: 0;
  transition: transform .16s cubic-bezier(.2, .8, .2, 1), opacity .12s ease;
}
.promo-picker-option:hover .promo-picker-check {
  border-color: color-mix(in srgb, var(--primary) 55%, var(--border));
}
.promo-picker-option input:checked + .promo-picker-check {
  border-color: var(--primary); background: var(--primary);
}
.promo-picker-option input:checked + .promo-picker-check::after {
  transform: rotate(45deg) scale(1); opacity: 1;
}
.promo-picker-option input:focus-visible + .promo-picker-check {
  box-shadow: 0 0 0 3px rgba(92, 75, 234, .2);
}
.promo-picker-option:hover { background: color-mix(in srgb, var(--primary) 8%, var(--card)); }
.promo-picker-option.is-selected {
  border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
  background: color-mix(in srgb, var(--primary) 12%, var(--card));
  color: var(--primary); font-weight: 650;
}
.promo-picker-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.promo-picker-meta { flex: none; color: var(--muted); font-size: .74rem; font-weight: 650; }
.promo-picker-option.is-selected .promo-picker-meta { color: color-mix(in srgb, var(--primary) 70%, var(--muted)); }
.promo-picker-empty { margin: 0; }
.promo-picker-count { margin: 0; font-weight: 650; }
.promo-picker-count.is-empty { color: var(--red); font-weight: 600; }
.promo-scope-versions { display: grid; gap: .35rem; margin-top: .7rem; }
.promo-scope-versions[hidden] { display: none; }
.promo-scope-versions .field-label { margin: 0; }
.promo-scope-versions .hint { margin: 0; }
.promo-version-rows { display: grid; gap: .4rem; }
.promo-version-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, 44%);
  gap: .55rem; align-items: center;
}
.promo-version-name {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: .86rem; font-weight: 650;
}
.promo-version-row select { margin: 0; }
@media (max-width: 520px) {
  .promo-version-row { grid-template-columns: 1fr; gap: .25rem; }
}
.promo-scope-version { display: grid; gap: .3rem; margin-top: .6rem; }
.promo-scope-version[hidden] { display: none; }
.promo-scope-version .field-label { margin: 0; }
.promo-scope-version .hint { margin: 0; }
@keyframes promoScopeReveal {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Champ chiffre avec suffixe colle a droite (devise, %, unite) */
.input-shell {
  display: flex; align-items: stretch; width: 100%; overflow: hidden;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.input-shell:hover { border-color: color-mix(in srgb, var(--primary) 42%, var(--border)); }
.input-shell:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(92, 75, 234, .13); }
.input-shell input {
  width: 100%; min-width: 0; margin: 0; padding: .55rem .75rem;
  border: 0; border-radius: 0; outline: 0; background: transparent;
  color: var(--text); font: inherit; font-size: .95rem;
}
.input-shell input:focus { outline: 0; box-shadow: none; }
.input-shell small {
  display: inline-flex; align-items: center; max-width: 45%; padding: 0 .75rem;
  border-left: 1px solid var(--border);
  background: color-mix(in srgb, var(--primary) 6%, var(--card));
  color: var(--muted); font-size: .78rem; font-weight: 750; white-space: nowrap;
}

/* ===== Champ date : calendrier maison (public/js/pretty-date.js) ===== */
.date-field { position: relative; }
.date-field-native {
  position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; border: 0;
  overflow: hidden; clip-path: inset(50%); opacity: 0; pointer-events: none;
}
.date-field-trigger {
  display: flex; align-items: center; gap: .55rem; width: 100%;
  padding: .55rem 2.1rem .55rem .7rem;
  border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--card); color: var(--text);
  font: inherit; font-size: .95rem; text-align: left; cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.date-field-trigger:hover { border-color: color-mix(in srgb, var(--primary) 42%, var(--border)); }
.date-field-trigger:focus-visible,
.date-field.is-open .date-field-trigger {
  border-color: var(--primary); box-shadow: 0 0 0 3px rgba(92, 75, 234, .13); outline: 0;
}
.date-field-trigger.is-empty .date-field-value { color: var(--muted); }
.date-field-icon { display: grid; place-items: center; flex: none; color: var(--primary); }
.date-field-icon svg { width: 16px; height: 16px; }
.date-field-value { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.date-field-clear {
  position: absolute; top: 50%; right: .45rem; transform: translateY(-50%);
  display: grid; place-items: center; width: 22px; height: 22px; padding: 0;
  border: 0; border-radius: 50%; background: transparent;
  color: var(--muted); font-size: 1.05rem; line-height: 1; cursor: pointer;
  transition: color .15s ease, background .15s ease;
}
.date-field-clear:hover { color: var(--red); background: color-mix(in srgb, var(--red) 12%, transparent); }
.date-field-clear[hidden] { display: none; }
.date-field-pop {
  position: absolute; z-index: 30; top: calc(100% + .4rem); left: 0;
  width: 268px; max-width: min(268px, calc(100vw - 2.5rem)); padding: .7rem;
  border: 1px solid var(--border); border-radius: 14px; background: var(--card);
  box-shadow: 0 14px 34px rgba(24, 27, 47, .16);
  animation: dateFieldPopIn .17s cubic-bezier(.2, .8, .2, 1) both;
}
.date-field-pop[hidden] { display: none; }
.date-field-pop.is-right { left: auto; right: 0; }
.date-field-pop.is-above {
  top: auto; bottom: calc(100% + .4rem);
  animation-name: dateFieldPopInAbove;
}
@keyframes dateFieldPopInAbove {
  from { opacity: 0; transform: translateY(6px) scale(.98); }
  to { opacity: 1; transform: none; }
}
@keyframes dateFieldPopIn {
  from { opacity: 0; transform: translateY(-6px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.date-field-head { display: flex; align-items: center; gap: .3rem; margin-bottom: .5rem; }
.date-field-title { flex: 1; text-align: center; font-size: .86rem; font-weight: 700; }
.date-field-nav {
  display: grid; place-items: center; flex: none; width: 26px; height: 26px; padding: 0;
  border: 1px solid transparent; border-radius: 8px; background: transparent;
  color: var(--muted); font-size: 1rem; line-height: 1; cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.date-field-nav:hover {
  color: var(--primary); border-color: var(--border);
  background: color-mix(in srgb, var(--primary) 7%, var(--card));
}
.date-field-weekdays, .date-field-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}
.date-field-weekdays span {
  padding: .2rem 0; color: var(--muted);
  font-size: .64rem; font-weight: 750; text-align: center; text-transform: uppercase;
}
.date-field-day {
  padding: .32rem 0; border: 1px solid transparent; border-radius: 8px;
  background: transparent; color: var(--text);
  font: inherit; font-size: .8rem; line-height: 1.5; text-align: center; cursor: pointer;
  transition: color .13s ease, background .13s ease, border-color .13s ease;
}
.date-field-day:hover { background: color-mix(in srgb, var(--primary) 10%, var(--card)); }
.date-field-day.is-outside { color: color-mix(in srgb, var(--muted) 60%, transparent); }
.date-field-day.is-today { border-color: color-mix(in srgb, var(--primary) 45%, var(--border)); font-weight: 750; }
.date-field-day.is-selected {
  border-color: var(--primary); background: var(--primary); color: #fff; font-weight: 750;
}
.date-field-foot {
  display: flex; gap: .4rem; margin-top: .55rem; padding-top: .5rem;
  border-top: 1px solid var(--border);
}
.date-field-action {
  flex: 1; padding: .34rem .5rem; border: 1px solid var(--border); border-radius: 8px;
  background: var(--card); color: var(--muted);
  font: inherit; font-size: .75rem; font-weight: 650; cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.date-field-action:hover {
  color: var(--primary); border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
  background: color-mix(in srgb, var(--primary) 7%, var(--card));
}

/* ===== Bloc "Options avancees" repliable ===== */
.advanced {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 0; margin-bottom: 1.25rem; background: #fafafe;
}
.advanced > summary {
  display: flex; align-items: center; gap: .5rem;
  padding: .75rem 1rem; cursor: pointer; list-style: none;
  font-weight: 600; font-size: .95rem;
  transition: color .18s ease;
}
.advanced > summary::-webkit-details-marker { display: none; }
.advanced > summary:hover { color: var(--primary); }
.advanced > summary::after {
  content: ""; flex: none; width: 8px; height: 8px; margin-left: auto; margin-right: .2rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  border-radius: 1px; transform: translateY(-2px) rotate(45deg);
  transition: transform .25s cubic-bezier(.2, .8, .2, 1);
}
.advanced[open]:not(.is-closing) > summary::after { transform: translateY(2px) rotate(225deg); }
.advanced > .advanced-body { padding: 0 1rem 1rem; }
.advanced.is-opening > .advanced-body,
.advanced.is-closing > .advanced-body { overflow: hidden; }

.tracked-link-flash { margin-bottom: 1rem; }
.tracked-link-layout {
  display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(250px, .65fr);
  gap: 1.2rem; align-items: start; margin-bottom: 2rem;
}
.tracked-link-builder { margin: 0; }
.tracked-link-heading {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border);
}
.tracked-link-heading h2, .tracked-link-heading p { margin: 0; }
.tracked-link-heading p { margin-top: .3rem; max-width: 680px; }
.tracked-link-heading-icon {
  display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px;
  border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--primary), #8272ed);
  box-shadow: 0 8px 22px rgba(91, 104, 227, .22);
}
.tracked-link-heading-icon .icon { width: 22px; height: 22px; }
.tracked-link-utm-grid { align-items: start; }
.tracked-link-custom-url[hidden] { display: none; }
.tracked-link-advanced { margin-top: .2rem; }
.tracked-link-advanced .field { margin: 0; }
.tracked-link-preview {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .8rem;
  margin: .4rem 0 1.1rem; padding: .85rem; border: 1px solid #d9d6f6;
  border-radius: 12px; background: linear-gradient(135deg, #f7f6ff, #fbfbff);
}
.tracked-link-preview > div { display: grid; gap: .35rem; min-width: 0; }
.tracked-link-preview code {
  display: block; max-width: 100%; overflow: hidden; color: #4e48a7;
  font-size: .78rem; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap;
}
.tracked-link-preview .is-copied, .tracked-link-copy.is-copied {
  color: var(--green); border-color: color-mix(in srgb, var(--green) 45%, var(--border));
}
.tracked-link-form-actions {
  display: flex; justify-content: flex-end; align-items: center; gap: .6rem;
  padding-top: 1rem; border-top: 1px solid var(--border);
}
.tracked-link-guide {
  position: sticky; top: 1rem; margin: 0; background: linear-gradient(150deg, #23204e, #4e46a7);
  border: 0; color: #fff;
}
.tracked-link-guide h2 { color: #fff; }
.tracked-link-guide .section-kicker { color: #c9c5ff; }
.tracked-link-guide .btn { color: #fff; border-color: rgba(255, 255, 255, .3); }
.tracked-link-guide .btn:hover { background: rgba(255, 255, 255, .1); }
.tracked-link-tips { display: grid; gap: .9rem; padding: 0; margin: 1.1rem 0 1.25rem; list-style: none; }
.tracked-link-tips li { color: #dedcff; font-size: .88rem; line-height: 1.5; }
.tracked-link-tips strong { display: block; color: #fff; }
.tracked-link-tips code { color: #fff; background: rgba(255, 255, 255, .12); }
.tracked-link-results { margin-top: .5rem; }
.tracked-link-results .page-head p { margin: .25rem 0 0; }
.tracked-link-stats { grid-template-columns: repeat(4, minmax(150px, 1fr)); margin-bottom: 1.2rem; }
.tracked-link-list-tools {
  display: flex; align-items: center; justify-content: flex-start; gap: .6rem;
  margin: 0 0 .75rem;
}
.tracked-link-search {
  position: relative; display: flex; align-items: center;
  flex: 0 1 520px; width: min(100%, 520px);
}
.tracked-link-search-icon {
  position: absolute; left: .8rem; z-index: 1; display: grid; place-items: center;
  color: var(--muted); pointer-events: none;
}
.tracked-link-search-icon .icon { width: 17px; height: 17px; }
.tracked-link-search input {
  width: 100%; min-height: 42px; padding: .62rem 2.45rem;
  color: inherit; background: var(--card, #fff); border: 1px solid var(--border);
  border-radius: 10px; font: inherit; font-size: .94rem;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.tracked-link-search input:focus {
  outline: none; border-color: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);
}
.tracked-link-search input::-webkit-search-cancel-button { display: none; }
.tracked-link-search-clear {
  position: absolute; right: .5rem; display: grid; place-items: center;
  width: 28px; height: 28px; padding: 0; color: var(--muted);
  background: transparent; border: 0; border-radius: 50%; font-size: 1.2rem; cursor: pointer;
}
.tracked-link-search-clear:hover { color: var(--primary); background: var(--bg); }
.tracked-link-list-tools select { min-height: 42px; }
.tracked-link-list-tools select { width: auto; min-width: 135px; }
.tracked-link-table { min-width: 1050px; }
.tracked-link-table td { vertical-align: top; }
.tracked-link-name { display: flex; align-items: center; gap: .45rem; margin-bottom: .2rem; }
.tracked-link-name strong { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tracked-link-url {
  display: block; max-width: 350px; overflow: hidden; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .75rem; text-overflow: ellipsis; white-space: nowrap;
}
.tracked-link-destination, .tracked-link-table td small, .tracked-link-dimensions {
  display: block; margin-top: .2rem; color: var(--muted); font-size: .76rem;
}
.tracked-link-destination {
  max-width: 350px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tracked-link-actions { min-width: 205px; }
.tracked-link-actions .inline-form { display: inline; }
.tracked-link-no-results { padding: 1rem; text-align: center; }
.table-scroll { max-width: 100%; overflow-x: auto; border-radius: var(--radius); }
.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}

@media (max-width: 900px) {
  .tracked-link-layout { grid-template-columns: 1fr; }
  .tracked-link-guide { position: static; }
}
@media (max-width: 680px) {
  .tracked-link-stats { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
  .tracked-link-preview { grid-template-columns: 1fr; }
  .tracked-link-preview .btn { justify-self: start; }
  .tracked-link-list-tools { align-items: stretch; flex-direction: column; }
  .tracked-link-search { flex-basis: auto; width: 100%; }
  .tracked-link-list-tools select { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .marketing-section, .marketing-tab-panel, .dashboard-content-enter { animation: none; }
}

/* ===== Checkout : coupon ===== */
.coupon-form { display: flex; gap: .5rem; }
.coupon-form input { flex: 1; }
.coupon-error { color: var(--red); font-size: .88rem; margin: .5rem 0 0; }

/* ===== Footer ===== */
.footer { text-align: center; color: var(--muted); font-size: .85rem; padding: 1.5rem; border-top: 1px solid var(--border); }
.scaleedges-dashboard-footer {
  position: relative; isolation: isolate; margin-top: 3.5rem; overflow: hidden;
  color: #bec6e1; background: #131b3d; border-top: 1px solid rgba(255,255,255,.08);
}
.dashboard-footer-orb {
  position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); pointer-events: none;
}
.dashboard-footer-orb-one {
  top: -240px; left: -150px; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(91,104,227,.25), rgba(91,104,227,0) 68%);
}
.dashboard-footer-orb-two {
  right: -190px; bottom: -280px; width: 560px; height: 560px;
  background: radial-gradient(circle, rgba(93,201,196,.1), rgba(93,201,196,0) 69%);
}
.dashboard-footer-inner { width: min(1300px, 100%); margin: 0 auto; padding: 0 24px 24px; }
.dashboard-footer-grid {
  display: grid; grid-template-columns: minmax(250px, 1.45fr) repeat(3, minmax(150px, .72fr));
  gap: clamp(28px, 4vw, 62px); padding: 58px 0 52px;
}
.dashboard-footer-logo {
  display: inline-flex; align-items: center; gap: 9px; color: #fff;
  font-size: 1.2rem; font-weight: 820; letter-spacing: -.045em;
}
.dashboard-footer-logo:hover { color: #fff; text-decoration: none; }
.dashboard-footer-logo img { display: block; width: 42px; height: 42px; object-fit: contain; }
.dashboard-footer-logo > span > span { color: #7d89f0; }
.dashboard-footer-brand > p { max-width: 315px; margin: 17px 0 0; color: #9ea7ca; font-size: .8rem; line-height: 1.65; }
.dashboard-footer-socials { display: flex; gap: 8px; margin-top: 20px; }
.dashboard-footer-socials a {
  display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255,255,255,.12);
  border-radius: 9px; color: #ccd2e8; background: rgba(255,255,255,.04);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.dashboard-footer-socials a:hover {
  border-color: rgba(255,255,255,.2); color: #fff; background: rgba(255,255,255,.1);
  text-decoration: none; transform: translateY(-2px);
}
.dashboard-footer-socials .icon { width: 15px; height: 15px; }
/* Logos officiels en blanc ; X et Instagram, plus denses, un cran plus petits. */
.dashboard-footer-socials a, .marketing-footer-socials a { color: #fff; }
.dashboard-footer-socials :is(.icon-x-logo, .icon-instagram),
.marketing-footer-socials :is(.icon-x-logo, .icon-instagram) { width: 14px; height: 14px; }
.dashboard-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.dashboard-footer-column > strong {
  margin-bottom: 5px; color: #fff; font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.dashboard-footer-column a {
  display: inline-flex; align-items: center; gap: 7px; color: #aeb6d3; font-size: .75rem;
  transition: color .18s ease, transform .18s ease;
}
.dashboard-footer-column a:hover { color: #fff; text-decoration: none; transform: translateX(2px); }
.dashboard-footer-column a .icon { display: none; }
.dashboard-footer-bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); color: #7f89ac; font-size: .66rem;
}
.dashboard-footer-bottom p { margin: 0; }
.dashboard-footer-bottom nav { display: flex; align-items: center; justify-content: flex-end; gap: 8px 18px; flex-wrap: wrap; }
.dashboard-footer-bottom a { color: #8f99bd; }
.dashboard-footer-bottom a:hover { color: #fff; text-decoration: none; }
@media (max-width: 920px) {
  .dashboard-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 28px; }
  .dashboard-footer-brand { grid-column: 1 / -1; }
  .dashboard-footer-brand > p { max-width: 420px; }
}
@media (max-width: 620px) {
  .dashboard-footer-inner { padding-right: 18px; padding-left: 18px; }
  .dashboard-footer-grid { grid-template-columns: 1fr 1fr; gap: 34px 22px; padding: 46px 0 40px; }
  .dashboard-footer-brand { grid-column: 1 / -1; }
  .dashboard-footer-bottom { align-items: flex-start; flex-direction: column; }
  .dashboard-footer-bottom nav { justify-content: flex-start; }
}
@media (max-width: 390px) {
  .dashboard-footer-grid { grid-template-columns: 1fr; }
  .dashboard-footer-brand { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-footer-socials a, .dashboard-footer-column a { transition: none; }
}

/* ===== Panier ===== */
.cart-link { position: relative; }
.cart-count {
  display: inline-block; margin-left: .3rem; background: var(--primary); color: #fff;
  border-radius: 999px; font-size: .72rem; padding: 0 .45rem; line-height: 1.4;
  vertical-align: text-top;
}
.cart-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 1.25rem; align-items: start; }
.cart-items { padding: .5rem 1.25rem; }
.cart-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .85rem 0; border-bottom: 1px solid var(--border);
}
.cart-item:last-child { border-bottom: none; }
.cart-item .table-product { color: var(--text); }
.cart-item .table-product:hover { text-decoration: none; }
.cart-item-right { display: flex; align-items: center; gap: .75rem; white-space: nowrap; }
.cart-summary { position: sticky; top: 5rem; }
.reco-card form { margin-top: .4rem; }
@media (max-width: 800px) { .cart-layout { grid-template-columns: 1fr; } }

/* Panier public : panneau latéral global piloté par le header du builder. */
body.cart-drawer-open { overflow: hidden; }
.cart-drawer-shell {
  position: fixed; inset: 0; z-index: 1000; pointer-events: none; visibility: hidden;
}
.cart-drawer-overlay {
  position: absolute; inset: 0; border: 0; margin: 0; padding: 0; cursor: pointer;
  background: rgba(9, 9, 15, .52); opacity: 0; transition: opacity .24s ease;
}
.cart-drawer {
  position: absolute; width: min(var(--cart-drawer-width, 420px), 100vw);
  height: 100%; display: flex; flex-direction: column; overflow: hidden;
  background: var(--theme-bg, #fff); color: var(--theme-text, var(--text));
  transform: none; opacity: 1;
  transition: transform .3s cubic-bezier(.2, .8, .2, 1), opacity .24s ease;
  font-family: var(--theme-font-body, inherit);
}
.cart-side-left {
  inset: 0 auto 0 0; border-right: 1px solid var(--theme-border, var(--border));
  box-shadow: 18px 0 55px rgba(8, 8, 18, .2); transform-origin: left center;
}
.cart-side-right {
  inset: 0 0 0 auto; border-left: 1px solid var(--theme-border, var(--border));
  box-shadow: -18px 0 55px rgba(8, 8, 18, .2); transform-origin: right center;
}
.cart-drawer-shell.is-preparing,
.cart-drawer-shell.is-open,
.cart-drawer-shell.is-closing { visibility: visible; }
.cart-drawer-shell.is-preparing,
.cart-drawer-shell.is-open { pointer-events: auto; }
.cart-drawer-shell.is-open .cart-drawer-overlay { opacity: 1; }
.cart-drawer-shell.is-closing .cart-drawer-overlay { opacity: 0; }
.cart-drawer-shell.is-preparing .cart-side-left.cart-enter-slide,
.cart-drawer-shell.is-closing .cart-side-left.cart-exit-slide { transform: translateX(-102%); }
.cart-drawer-shell.is-preparing .cart-side-right.cart-enter-slide,
.cart-drawer-shell.is-closing .cart-side-right.cart-exit-slide { transform: translateX(102%); }
.cart-drawer-shell.is-preparing .cart-enter-fade,
.cart-drawer-shell.is-closing .cart-exit-fade { opacity: 0; }
.cart-drawer-shell.is-preparing .cart-enter-scale,
.cart-drawer-shell.is-closing .cart-exit-scale { transform: scale(.92); opacity: 0; }
.cart-drawer-shell.is-preparing .cart-enter-none,
.cart-drawer-shell.is-closing .cart-exit-none { transition: none; }
.cart-drawer-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--theme-border, var(--border));
  background: var(--theme-card, var(--theme-bg));
}
.cart-drawer-head h2 {
  display: flex; align-items: center; gap: .45rem; margin: 0;
  color: var(--theme-h2, var(--theme-text)); font-family: var(--theme-font-heading, inherit);
}
.cart-drawer-close {
  width: 40px; height: 40px; flex: none; border-radius: 999px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; padding: 0;
  border: 1px solid var(--theme-border, var(--border)); background: transparent; color: var(--theme-text);
}
.cart-drawer-close:hover { color: var(--theme-primary); border-color: var(--theme-primary); }
.cart-drawer-body { flex: 1; min-height: 0; overflow-y: auto; padding: 1rem 1.25rem 1.5rem; }
.cart-drawer-items, .cart-drawer-recommendation-list { display: flex; flex-direction: column; gap: .75rem; }
.cart-drawer-item {
  padding: .75rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 12px;
  background: var(--theme-card, #fff);
}
.cart-drawer-product {
  display: grid; grid-template-columns: 72px 1fr; gap: .75rem; align-items: center;
  color: var(--theme-text, inherit) !important; text-decoration: none;
}
.cart-drawer-product img, .cart-drawer-thumb {
  width: 72px; height: 58px; border-radius: 8px; object-fit: cover;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--theme-primary) 9%, var(--theme-card));
}
.cart-drawer-copy { min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.cart-drawer-copy strong { overflow: hidden; text-overflow: ellipsis; }
.cart-drawer-copy small { color: var(--theme-muted, var(--muted)); }
.cart-drawer-line-actions {
  display: flex; justify-content: space-between; align-items: center; gap: .75rem;
  margin-top: .65rem; padding-top: .6rem; border-top: 1px solid var(--theme-border, var(--border));
}
.cart-drawer-line-actions form, .cart-drawer-recommendation form { margin: 0; }
.cart-drawer-price { font-weight: 800; color: var(--theme-primary, var(--primary)); }
.cart-drawer-remove {
  padding: .2rem 0; border: 0; background: transparent; color: var(--theme-muted, var(--muted));
  cursor: pointer; font: inherit; font-size: .78rem; text-decoration: underline;
}
.cart-drawer-remove:hover { color: var(--red); }
.cart-drawer-empty { text-align: center; padding: 1.3rem .5rem 1.6rem; }
.cart-drawer-empty-icon {
  width: 58px; height: 58px; margin: 0 auto .75rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--theme-primary) 12%, var(--theme-card));
  color: var(--theme-primary); font-size: 1.45rem;
}
.cart-drawer-empty h3 { margin: 0 0 .35rem; color: var(--theme-h2, var(--theme-text)); }
.cart-drawer-empty p { margin: 0; color: var(--theme-muted, var(--muted)); font-size: .9rem; }
.cart-drawer-recommendations h3 {
  margin: 0 0 .8rem; color: var(--theme-h2, var(--theme-text));
  font-family: var(--theme-font-heading, inherit);
}
.cart-drawer-recommendation {
  display: grid; grid-template-columns: 1fr auto; gap: .55rem; align-items: center;
  padding: .55rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 11px;
  background: var(--theme-card, #fff);
}
.cart-drawer-recommendation > a {
  min-width: 0; display: grid; grid-template-columns: 58px 1fr; gap: .65rem; align-items: center;
  color: var(--theme-text, inherit) !important; text-decoration: none;
}
.cart-drawer-recommendation img, .cart-drawer-recommendation .cart-drawer-thumb {
  width: 58px; height: 48px; border-radius: 7px; object-fit: cover;
}
.cart-drawer-recommendation a > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.cart-drawer-recommendation strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-drawer-recommendation small { color: var(--theme-primary); font-weight: 700; }
.cart-drawer-add {
  width: 34px; height: 34px; padding: 0; border-radius: 50%; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; background: var(--theme-btn-primary, var(--theme-primary));
  color: var(--theme-btn-primary-text, #fff);
}
.cart-drawer-foot {
  flex: none; padding: 1rem 1.25rem 1.25rem; border-top: 1px solid var(--theme-border, var(--border));
  background: var(--theme-card, var(--theme-bg));
}
.cart-drawer-total {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-bottom: .8rem;
}
.cart-drawer-total strong { color: var(--theme-h2, var(--theme-text)); font-size: 1.15rem; }
.cart-drawer-cards .cart-drawer-items,
.cart-drawer-cards .cart-drawer-recommendation-list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cart-drawer-cards .cart-drawer-product { display: flex; flex-direction: column; align-items: stretch; }
.cart-drawer-cards .cart-drawer-product img,
.cart-drawer-cards .cart-drawer-product .cart-drawer-thumb { width: 100%; height: 110px; }
.cart-drawer-cards .cart-drawer-recommendation {
  display: flex; flex-direction: column; align-items: stretch;
}
.cart-drawer-cards .cart-drawer-recommendation > a { display: flex; flex-direction: column; align-items: stretch; }
.cart-drawer-cards .cart-drawer-recommendation img,
.cart-drawer-cards .cart-drawer-recommendation .cart-drawer-thumb { width: 100%; height: 95px; }
.cart-drawer-cards .cart-drawer-add { width: 100%; border-radius: 8px; }
.cart-drawer-list .cart-drawer-item { padding: 1rem; }
.cart-drawer-list .cart-drawer-product { grid-template-columns: 88px 1fr; }
.cart-drawer-list .cart-drawer-product img,
.cart-drawer-list .cart-drawer-product .cart-drawer-thumb { width: 88px; height: 70px; }
.cart-drawer-compact .cart-drawer-body { padding: .5rem .85rem 1rem; }
.cart-drawer-compact .cart-drawer-items { gap: 0; }
.cart-drawer-compact .cart-drawer-item {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; align-items: center;
  padding: .55rem 0; border: 0; border-bottom: 1px solid var(--theme-border, var(--border));
  border-radius: 0; background: transparent;
}
.cart-drawer-compact .cart-drawer-item:last-child { border-bottom: 0; }
.cart-drawer-compact .cart-drawer-product { grid-template-columns: 46px 1fr; }
.cart-drawer-compact .cart-drawer-product img,
.cart-drawer-compact .cart-drawer-product .cart-drawer-thumb { width: 46px; height: 40px; }
.cart-drawer-compact .cart-drawer-copy small { display: none; }
.cart-drawer-compact .cart-drawer-copy strong { font-size: .88rem; white-space: nowrap; }
.cart-drawer-compact .cart-drawer-line-actions {
  min-width: 72px; margin: 0; padding: 0; border: 0;
  flex-direction: column; align-items: flex-end; gap: .05rem;
}
.cart-drawer-compact .cart-drawer-price { font-size: .82rem; }
.cart-drawer-compact .cart-drawer-remove { font-size: .7rem; text-decoration: none; }
.cart-drawer-compact .cart-drawer-recommendation-list { gap: .35rem; }
.cart-drawer-compact .cart-drawer-recommendation {
  padding: .35rem 0; border: 0; border-bottom: 1px solid var(--theme-border, var(--border));
  border-radius: 0; background: transparent;
}
.cart-drawer-compact .cart-drawer-recommendation > a { grid-template-columns: 42px 1fr; }
.cart-drawer-compact .cart-drawer-recommendation img,
.cart-drawer-compact .cart-drawer-recommendation .cart-drawer-thumb { width: 42px; height: 36px; }
@media (max-width: 420px) {
  .cart-drawer-cards .cart-drawer-items,
  .cart-drawer-cards .cart-drawer-recommendation-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .cart-drawer, .cart-drawer-overlay { transition: none !important; }
}

/* ===== Liste de souhaits ===== */

/* Le partage et le cœur de la fiche produit, côte à côte sur le coin haut
   droit du visuel. Les deux boutons partagent le même dessin. */
.product-media-actions {
  position: absolute; z-index: 3; top: .75rem; right: .75rem;
  display: flex; align-items: center; gap: .5rem;
}
.product-media-actions .product-wishlist-form { margin: 0; }
.product-share-trigger,
.product-wishlist-toggle {
  width: 42px; height: 42px; margin: 0; padding: 0; display: grid; place-items: center;
  font-size: 1.15rem; line-height: 1; cursor: pointer;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 999px;
  color: var(--theme-text, var(--text));
  background: color-mix(in srgb, var(--theme-card, #fff) 88%, transparent);
  box-shadow: 0 7px 22px rgba(15, 23, 42, .13);
  transition: color .18s ease, border-color .18s ease, transform .18s ease;
}
.product-share-trigger:hover,
.product-wishlist-toggle:hover { color: var(--theme-primary, var(--primary)); border-color: var(--theme-primary, var(--primary)); }
.product-wishlist-toggle .icon { transition: fill .18s ease, transform .18s ease; }
.product-wishlist-toggle.is-active { color: var(--red, #e11d48); border-color: currentColor; }
/* `fill` en CSS l'emporte sur l'attribut fill="none" du SVG : le cœur se remplit. */
.product-wishlist-toggle.is-active .icon { fill: currentColor; transform: scale(1.06); }
.product-share-trigger:active,
.product-wishlist-toggle:active { transform: scale(.93); }

/* Onglets du panneau latéral. */
.cart-drawer-tabs {
  display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: .25rem;
  padding: .3rem; margin: 0 1.25rem; border-radius: 999px;
  background: color-mix(in srgb, var(--theme-text, #111) 6%, transparent);
}
.cart-drawer-tab {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  padding: .5rem .7rem; border: 0; border-radius: 999px; cursor: pointer;
  font: inherit; font-size: .88rem; font-weight: 700; white-space: nowrap;
  color: var(--theme-muted, var(--muted)); background: transparent;
  transition: color .18s ease, background .18s ease;
}
.cart-drawer-tab > span:first-of-type { overflow: hidden; text-overflow: ellipsis; }
.cart-drawer-tab:hover { color: var(--theme-text, var(--text)); }
.cart-drawer-tab.is-active {
  color: var(--theme-text, var(--text)); background: var(--theme-card, #fff);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .1);
}
.cart-drawer-tab-count {
  min-width: 1.25rem; padding: 0 .3rem; border-radius: 999px;
  font-size: .72rem; line-height: 1.25rem; text-align: center;
  color: var(--theme-btn-primary-text, #fff); background: var(--theme-primary, var(--primary));
}
.cart-drawer-tab-count[hidden] { display: none; }
.cart-drawer-panel[hidden] { display: none; }

/* Contenu de l'onglet souhaits. Espace de noms distinct du panier : les deux
   onglets gardent ainsi des mises en page indépendantes. */
.wl-items, .wl-recommendation-list { display: flex; flex-direction: column; gap: .75rem; }
.wl-item {
  display: flex; flex-direction: column; gap: .6rem; padding: .85rem;
  border: 1px solid var(--theme-border, var(--border)); border-radius: var(--radius);
  background: var(--theme-card, var(--card));
}
.wl-product {
  display: grid; grid-template-columns: 72px 1fr; gap: .75rem; align-items: center;
  color: inherit; text-decoration: none; min-width: 0;
}
.wl-product:hover { text-decoration: none; }
.wl-product img, .wl-thumb {
  width: 72px; height: 60px; object-fit: cover; border-radius: 10px;
  background: color-mix(in srgb, var(--theme-text, #111) 6%, transparent);
}
.wl-thumb { display: grid; place-items: center; color: var(--theme-muted, var(--muted)); }
.wl-copy { min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.wl-copy strong { overflow: hidden; text-overflow: ellipsis; }
.wl-price { font-weight: 800; color: var(--theme-primary, var(--primary)); font-size: .95rem; }
.wl-price .price-old { margin-right: .35rem; font-weight: 600; }
.wl-actions {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding-top: .55rem; border-top: 1px solid var(--theme-border, var(--border));
}
.wl-actions form { margin: 0; }
.wl-move {
  display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .7rem;
  border: 1px solid var(--theme-primary, var(--primary)); border-radius: 999px;
  font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer;
  color: var(--theme-primary, var(--primary)); background: transparent;
  transition: color .18s ease, background .18s ease;
}
.wl-move:hover {
  color: var(--theme-btn-primary-text, #fff); background: var(--theme-primary, var(--primary));
}
.wl-note {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .8rem; color: var(--theme-muted, var(--muted));
}
.wl-remove {
  padding: 0; border: 0; background: none; cursor: pointer; font: inherit;
  font-size: .8rem; color: var(--theme-muted, var(--muted)); text-decoration: underline;
}
.wl-remove:hover { color: var(--red); }
.wl-recommendations h3, .wl-empty + .wl-recommendations h3 {
  margin: 1.4rem 0 .6rem; font-size: .95rem; color: var(--theme-h2, var(--theme-text));
}
.wl-recommendation {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; align-items: center;
  padding: .55rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: var(--radius); background: var(--theme-card, var(--card));
}
.wl-recommendation form { margin: 0; }
.wl-recommendation > a {
  display: grid; grid-template-columns: 54px 1fr; gap: .6rem; align-items: center;
  min-width: 0; color: inherit; text-decoration: none;
}
.wl-recommendation img, .wl-recommendation .wl-thumb { width: 54px; height: 46px; }
.wl-recommendation a > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.wl-recommendation strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wl-recommendation small { color: var(--theme-primary); font-weight: 700; }
.wl-add {
  width: 34px; height: 34px; display: grid; place-items: center; padding: 0; cursor: pointer;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 10px;
  color: var(--theme-text, var(--text)); background: transparent;
  transition: color .18s ease, border-color .18s ease;
}
.wl-add:hover { color: var(--red, #e11d48); border-color: currentColor; }

/* Mise en page « cartes » de l'onglet souhaits. */
.wl-layout-cards .wl-items, .wl-layout-cards .wl-recommendation-list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
}
.wl-layout-cards .wl-product { display: flex; flex-direction: column; align-items: stretch; }
.wl-layout-cards .wl-product img, .wl-layout-cards .wl-product .wl-thumb { width: 100%; height: 100px; }
.wl-layout-cards .wl-actions { flex-direction: column; align-items: stretch; }
.wl-layout-cards .wl-move { justify-content: center; }
.wl-layout-cards .wl-recommendation { display: flex; flex-direction: column; align-items: stretch; }
.wl-layout-cards .wl-recommendation > a { display: flex; flex-direction: column; align-items: stretch; }
.wl-layout-cards .wl-recommendation img, .wl-layout-cards .wl-recommendation .wl-thumb { width: 100%; height: 88px; }
.wl-layout-cards .wl-add { width: 100%; border-radius: 8px; }

/* Mise en page « compacte » de l'onglet souhaits. */
.wl-layout-compact .wl-items { gap: 0; }
.wl-layout-compact .wl-item {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; align-items: center;
  padding: .55rem 0; border: 0; border-bottom: 1px solid var(--theme-border, var(--border));
  border-radius: 0; background: transparent;
}
.wl-layout-compact .wl-item:last-child { border-bottom: 0; }
.wl-layout-compact .wl-product { grid-template-columns: 46px 1fr; }
.wl-layout-compact .wl-product img, .wl-layout-compact .wl-product .wl-thumb { width: 46px; height: 40px; }
.wl-layout-compact .wl-copy strong { font-size: .88rem; white-space: nowrap; }
.wl-layout-compact .wl-price { font-size: .82rem; }
.wl-layout-compact .wl-actions {
  flex-direction: column; align-items: flex-end; gap: .1rem;
  padding: 0; border: 0;
}
.wl-layout-compact .wl-move { padding: .15rem .5rem; font-size: .74rem; border: 0; }
.wl-layout-compact .wl-move:hover { background: transparent; color: var(--theme-primary, var(--primary)); }
.wl-layout-compact .wl-remove { font-size: .7rem; text-decoration: none; }
.wl-layout-compact .wl-recommendation-list { gap: .35rem; }
.wl-layout-compact .wl-recommendation {
  padding: .35rem 0; border: 0; border-bottom: 1px solid var(--theme-border, var(--border));
  border-radius: 0; background: transparent;
}
.wl-layout-compact .wl-recommendation > a { grid-template-columns: 42px 1fr; }
.wl-layout-compact .wl-recommendation img, .wl-layout-compact .wl-recommendation .wl-thumb { width: 42px; height: 36px; }

/* Notification de confirmation, en haut à droite. */
.store-toast-stack {
  position: fixed; z-index: 1200; top: 1rem; right: 1rem;
  display: flex; flex-direction: column; gap: .5rem;
  max-width: min(24rem, calc(100vw - 2rem)); pointer-events: none;
}
.store-toast {
  display: flex; align-items: center; gap: .7rem; padding: .7rem .8rem .7rem 1rem;
  border-radius: 14px; pointer-events: auto;
  color: #fff; background: #14161c;
  box-shadow: 0 14px 40px rgba(9, 9, 15, .28);
  opacity: 0; transform: translateY(-8px) scale(.97);
  transition: opacity .22s ease, transform .22s ease;
}
.store-toast.is-visible { opacity: 1; transform: none; }
.store-toast.is-leaving { opacity: 0; transform: translateY(-8px) scale(.97); }
.store-toast-message { flex: 1; min-width: 0; font-size: .9rem; font-weight: 600; }
.store-toast-action {
  flex-shrink: 0; padding: .35rem .8rem; border: 0; border-radius: 999px; cursor: pointer;
  font: inherit; font-size: .82rem; font-weight: 800; color: #14161c; background: #fff;
}
.store-toast-action:hover { filter: brightness(.92); }
.store-toast-close {
  flex-shrink: 0; display: grid; place-items: center; width: 22px; height: 22px;
  padding: 0; border: 0; border-radius: 999px; cursor: pointer;
  color: rgba(255, 255, 255, .62); background: transparent;
}
.store-toast-close:hover { color: #fff; }
@media (max-width: 480px) {
  .store-toast-stack { top: .6rem; right: .6rem; left: .6rem; max-width: none; }
  .wl-layout-cards .wl-items, .wl-layout-cards .wl-recommendation-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .store-toast, .product-share-trigger, .product-wishlist-toggle, .product-wishlist-toggle .icon { transition: none; }
}

/* ===== Avis ===== */
.reviews-section { margin-top: 2.5rem; }
.stars { color: #f0a01e; letter-spacing: .1em; }
.rating-summary { color: var(--muted); font-size: .95rem; margin: .25rem 0 0; }
.review-list { display: flex; flex-direction: column; gap: .75rem; }
.review-card { padding: 1rem 1.25rem; }
.review-card p { margin: .4rem 0; }
.review-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.review-form { margin-bottom: 1.25rem; }
.star-input { display: inline-flex; flex-direction: row-reverse; font-size: 1.6rem; }
.star-input input { display: none; }
.star-input label { cursor: pointer; color: #d5d5e2; padding: 0 .1em; }
.star-input input:checked ~ label,
.star-input label:hover, .star-input label:hover ~ label { color: #f0a01e; }

/* ===== Sortie programmée ===== */
.release-note {
  background: #fff7e8; color: #8a5a00; border-radius: var(--radius);
  padding: .5rem .75rem; font-size: .9rem; text-align: center;
}
/* Produit privé ouvert par un achat ou un abonnement déjà détenu */
.private-access-note {
  align-items: center; background: #f3f2ff; border-radius: var(--radius);
  color: #4b3fa8; display: flex; font-size: .88rem; gap: .45rem;
  justify-content: center; margin: 0 0 .75rem; padding: .5rem .75rem;
}
.private-access-note svg { flex: none; height: 15px; width: 15px; }
.alert-info { background: #eaf2fd; color: #1d4f91; }
.check-field {
  display: flex; align-items: flex-start; gap: .5rem; margin-bottom: .8rem;
  font-size: .92rem; cursor: pointer;
}
.check-field input { margin-top: .25rem; }
.check-field.is-disabled { opacity: .55; cursor: not-allowed; }
.product-share-tracking-setting {
  margin: -.2rem 0 .8rem 1.45rem; padding: .65rem .75rem .05rem;
  border-left: 2px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  background: color-mix(in srgb, var(--primary) 3%, transparent); border-radius: 0 8px 8px 0;
}
/* Une icône de la fiche produit : son nom dans la liste, puis le téléversement
   qui prend le dessus — les deux se lisent comme un seul réglage. */
.settings-icon-choice {
  margin: 0 0 .9rem; padding: .7rem .75rem .1rem;
  border: 1px solid var(--border); border-radius: 10px;
  background: color-mix(in srgb, var(--primary) 2%, transparent);
}
.settings-icon-choice > .field:last-child { margin-bottom: .7rem; }

/* ===== Paramètres ===== */
.settings-layout { max-width: 640px; }
.settings-layout .card { margin-bottom: 1.25rem; }
.settings-tabs {
  display: flex; flex-wrap: wrap; gap: .25rem; max-width: 640px;
  border-bottom: 2px solid var(--border); margin-bottom: 1.25rem;
}
.tab-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .55rem .9rem; border: none; background: none; cursor: pointer;
  font: inherit; font-size: .95rem; color: inherit;
  border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.tab-btn:hover { color: var(--primary); }
.tab-btn.active { color: var(--primary); font-weight: 600; border-bottom-color: var(--primary); }
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: settingsPanelIn .24s cubic-bezier(.2, .75, .25, 1) both; }
@keyframes settingsPanelIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

/* Recherche dans les paramètres */
.settings-search {
  position: relative; display: flex; align-items: center; max-width: 640px;
  margin-bottom: .6rem;
}
.settings-search-icon {
  position: absolute; left: .8rem; display: grid; place-items: center;
  color: var(--muted); pointer-events: none;
}
.settings-search input {
  width: 100%; padding: .6rem 2.3rem; font: inherit; font-size: .95rem;
  color: inherit; background: var(--card, #fff);
  border: 1px solid var(--border); border-radius: 10px;
}
.settings-search input:focus {
  outline: none; border-color: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);
}
.settings-search input::-webkit-search-cancel-button { display: none; }
.settings-search-clear {
  position: absolute; right: .5rem; display: grid; place-items: center;
  width: 26px; height: 26px; padding: 0; color: var(--muted);
  background: none; border: none; border-radius: 50%; font-size: 1.2rem; cursor: pointer;
}
.settings-search-clear:hover { color: var(--primary); background: var(--bg); }
.settings-search-summary {
  max-width: 640px; margin: 0 0 .9rem; color: var(--muted); font-size: .88rem;
}
.settings-hidden { display: none !important; }
.settings-result-tab {
  display: none; margin-bottom: .35rem;
  padding: .12rem .5rem; color: var(--muted); background: var(--bg);
  border: 1px solid var(--border); border-radius: 99px;
  font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
}
.settings-searching .settings-result-tab:not(.settings-hidden) { display: inline-block; }
.settings-searching .settings-tabs .tab-btn.active {
  color: inherit; font-weight: inherit; border-bottom-color: transparent;
}
.settings-searching .tab-panel.active { animation: none; }

/* Catalogue des intégrations */
.integrations-settings { width: 100%; max-width: 1120px; }
.integrations-directory-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem;
  margin: .2rem 0 1.15rem;
}
.integrations-directory-head h2 { margin: .15rem 0 .35rem; font-size: clamp(1.45rem, 2vw, 1.9rem); }
.integrations-directory-head p { max-width: 660px; margin: 0; }
.integrations-service-count {
  display: inline-flex; align-items: baseline; gap: .35rem; flex: none;
  padding: .55rem .8rem; border: 1px solid var(--border); border-radius: 12px;
  color: var(--muted); background: var(--card); font-size: .84rem;
}
.integrations-service-count strong { color: var(--text); font-size: 1.05rem; }
.integration-filters {
  display: flex; align-items: center; flex-wrap: wrap; gap: .5rem;
  margin-bottom: 1.2rem;
}
.integration-filter {
  display: inline-flex; align-items: center; gap: .45rem; min-height: 38px;
  padding: .45rem .75rem; border: 1px solid var(--border); border-radius: 999px;
  color: var(--muted); background: var(--card); cursor: pointer;
  font: inherit; font-size: .88rem; font-weight: 650;
  transition: border-color .16s ease, box-shadow .16s ease, color .16s ease, background .16s ease;
}
.integration-filter span {
  display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 .35rem;
  border-radius: 999px; color: inherit; background: var(--bg); font-size: .72rem;
}
.integration-filter:hover { color: var(--primary); border-color: color-mix(in srgb, var(--primary) 45%, var(--border)); }
.integration-filter.is-active {
  color: #fff; border-color: var(--primary); background: var(--primary);
  box-shadow: 0 7px 18px color-mix(in srgb, var(--primary) 24%, transparent);
}
.integration-filter.is-active span { color: var(--primary); background: #fff; }
.integration-filter:focus-visible,
.integration-service-summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent); outline-offset: 2px; }
.integration-directory-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start; gap: 1rem;
}
.integration-email-cards { display: contents; }
.settings-layout .integration-service-card {
  position: relative; min-width: 0; margin: 0; padding: 0; overflow: hidden;
  border-color: color-mix(in srgb, var(--border) 90%, var(--primary));
  box-shadow: 0 9px 25px rgba(27, 31, 59, .055);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.settings-layout .integration-service-card:not([open]):hover {
  border-color: color-mix(in srgb, var(--primary) 38%, var(--border));
  box-shadow: 0 14px 32px rgba(27, 31, 59, .1); transform: translateY(-2px);
}
.integration-service-card[open] {
  grid-column: 1 / -1;
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
  box-shadow: 0 18px 42px rgba(27, 31, 59, .11);
}
.integration-service-card.integration-filter-hidden { display: none; }
.settings-searching .integration-service-card.integration-filter-hidden:not(.settings-hidden) { display: block; }
.integration-service-summary {
  position: relative; display: flex; min-height: 272px; flex-direction: column; align-items: flex-start;
  padding: 1.25rem; cursor: pointer; list-style: none;
}
.integration-service-summary::-webkit-details-marker { display: none; }
.integration-service-status { position: absolute; z-index: 1; top: 1rem; right: 1rem; }
.integration-service-logo {
  display: grid; place-items: center; order: 1; width: 72px; height: 72px;
  margin: .8rem 0 1.15rem; overflow: hidden; border: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
  border-radius: 19px; background: #fff; box-shadow: 0 10px 24px rgba(27, 31, 59, .09);
}
.integration-service-logo img { display: block; width: 50px; height: 50px; object-fit: contain; }
.integration-service-logo--discord { background: #5865f2; }
.integration-service-logo--discord img { width: 47px; height: 47px; filter: brightness(0) invert(1); }
.integration-service-logo--google-sheets { background: #0f9d58; }
.integration-service-logo--google-sheets img { width: 45px; height: 45px; filter: brightness(0) invert(1); }
.integration-service-logo--zapier { background: #ff4f00; }
.integration-service-logo--zapier img { width: 44px; height: 44px; filter: brightness(0) invert(1); }
/* Carte sans configuration : l'ancre remplace le <details>, le chevron devient
   une fleche sortante et la carte entiere est cliquable. */
.settings-layout .integration-service-card--link { display: block; color: inherit; text-decoration: none; }
.integration-service-card--link .integration-service-summary { cursor: pointer; }
.integration-service-card--link:hover .integration-service-open { text-decoration: underline; }
.integration-service-category {
  order: 2; margin-bottom: .35rem; color: var(--primary); font-size: .7rem; font-weight: 800;
  letter-spacing: .075em; text-transform: uppercase;
}
.integration-service-name { order: 3; color: var(--text); font-size: 1.08rem; line-height: 1.25; }
.integration-service-description {
  order: 4; min-height: 42px; margin-top: .4rem; color: var(--muted); font-size: .84rem; line-height: 1.48;
}
.integration-service-open {
  display: inline-flex; align-items: center; gap: .35rem; order: 5; margin-top: auto;
  color: var(--primary); font-size: .82rem; font-weight: 750;
}
.integration-service-open svg { width: 16px; height: 16px; transition: transform .18s ease; }
.integration-service-card[open] .integration-service-open svg { transform: rotate(180deg); }
.integration-service-body {
  padding: 1.25rem; border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--primary) 2.5%, var(--card));
}
.integration-service-body > :last-child { margin-bottom: 0; }
.integration-service-body > form,
.integration-service-body > .hint,
.integration-service-body > .alert,
.integration-service-body > .newsletter-connection-actions { max-width: 720px; }
.integration-service-body-intro { margin-top: 0; }
.integration-service-card[open] .integration-service-summary {
  min-height: 0; flex-flow: row wrap; align-items: center; gap: .45rem 1rem;
}
.integration-service-card[open] .integration-service-logo {
  flex: 0 0 54px; width: 54px; height: 54px; margin: 0 .15rem 0 0;
}
.integration-service-card[open] .integration-service-logo img { width: 38px; height: 38px; }
.integration-service-card[open] .integration-service-logo--discord img { width: 36px; height: 36px; }
.integration-service-card[open] .integration-service-logo--google-sheets img { width: 34px; height: 34px; }
.integration-service-card[open] .integration-service-category { display: none; }
.integration-service-card[open] .integration-service-name { font-size: 1.12rem; }
.integration-service-card[open] .integration-service-description { flex: 1 1 320px; min-height: 0; margin: 0; }
.integration-service-card[open] .integration-service-status {
  position: static; order: 5; margin-left: auto;
}
.integration-service-card[open] .integration-service-open { order: 6; margin: 0; }
.integration-service-card[open] .integration-service-open > span { display: none; }

.google-sheets-body { display: grid; gap: 1rem; }
.google-sheets-body > * { margin-top: 0; margin-bottom: 0; }
.google-sheets-steps {
  display: grid; gap: .55rem; max-width: 900px; margin: 0; padding: 0; list-style: none;
  counter-reset: none;
}
.google-sheets-steps li {
  display: grid; grid-template-columns: 32px minmax(180px, 1fr) auto;
  align-items: center; gap: .75rem; padding: .72rem .8rem;
  border: 1px solid var(--border); border-radius: 12px; background: var(--card);
}
.google-sheets-steps li > span {
  display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px;
  color: #08783f; background: #e4f5ec; font-size: .78rem; font-weight: 800;
}
.google-sheets-steps li > div:not(.google-sheets-copy-row) { display: grid; gap: .1rem; }
.google-sheets-steps small { color: var(--muted); font-size: .8rem; line-height: 1.35; }
.google-sheets-copy-row {
  display: flex; align-items: center; justify-content: flex-end; gap: .45rem; min-width: 0;
}
.google-sheets-copy-row code {
  max-width: 340px; padding: .35rem .5rem; overflow: hidden; border-radius: 7px;
  color: #17613f; background: #eef8f2; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap;
}
.google-sheets-connection-summary {
  display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: .8rem;
  max-width: 900px; padding: .8rem; border: 1px solid #bfe3cf; border-radius: 12px; background: #f4fbf7;
}
.google-sheets-file-icon {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px;
  color: #08783f; background: #dff3e8;
}
.google-sheets-file-icon .icon { width: 19px; height: 19px; }
.google-sheets-connection-summary > div { display: grid; gap: .12rem; min-width: 0; }
.google-sheets-connection-summary .hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.google-sheets-connect-form {
  display: grid; grid-template-columns: minmax(260px, 1fr) minmax(180px, 240px) auto;
  align-items: end; gap: .75rem; max-width: 900px !important;
}
.settings-workspace .google-sheets-connect-form .field { margin: 0; }
.google-sheets-connect-form .btn { min-height: 42px; white-space: nowrap; }
.google-sheets-columns { display: flex; flex-wrap: wrap; align-items: center; gap: .42rem; max-width: 900px; }
.google-sheets-columns strong { width: 100%; margin-bottom: .1rem; font-size: .82rem; }
.google-sheets-columns span {
  padding: .3rem .5rem; border: 1px solid var(--border); border-radius: 999px;
  color: var(--muted); background: var(--card); font-size: .72rem;
}
.google-sheets-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.google-sheets-actions form { margin: 0; }
.google-sheets-queue-note { color: #8a5a00 !important; }
.google-sheets-safety-note { padding-top: .8rem; border-top: 1px solid var(--border); }

@media (max-width: 900px) {
  .integration-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .integrations-directory-head { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .integration-directory-grid { grid-template-columns: 1fr; }
  .integration-service-card[open] { grid-column: auto; }
  .integration-service-card[open] .integration-service-status { margin-left: 0; }
  .integration-service-card[open] .integration-service-open { margin-left: auto; }
  .google-sheets-steps li { grid-template-columns: 32px minmax(0, 1fr); }
  .google-sheets-steps li > :last-child:not(div) { grid-column: 2; justify-self: start; }
  .google-sheets-copy-row { grid-column: 2; justify-content: flex-start; width: 100%; }
  .google-sheets-copy-row code { max-width: min(100%, 260px); }
  .google-sheets-connection-summary { grid-template-columns: 42px minmax(0, 1fr); }
  .google-sheets-connection-summary > .btn { grid-column: 2; justify-self: start; }
  .google-sheets-connect-form { grid-template-columns: 1fr; }
  .google-sheets-connect-form .btn { justify-self: start; }
}

/* Méthodes de connexion (Google, Microsoft, mot de passe) */
.provider-list { display: grid; gap: .6rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.provider-row {
  display: flex; align-items: center; gap: .8rem; padding: .7rem .85rem;
  border: 1px solid var(--border); border-radius: 12px;
}
.provider-row.is-connected { border-color: color-mix(in srgb, var(--green) 32%, var(--border)); }
.provider-row-icon { display: grid; place-items: center; flex: none; width: 22px; }
.provider-row-copy { display: flex; flex-direction: column; gap: .1rem; min-width: 0; flex: 1; }
.provider-row-copy small { color: var(--muted); font-size: .82rem; word-break: break-word; }
.provider-row-action { display: flex; flex: none; align-items: center; gap: .4rem; }
.socials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.notification-settings-intro {
  display: flex; align-items: flex-start; gap: 1rem;
  background: linear-gradient(135deg, #f7f8ff, #fff);
}
.notification-settings-intro .card-title { margin-bottom: .25rem; }
.notification-settings-intro p { margin: 0; }
.notification-settings-icon {
  display: grid; flex: none; place-items: center; width: 46px; height: 46px;
  border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--primary), #815ce7);
  box-shadow: 0 8px 18px rgba(91, 104, 227, .22);
}
.notification-settings-icon .icon { width: 21px; height: 21px; }
.notification-preferences .card-title { margin-bottom: 1rem; }
.notification-preference {
  align-items: center; margin: 0 0 .7rem; padding: .9rem;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.notification-preference:last-child { margin-bottom: 0; }
.notification-preference:hover {
  border-color: #cfd3ff; background: #f8f8ff; transform: translateY(-1px);
}
.notification-preference-copy {
  display: flex; min-width: 0; flex: 1; flex-direction: column; gap: .2rem;
}
.notification-preference-title {
  display: flex; align-items: center; gap: .5rem; font-size: .92rem; font-weight: 700;
}
.notification-preference-title .icon { width: 17px; height: 17px; color: var(--primary); }
.notification-preference-copy small { color: var(--muted); font-size: .8rem; line-height: 1.4; }
.notification-retention-settings select { max-width: 230px; }
@media (max-width: 640px) { .socials-grid { grid-template-columns: 1fr; } }
.slug-status { font-size: .85rem; margin-left: .5rem; }
.slug-status.ok { color: #1a7f37; }
.slug-status.taken { color: #c62828; }
.banner-preview {
  display: block; max-width: 100%; max-height: 160px; border-radius: var(--radius);
  border: 1px solid var(--border); margin-bottom: .6rem; object-fit: cover;
}
.toggle-field {
  display: flex; align-items: flex-start; gap: .75rem; cursor: pointer;
  padding: .8rem; margin: .8rem 0; border: 1px solid var(--border);
  border-radius: var(--radius); background: #fafafe;
}
.toggle-field > input { position: absolute; opacity: 0; pointer-events: none; }
.toggle-control {
  position: relative; flex: 0 0 42px; width: 42px; height: 24px;
  border-radius: 999px; background: #c8c8d5; transition: background .18s ease;
}
.toggle-control::after {
  content: ''; position: absolute; width: 18px; height: 18px; top: 3px; left: 3px;
  border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / 20%);
  transition: transform .18s ease;
}
.toggle-field > input:checked + .toggle-control { background: var(--primary); }
.toggle-field > input:checked + .toggle-control::after { transform: translateX(18px); }
.toggle-field > input:focus-visible + .toggle-control {
  outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent);
  outline-offset: 2px;
}
.toggle-field strong, .toggle-field small { display: block; }
.toggle-field small { color: var(--muted); margin-top: .2rem; line-height: 1.35; }
.adaptive-pricing-options {
  margin-top: 1rem; padding-top: .25rem; border-top: 1px solid var(--border);
}
.adaptive-percent-input { display: flex; align-items: center; gap: .5rem; max-width: 150px; }
.adaptive-percent-input input { min-width: 0; }
.adaptive-percent-input > span { font-weight: 700; }
.adaptive-rounding-groups { display: grid; gap: 1rem; }
.adaptive-rounding-groups fieldset {
  min-width: 0; padding: .85rem; border: 1px solid var(--border);
  border-radius: var(--radius); background: #fff;
}
.adaptive-rounding-groups legend { padding: 0 .25rem; font-weight: 600; font-size: .9rem; }
.adaptive-rounding-groups .hint { margin: 0 0 .6rem; }
.price-ending-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.price-ending-option { cursor: pointer; }
.price-ending-option input { position: absolute; opacity: 0; pointer-events: none; }
.price-ending-option span {
  display: inline-flex; min-width: 54px; justify-content: center;
  padding: .45rem .7rem; border: 1px solid var(--border); border-radius: 999px;
  background: #fff; font-weight: 700; transition: .15s ease;
}
.price-ending-option input:checked + span {
  color: var(--primary); border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 9%, white);
  box-shadow: inset 0 0 0 1px var(--primary);
}
.price-ending-option input:focus-visible + span {
  outline: 3px solid color-mix(in srgb, var(--primary) 28%, transparent);
  outline-offset: 2px;
}
.adaptive-sales-note { margin: 0; line-height: 1.45; }
.newsletter-provider {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-top: .75rem;
  padding: 0;
  overflow: hidden;
}
.newsletter-provider summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1rem 1.25rem; cursor: pointer; list-style-position: inside;
}
.newsletter-provider summary > span:first-child { display: inline-flex; align-items: center; gap: .55rem; }
.newsletter-provider-body { padding: 0 1.25rem 1.25rem; border-top: 1px solid var(--border); }
.newsletter-provider[open] .newsletter-provider-body {
  animation: detailsReveal .28s cubic-bezier(.2, .75, .25, 1) both;
  transform-origin: top;
}
.newsletter-provider-body > p:first-child { margin-top: 1rem; }
.newsletter-form-actions, .newsletter-connection-actions, .section-heading-row {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap;
}
.newsletter-connection-actions { justify-content: flex-start; border-top: 1px solid var(--border); margin-top: 1rem; padding-top: 1rem; }
.newsletter-connection-actions form { margin: 0; }
.newsletter-doc-link { font-size: .88rem; }
.settings-review-products {
  margin-top: 1.25rem; padding-top: 1.15rem; border-top: 1px solid var(--border);
}
.settings-review-products h3 {
  display: flex; align-items: center; gap: .45rem; margin: 0 0 .35rem; font-size: 1rem;
}
.settings-review-products > .hint { margin-top: 0; }
.customer-account-flash { max-width: 720px; margin: 1rem auto; }
.badge-red { background: var(--red-bg); color: var(--red); }
.badge-yellow { background: #fff4cc; color: #7a5b00; }

/* Advanced settings: custom 404 and grouped automatic redirects */
.advanced-feature-heading {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
}
.advanced-feature-heading .card-title, .advanced-feature-heading p { margin-bottom: .25rem; }
.advanced-feature-heading .btn, .advanced-feature-heading .badge { flex: none; }
.redirect-save-meta { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; flex-wrap: wrap; }
.redirect-save-status { font-size: .78rem; }
.redirect-save-pending { color: #8a5a00; }
.redirect-save-ok { color: #1a7f37; }
.redirect-save-error { color: var(--red); max-width: 260px; text-align: right; }
.redirect-rules { display: grid; gap: .9rem; margin: 1rem 0; }
.redirect-rule {
  overflow: hidden; border: 1px solid var(--border); border-radius: 14px;
  background: linear-gradient(145deg, #fff, #fbfbfe);
}
.redirect-rule-head {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  padding: .65rem .8rem; border-bottom: 1px solid var(--border); background: #fafafe;
}
.redirect-remove-rule { color: var(--red); }
.redirect-flow {
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center; gap: .65rem; padding: .9rem;
}
.redirect-sources { display: grid; gap: .55rem; }
.redirect-source-row { display: flex; align-items: flex-end; gap: .3rem; min-width: 0; }
.redirect-source-row .redirect-url-field { flex: 1; min-width: 0; }
.redirect-url-field { display: grid; gap: .3rem; min-width: 0; }
.redirect-url-input {
  display: flex; align-items: stretch; min-width: 0; overflow: hidden;
  border: 1px solid var(--border); border-radius: 9px; background: #fff;
}
.redirect-url-input:focus-within {
  border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
.redirect-url-base {
  display: flex; align-items: center; flex: 0 1 auto; min-width: 0; max-width: 48%;
  padding: 0 .5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  border-right: 1px solid var(--border); background: #f4f4f8; color: var(--muted);
  font-size: .73rem;
}
.redirect-url-input input {
  min-width: 0; width: 100%; border: 0; border-radius: 0; padding: .55rem .5rem;
  box-shadow: none;
}
.redirect-url-input input:focus { outline: 0; box-shadow: none; }
.redirect-remove-source { width: 34px; height: 34px; padding: 0; color: var(--muted); font-size: 1.15rem; }
.redirect-add-source { justify-self: start; padding-left: 0; color: var(--primary); }
.redirect-flow-arrow {
  display: flex; flex-direction: column; align-items: center; gap: .05rem;
  color: var(--primary); font-size: 1.5rem; font-weight: 800;
}
.redirect-flow-arrow small {
  padding: .08rem .35rem; border-radius: 999px; background: color-mix(in srgb, var(--primary) 10%, white);
  color: var(--primary); font-size: .62rem; letter-spacing: .04em;
}
.redirect-destination { min-width: 0; display: grid; gap: .35rem; }
.redirect-empty {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  margin: 1rem 0; padding: 1.4rem; border: 1px dashed var(--border);
  border-radius: 14px; background: #fafafe;
}
.redirect-empty[hidden] { display: none; }
.redirect-empty-icon {
  width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: .45rem; border-radius: 50%; background: color-mix(in srgb, var(--primary) 10%, white);
  color: var(--primary); font-size: 1.3rem;
}
.redirect-empty p { margin: .25rem 0 0; }
.redirect-policy-note { display: block; margin-top: .8rem; }
@media (max-width: 640px) {
  .advanced-feature-heading { flex-direction: column; }
  .redirect-flow { grid-template-columns: 1fr; }
  .redirect-flow-arrow { flex-direction: row; justify-content: center; transform: rotate(90deg); }
  .redirect-flow-arrow small { transform: rotate(-90deg); }
}

/* Product bundles */
.product-type-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.35rem; text-align: left; }
.product-type-option { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: .9rem; min-height: 118px; padding: 1.1rem; border: 1px solid var(--border); border-radius: 16px; background: var(--card); cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.product-type-option:hover:not(.is-locked) { transform: translateY(-3px); border-color: color-mix(in srgb, var(--primary) 42%, var(--border)); box-shadow: 0 14px 32px rgba(25, 24, 45, .1); }
.product-type-option:active:not(.is-locked) { transform: translateY(-1px) scale(.985); transition-duration: .08s; }
.product-type-option.is-selected { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent); }
.product-type-option:has(input:focus-visible) { outline: 2px solid color-mix(in srgb, var(--primary) 55%, transparent); outline-offset: 2px; }
.product-type-icon { transition: transform .28s cubic-bezier(.34, 1.56, .64, 1), background-color .2s ease, color .2s ease; }
.product-type-option:hover:not(.is-locked) .product-type-icon { transform: translateY(-2px) scale(1.06); }
.product-type-option.is-selected .product-type-icon { color: #fff; background: var(--primary); }
.product-type-option.is-picked { animation: productTypePick .42s cubic-bezier(.34, 1.56, .64, 1); }
.product-type-option.is-picked .product-type-icon { animation: productTypeTilePop .5s cubic-bezier(.34, 1.56, .64, 1); }
.product-type-option.is-picked .product-type-check { animation: productTypeCheckIn .34s cubic-bezier(.34, 1.56, .64, 1) .08s both; }

/* Chaque type anime ses propres tracés SVG au survol, puis plus fort à la sélection :
   Digital = la page se soulève et son coin se replie, Subscription = les flèches
   tournent simplement au survol, Bundle = le dossier s'écrase puis rebondit. */
.product-type-icon svg, .product-type-icon svg * { transform-box: fill-box; transform-origin: center; }
.product-type-icon .icon-file path:nth-of-type(2) { transform-origin: 0% 100%; }
.product-type-icon .icon-refresh { transition: transform .45s cubic-bezier(.4, 0, .2, 1); }
.product-type-option:hover:not(.is-locked) .product-type-icon .icon-refresh { transform: rotate(180deg); }
.product-type-icon .icon-folder path { transform-origin: 50% 100%; }

.product-type-option:hover:not(.is-locked):not(.is-picked) .icon-file { animation: typeFileLift .6s cubic-bezier(.34, 1.56, .64, 1); }
.product-type-option:hover:not(.is-locked):not(.is-picked) .icon-file path:nth-of-type(2) { animation: typeFileCorner .6s ease-in-out; }
.product-type-option:hover:not(.is-locked):not(.is-picked) .icon-folder path { animation: typeFolderJelly .65s cubic-bezier(.34, 1.3, .64, 1); }

.product-type-option.is-picked .icon-file { animation: typeFileLift .7s cubic-bezier(.34, 1.56, .64, 1), typeFileGlow .7s ease-out; }
.product-type-option.is-picked .icon-file path:nth-of-type(2) { animation: typeFileCornerFlip .7s ease-in-out; }
.product-type-option.is-picked .icon-folder path { animation: typeFolderDrop .75s cubic-bezier(.34, 1.3, .64, 1); }

@keyframes productTypePick {
  0% { transform: scale(1); }
  40% { transform: scale(.97); }
  100% { transform: scale(1); }
}
@keyframes productTypeTilePop {
  0% { transform: scale(1); }
  40% { transform: scale(1.16); }
  100% { transform: scale(1); }
}
@keyframes productTypeCheckIn {
  from { opacity: 0; transform: scale(.3); }
  to { opacity: 1; transform: none; }
}
@keyframes typeFileLift {
  0%, 100% { transform: none; }
  45% { transform: translateY(-3px) scale(1.06); }
}
@keyframes typeFileCorner {
  0%, 100% { transform: none; }
  45% { transform: scale(.55); }
}
@keyframes typeFileCornerFlip {
  0%, 100% { transform: none; }
  35% { transform: scale(0); }
  60% { transform: scale(1.35); }
}
@keyframes typeFileGlow {
  0%, 100% { filter: none; }
  40% { filter: drop-shadow(0 3px 0 currentColor); }
}
@keyframes typeFolderJelly {
  0%, 100% { transform: none; }
  30% { transform: scale(1.14, .82); }
  55% { transform: scale(.92, 1.1); }
  75% { transform: scale(1.04, .97); }
}
@keyframes typeFolderDrop {
  0% { transform: none; }
  25% { transform: translateY(-5px) scale(.94, 1.08); }
  50% { transform: scale(1.2, .75); }
  70% { transform: scale(.94, 1.08); }
  85% { transform: scale(1.03, .97); }
  100% { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .product-type-option, .product-type-icon { transition: none; }
  .product-type-option:hover:not(.is-locked), .product-type-option:hover:not(.is-locked) .product-type-icon { transform: none; }
  .product-type-option.is-picked, .product-type-option.is-picked .product-type-icon,
  .product-type-option.is-picked .product-type-check,
  .product-type-icon svg, .product-type-icon svg * { animation: none !important; transition: none !important; }
}
.product-type-option.is-locked { cursor: not-allowed; opacity: .62; background: var(--surface, #f8f8fb); }
.product-type-option > input { position: absolute; opacity: 0; pointer-events: none; }
.product-type-option strong, .product-type-option small { display: block; }
.product-type-option small { margin-top: .3rem; color: var(--muted); font-weight: 400; line-height: 1.35; }
.product-type-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, #fff); }
.product-type-icon svg { width: 22px; height: 22px; }
.product-type-check { display: none; color: var(--primary); }
.product-type-option.is-selected .product-type-check { display: inline-grid; }
.product-type-check svg { width: 20px; height: 20px; }
.product-type-lock { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border-radius: 999px; background: #fff; color: var(--muted); font-size: .72rem; font-weight: 700; white-space: nowrap; }
.product-type-lock svg { width: 13px; height: 13px; }
.product-type-option .product-type-lock { width: fit-content; margin-top: .55rem; }
.product-kind-summary { display: flex; align-items: center; gap: .65rem; margin-top: -.35rem; margin-bottom: 1.1rem; }

.bundle-suggestion { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .85rem; margin: .8rem 0 1rem; padding: .9rem 1rem; border: 1px solid color-mix(in srgb, var(--primary) 25%, var(--border)); border-radius: 13px; background: linear-gradient(120deg, color-mix(in srgb, var(--primary) 7%, #fff), #fff); text-align: left; transition: opacity .2s ease, transform .2s ease; }
.bundle-suggestion[hidden] { display: none; }
.bundle-suggestion-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--primary); color: #fff; }
.bundle-suggestion-icon svg { width: 18px; height: 18px; }
.bundle-suggestion p { margin: .18rem 0 0; color: var(--muted); font-size: .84rem; }
.bundle-suggestion-close { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: none; border-radius: 8px; background: transparent; color: var(--muted); cursor: pointer; font-size: 1.3rem; line-height: 1; transition: background .15s ease, color .15s ease; }
.bundle-suggestion-close:hover { background: color-mix(in srgb, var(--muted) 15%, transparent); color: var(--text); }
.bundle-suggestion.hiding { opacity: 0; transform: translateY(-10px); pointer-events: none; }

.bundle-builder-layout { display: grid; grid-template-columns: minmax(190px, 240px) minmax(0, 1fr); gap: 1.2rem; margin-top: 1.1rem; }
.bundle-product-list { display: grid; gap: .7rem; }
.bundle-product-option { display: grid; grid-template-columns: auto 54px minmax(0, 1fr) minmax(160px, 220px); align-items: center; gap: .85rem; padding: .78rem; border: 1px solid var(--border); border-radius: 13px; background: var(--card); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.bundle-product-option:hover { border-color: color-mix(in srgb, var(--primary) 35%, var(--border)); }
.bundle-product-option.is-selected { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 4%, #fff); }
.bundle-product-option > input { width: 18px; height: 18px; accent-color: var(--primary); }
.bundle-product-media { display: grid; place-items: center; width: 54px; height: 54px; overflow: hidden; border-radius: 10px; background: color-mix(in srgb, var(--primary) 8%, #f5f5f7); color: var(--primary); }
.bundle-product-media img { width: 100%; height: 100%; object-fit: cover; }
.bundle-product-copy strong, .bundle-product-copy small { display: block; }
.bundle-product-copy small { margin-top: .22rem; color: var(--muted); }
.bundle-version-field .field-label { margin-bottom: .25rem; font-size: .72rem; }
.bundle-version-field select { min-height: 38px; padding: .45rem 2rem .45rem .65rem; }
.bundle-minimum-note { display: flex; align-items: center; gap: .5rem; margin-top: .8rem; color: #a45a00; font-size: .84rem; font-weight: 650; }
.bundle-minimum-note[hidden] { display: none; }
.bundle-minimum-note svg { width: 16px; height: 16px; }
.bundle-rule-list { display: grid; gap: .25rem; margin-top: 1rem; }
.bundle-rule-list .toggle-field { align-items: center; padding: .9rem 0; border-top: 1px solid var(--border); }
.bundle-rule-list .toggle-field > span:last-child { display: grid; gap: .15rem; }
.bundle-rule-list .toggle-field small { color: var(--muted); font-weight: 400; }

.bundle-includes-block { padding: clamp(2.2rem, 5vw, 4.8rem) 1.25rem; background: var(--theme-bg, var(--background, #fff)); color: var(--theme-text, inherit); }
.bundle-includes-inner { width: min(1120px, 100%); margin: 0 auto; }
.bundle-includes-heading { max-width: 680px; margin-bottom: 1.35rem; }
.bundle-includes-heading h2, .content-bundle-heading h2 { margin: .25rem 0 .45rem; font-size: clamp(1.55rem, 3vw, 2.2rem); }
.bundle-includes-heading p, .content-bundle-heading p { margin: 0; color: var(--theme-muted, var(--muted)); }
.bundle-includes-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.bundle-includes-grid[hidden] { display: none; }
.bundle-included-card { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: .9rem; min-height: 88px; overflow: hidden; padding: .55rem .8rem .55rem .55rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 14px; background: var(--theme-card, var(--card, #fff)); color: var(--theme-text, inherit); text-decoration: none; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.bundle-included-card:hover { transform: translateY(-1px); border-color: var(--theme-primary, var(--primary)); box-shadow: 0 12px 28px rgba(25, 24, 45, .07); }
.bundle-included-card > img, .bundle-included-placeholder { width: 72px; height: 72px; border-radius: 10px; object-fit: cover; }
.bundle-included-placeholder { display: grid; place-items: center; background: color-mix(in srgb, var(--theme-primary, var(--primary)) 9%, #fff); color: var(--theme-primary, var(--primary)); }
.bundle-included-placeholder svg { width: 24px; height: 24px; }
.bundle-included-copy strong, .bundle-included-copy small { display: block; }
.bundle-included-copy small { margin-top: .25rem; color: var(--theme-muted, var(--muted)); }
.bundle-included-arrow { color: var(--theme-primary, var(--primary)); font-size: 1.15rem; }
.content-bundle-products { padding: 1.2rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 16px; background: var(--theme-card, var(--card)); }
.content-bundle-heading { margin-bottom: 1rem; }
.content-bundle-grid { grid-template-columns: 1fr; }
.bundle-included-open { color: var(--theme-primary, var(--primary)); font-size: .82rem; font-weight: 750; white-space: nowrap; }

@media (max-width: 800px) {
  .product-type-options, .bundle-includes-grid { grid-template-columns: 1fr; }
  .bundle-builder-layout { grid-template-columns: 1fr; }
  .bundle-product-option { grid-template-columns: auto 48px minmax(0, 1fr); }
  .bundle-version-field { grid-column: 2 / -1; }
  .bundle-product-media { width: 48px; height: 48px; }
}
@media (max-width: 560px) {
  .bundle-suggestion { grid-template-columns: auto 1fr; position: relative; }
  .bundle-suggestion .btn { grid-column: 1 / -1; width: 100%; }
  .bundle-suggestion-close { position: absolute; top: .5rem; right: .5rem; width: 32px; height: 32px; font-size: 1.1rem; padding: 0; }
}
  .product-kind-summary { align-items: flex-start; flex-direction: column; }
  .bundle-included-card { grid-template-columns: 58px minmax(0, 1fr); }
  .bundle-included-card > img, .bundle-included-placeholder { width: 58px; height: 58px; }
  .bundle-included-arrow, .bundle-included-open { grid-column: 2; }
}

.communication-newsletter { padding: 1.5rem; }
.section-heading-row { align-items: flex-start; margin-bottom: 1.25rem; }
.section-heading-row .card-title, .section-heading-row p { margin-bottom: .25rem; }
.newsletter-empty { margin-top: .75rem; }
.table-wrap { overflow-x: auto; }

/* ===== Paramètres : domaine personnalisé ===== */
.custom-domain-card { overflow: hidden; }
.custom-domain-heading {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  margin-bottom: 1rem;
}
.custom-domain-heading .card-title, .custom-domain-heading p { margin-bottom: .25rem; }
.custom-domain-heading .badge { flex: 0 0 auto; }
.custom-domain-current {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .9rem 1rem; margin-bottom: 1.2rem; border: 1px solid var(--border);
  border-radius: var(--radius); background: #f8f8fb;
}
.custom-domain-current strong { display: block; font-size: 1.05rem; word-break: break-all; }
.custom-domain-dns h3 { margin-bottom: .25rem; }
.custom-domain-dns-table-wrap { margin: .8rem 0 1rem; border: 1px solid var(--border); border-radius: var(--radius); }
.custom-domain-dns-table { margin: 0; min-width: 760px; border: 0; }
.custom-domain-dns-name, .custom-domain-dns-value {
  max-width: 300px; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .83rem;
}
.custom-domain-copy-actions { display: flex; align-items: center; gap: .35rem; }
.custom-domain-meta {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem;
  margin: 1rem 0;
}
.custom-domain-meta > div {
  padding: .75rem; border: 1px solid var(--border); border-radius: var(--radius);
}
.custom-domain-meta dt { color: var(--muted); font-size: .8rem; }
.custom-domain-meta dd { margin: .15rem 0 0; font-weight: 600; }
.custom-domain-actions { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.custom-domain-actions .btn-danger { margin-left: auto; }
/* Bouton destructif plein : le rouge sur fond blanc passait mal le contraste. */
.custom-domain-actions .btn-danger {
  color: #fff; background: var(--red); border-color: var(--red);
}
.custom-domain-actions .btn-danger:hover {
  color: #fff; background: var(--red-bright, var(--red)); border-color: var(--red-bright, var(--red));
}
@media (max-width: 640px) {
  .custom-domain-heading, .custom-domain-current { align-items: flex-start; flex-direction: column; }
  .custom-domain-meta { grid-template-columns: 1fr; }
  .custom-domain-actions .btn-danger { margin-left: 0; }
}

/* ===== Sales : commandes, clients et followers ===== */
.sales-page { max-width: 1280px; margin: 0 auto; }
.sales-page-head { margin-bottom: 1rem; }
.sales-overview { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1.2rem; }
.sales-overview-card { min-width: 0; }
.sales-overview-card > div strong { font-size: clamp(1.3rem, 2vw, 1.8rem); }
.sales-tabs {
  position: relative; display: flex; gap: .25rem; margin-bottom: 1.3rem; overflow-x: auto;
  border-bottom: 1px solid var(--border);
}
.sales-tab {
  position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .45rem; flex: 0 0 auto;
  padding: .72rem 1rem; border: 0;
  background: transparent; color: var(--muted); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer;
  transition: color .22s ease;
}
.sales-tab:hover { color: var(--primary); }
.sales-tab.active { color: var(--primary); }
.sales-tab-indicator {
  position: absolute; bottom: 0; left: 0; z-index: 2; width: 0; height: 2px;
  border-radius: 999px 999px 0 0; background: var(--primary); pointer-events: none;
}
.sales-tabs.is-indicator-ready .sales-tab-indicator {
  transition: width .34s cubic-bezier(.2, .8, .2, 1), transform .34s cubic-bezier(.2, .8, .2, 1);
}
.sales-tabs-static .sales-tab.active::after {
  content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 2px;
  border-radius: 999px 999px 0 0; background: var(--primary);
}
.sales-tab-count {
  display: inline-flex; align-items: center; justify-content: center; min-width: 1.55rem; height: 1.4rem;
  padding: 0 .35rem; border-radius: 999px; background: #efeff6; color: var(--muted);
  font-size: .73rem; line-height: 1;
}
.sales-tab.active .sales-tab-count { background: rgba(91, 104, 227, .12); color: var(--primary); }
.sales-panel[hidden] { display: none; }
.sales-panel.is-entering { animation: salesPanelIn .36s cubic-bezier(.2, .75, .25, 1) both; }
@keyframes salesPanelIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sales-tab, .sales-tab-indicator { transition: none !important; }
  .sales-panel.is-entering { animation: none; }
}
.sales-section-heading { margin-bottom: .9rem; }
.sales-section-heading h2 { margin: 0; }
.sales-section-heading p { margin: .2rem 0 0; }
.sales-export-actions { display: flex; align-items: center; gap: .45rem; }
.sales-filter-open.has-active-filters {
  border-color: var(--primary); background: rgba(91, 104, 227, .08); color: var(--primary);
}
.sales-filter-open.has-active-filters::after {
  content: attr(data-active-filters); display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.25rem; height: 1.25rem; padding: 0 .3rem; border-radius: 999px;
  background: var(--primary); color: #fff; font-size: .7rem; font-weight: 700;
}
.sales-demo-note {
  display: flex; align-items: center; gap: .55rem; margin-bottom: .9rem; padding: .65rem .8rem;
  border: 1px solid #dddef8; border-radius: var(--radius); background: #f5f5ff;
  color: #474c78; font-size: .86rem;
}
.badge-demo { background: #dedffc; color: #4049a7; flex-shrink: 0; }
.modal-box.sales-filter-modal-box {
  width: min(920px, calc(100vw - 2rem)); max-width: 920px; max-height: 90vh; overflow-y: auto;
}
.modal-box.sales-filter-modal-compact { max-width: 620px; }
.sales-filter-modal-box > p { margin-bottom: 1.25rem; }
.sales-filter-grid {
  display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: .85rem;
}
.sales-filter-grid-compact { grid-template-columns: minmax(240px, 1.4fr) minmax(200px, 1fr); }
.sales-filter-grid-followers { grid-template-columns: minmax(240px, 1.4fr) repeat(2, minmax(170px, 1fr)); }
.sales-filter-grid .field { margin: 0; }
.sales-filter-wide { grid-column: span 2; }
.sales-page input[type="search"], .sales-page input[type="date"], .sales-page input[type="number"] {
  width: 100%; min-height: 40px; padding: .55rem .75rem; border: 1px solid var(--border);
  border-radius: var(--radius); background: var(--card); color: var(--text); font: inherit;
}
.sales-page input[type="search"]:focus, .sales-page input[type="date"]:focus,
.sales-page input[type="number"]:focus {
  outline: 2px solid var(--primary); outline-offset: 0; border-color: transparent;
}
.sales-filter-modal-actions {
  margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border);
}
.sales-filter-modal-actions .sales-filter-clear { margin-right: auto; }
.sales-filter-summary-row {
  display: flex; align-items: center; min-height: 1.4rem; margin: 0 0 .7rem;
}
.sales-filter-summary-row p { margin: 0; }
.sales-modal-open { overflow: hidden; }

/* Fenêtre « Block a customer » de l'onglet Customers */
.customer-access-modal .modal-box {
  position: relative; width: min(680px, calc(100vw - 2rem));
  max-height: 90vh; overflow-y: auto;
}
.customer-access-close {
  position: absolute; top: .6rem; right: .7rem; width: 32px; height: 32px;
  border: 0; border-radius: 50%; background: transparent; color: var(--muted);
  font-size: 1.35rem; line-height: 1; cursor: pointer;
}
.customer-access-close:hover { background: #f1f1f7; color: var(--text); }
.customer-access-loading { color: var(--muted); }
.customer-access-form fieldset { border: 0; padding: 0; margin: 0 0 1.1rem; }
.customer-access-form legend {
  padding: 0; margin-bottom: .55rem; font-size: .8rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .04em; color: var(--muted);
}
.customer-access-danger {
  margin: 0 0 1.1rem; padding: .8rem .9rem .1rem;
  border: 1px solid color-mix(in srgb, var(--red) 35%, var(--border));
  border-radius: var(--radius); background: var(--red-bg);
}
.customer-access-danger p { margin: 0 0 .7rem; color: var(--text); font-size: .88rem; line-height: 1.45; }
.customer-access-reason textarea {
  width: 100%; padding: .55rem .75rem; border: 1px solid var(--border);
  border-radius: var(--radius); background: var(--card); color: var(--text); font: inherit;
}
.customer-access-revoke { margin-bottom: 1rem; }
.customer-access-products {
  margin: -.2rem 0 .2rem 1.45rem; padding: .7rem .8rem .1rem;
  border-left: 2px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  background: color-mix(in srgb, var(--primary) 3%, transparent); border-radius: 0 8px 8px 0;
}
.customer-access-product-list { max-height: 220px; overflow-y: auto; }
.customer-access-product strong { font-weight: 600; }
.customer-access-repurchase { margin-top: .6rem; padding-top: .7rem; border-top: 1px solid var(--border); }
.customer-access-error { margin: 0 0 .8rem; color: var(--red); font-size: .88rem; }
.customer-access-form .modal-actions { border-top: 1px solid var(--border); padding-top: 1rem; }
.sales-table-wrap {
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
}
.sales-table { min-width: 1050px; border: 0; }
.sales-table th { white-space: nowrap; }
.sales-table td { max-width: 260px; }
.sales-table :is(.sales-col-order-id, .sales-col-customer-id) { min-width: 150px; white-space: nowrap; }
.sales-table :is(.sales-col-order-date, .sales-col-first-seen) { min-width: 190px; white-space: nowrap; }
.sales-table .sales-col-customer-type { min-width: 155px; white-space: nowrap; }
.sales-table tbody tr:hover td { background: #fafafe; }
.sales-sub-id { display: block; margin-top: .08rem; color: var(--muted); font-size: .74rem; white-space: nowrap; }
.sales-products {
  display: block; max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sales-source-page {
  display: block; max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  background: #f1f1f6;
}
.demo-dot {
  display: inline-block; width: 6px; height: 6px; margin-left: .38rem; border-radius: 50%;
  background: #7a80d9; vertical-align: middle;
}
.sales-filter-empty { margin-top: 1rem; padding: 2rem 1rem; }
.sales-filter-empty h2 { margin-top: 0; }
.giveaway-flash { margin-bottom: 1rem; }
.giveaway-layout {
  display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .75fr);
  align-items: start; gap: 1rem;
}
.giveaway-composer, .giveaway-explainer { padding: 1.2rem; }
.giveaway-card-heading { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.1rem; }
.giveaway-card-heading h3, .giveaway-card-heading p { margin: 0; }
.giveaway-card-heading p { margin-top: .2rem; color: var(--muted); font-size: .86rem; }
.giveaway-card-icon {
  display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px;
  border-radius: 12px; background: color-mix(in srgb, var(--primary) 11%, #fff); color: var(--primary);
}
.giveaway-card-icon svg { width: 21px; height: 21px; }
.giveaway-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.giveaway-form-grid .field { margin: 0; }
.giveaway-field-wide { grid-column: 1 / -1; }
.giveaway-form-grid input, .giveaway-form-grid select { width: 100%; }
.giveaway-form-grid .field-label small { color: var(--muted); font-weight: 500; }
.giveaway-delivery-note {
  display: flex; align-items: flex-start; gap: .7rem; margin-top: 1rem; padding: .8rem .9rem;
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--border)); border-radius: var(--radius);
  background: color-mix(in srgb, var(--primary) 5%, #fff);
}
.giveaway-delivery-note > span { display: grid; place-items: center; color: var(--primary); padding-top: .12rem; }
.giveaway-delivery-note p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.giveaway-delivery-note strong { display: block; margin-bottom: .12rem; color: var(--text); }
.giveaway-form-actions {
  display: flex; align-items: center; justify-content: flex-end; gap: .8rem;
  margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border);
}
.giveaway-form-actions .hint { margin: 0 auto 0 0; }
.giveaway-explainer .eyebrow { color: var(--primary); }
.giveaway-explainer ol { display: grid; gap: .9rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.giveaway-explainer li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: .65rem; }
.giveaway-explainer li > span {
  display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
  background: #efeff8; color: var(--primary); font-size: .75rem; font-weight: 800;
}
.giveaway-explainer li p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.42; }
.giveaway-explainer li strong { display: block; margin-bottom: .1rem; color: var(--text); }
.giveaway-product-empty { padding: 1.4rem 1rem; }
.giveaway-product-empty h2 { margin-top: 0; }
.giveaway-history-heading {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin: 1.6rem 0 .75rem;
}
.giveaway-history-heading h3, .giveaway-history-heading p { margin: 0; }
.giveaway-history-heading p { margin-top: .18rem; }
.giveaway-table { min-width: 920px; }
.giveaway-email, .giveaway-account-state { display: block; margin-top: .2rem; color: var(--muted); font-size: .75rem; }
.giveaway-history-empty { padding: 2rem 1rem; }
.giveaway-history-empty > span { display: inline-grid; place-items: center; color: var(--primary); }
.giveaway-history-empty > span svg { width: 28px; height: 28px; }
.giveaway-history-empty h2 { margin-top: .5rem; }
@media (max-width: 850px) {
  .giveaway-layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .giveaway-form-grid { grid-template-columns: 1fr; }
  .giveaway-field-wide { grid-column: auto; }
  .giveaway-form-actions { align-items: stretch; flex-direction: column; }
  .giveaway-form-actions .hint { margin: 0; }
  .giveaway-form-actions .btn { width: 100%; }
}
.signup-import-flash { margin-bottom: 1rem; }
.signup-heading-actions { display: grid; justify-items: end; gap: .5rem; }
.signup-heading-actions > div { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; justify-content: flex-end; }
.blog-list-summary { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.blog-list-summary .hint { margin: 0; }

body.subscriber-import-open { overflow: hidden; }
.subscriber-import-modal { padding: 1.5rem; }
.subscriber-import-dialog {
  width: 92%; max-width: 560px; max-height: 90vh;
  padding: 0; overflow: auto; border-radius: 18px;
}
.subscriber-import-head {
  position: sticky; top: 0; z-index: 3; display: flex; align-items: flex-start;
  justify-content: space-between; gap: 1rem; padding: 1.35rem 1.5rem 1rem;
  border-bottom: 1px solid var(--border); background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
}
.subscriber-import-head .eyebrow { display: block; margin-bottom: .2rem; }
.subscriber-import-head h2 { margin: 0; }
.subscriber-import-progress {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem;
  padding: 1rem 1.5rem 0;
}
.subscriber-import-progress span {
  display: flex; align-items: center; gap: .45rem; padding: .55rem .65rem;
  border-radius: 10px; color: var(--muted); font-size: .82rem; font-weight: 700;
}
.subscriber-import-progress span[hidden] { display: none; }
.subscriber-import-progress i {
  display: inline-grid; place-items: center; width: 23px; height: 23px;
  border: 1px solid var(--border); border-radius: 50%; background: #fff;
  color: var(--muted); font-style: normal; font-size: .75rem;
}
.subscriber-import-progress span.active {
  background: color-mix(in srgb, var(--primary) 8%, white); color: var(--primary);
}
.subscriber-import-progress span.active i,
.subscriber-import-progress span.complete i {
  border-color: var(--primary); background: var(--primary); color: #fff;
}
.subscriber-import-step { padding: 1.35rem 1.5rem 1.5rem; animation: settingsPanelIn .22s ease both; }
.subscriber-import-step[hidden] { display: none; }
.subscriber-import-step > h3, .subscriber-mapping-head h3 { margin: 0 0 .35rem; }
.subscriber-import-back {
  margin: 0 0 1rem; padding: 0; border: 0; background: transparent;
  color: var(--primary); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer;
}
.subscriber-source-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem; margin: 1.25rem 0;
}
.signup-import-source-layout, .sales-import-source-layout { display: grid; gap: .8rem; margin: 1.25rem 0 0; }
.signup-import-service-grid, .sales-import-service-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem;
}
.signup-import-custom-source, .sales-import-custom-source {
  width: 100%; min-height: 86px; justify-content: center; text-align: center;
}
.signup-import-custom-source > span:last-child,
.sales-import-custom-source > span:last-child { justify-items: center; }
.subscriber-source-choice {
  position: relative; display: flex; align-items: center; gap: .8rem; min-height: 100px;
  padding: 1rem; border: 1px solid var(--border); border-radius: 14px; background: #fff;
  cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.subscriber-source-choice:hover { transform: translateY(-2px); border-color: #b9b4df; box-shadow: 0 8px 24px rgba(36,29,89,.08); }
.subscriber-source-choice.selected,
.subscriber-source-choice:has(input:focus-visible) {
  border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
.subscriber-source-choice input { position: absolute; opacity: 0; pointer-events: none; }
.subscriber-source-choice > span:last-child { display: grid; gap: .2rem; min-width: 0; }
.subscriber-source-choice small { color: var(--muted); line-height: 1.35; }
.subscriber-source-icon {
  display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px;
  border-radius: 11px; background: color-mix(in srgb, var(--primary) 9%, white);
  color: var(--primary); font-weight: 850; font-size: 1.05rem;
}
.subscriber-source-icon .icon { width: 1.15rem; height: 1.15rem; }
.subscriber-source-brand { overflow: hidden; background: #fff; border: 1px solid var(--border); }
.subscriber-source-brand img { display: block; width: 26px; height: 26px; object-fit: contain; }
.subscriber-file-drop {
  position: relative; display: grid; place-items: center; gap: .35rem; min-height: 190px;
  margin: 1rem 0; padding: 1.25rem; border: 1.5px dashed #aaa5cc; border-radius: 15px;
  background: #fafafe; text-align: center; cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.subscriber-file-drop:hover, .subscriber-file-drop.is-dragging {
  border-color: var(--primary); background: color-mix(in srgb, var(--primary) 5%, white);
}
.subscriber-file-drop.has-file {
  border-style: solid; border-color: var(--primary); background: color-mix(in srgb, var(--primary) 5%, white);
}
.subscriber-file-drop input {
  position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer;
}
.subscriber-file-drop-icon {
  display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: .25rem;
  border-radius: 13px; background: var(--primary); color: #fff;
}
.subscriber-file-drop-icon .icon { width: 1.2rem; height: 1.2rem; }
.subscriber-file-drop small { color: var(--muted); }
.subscriber-file-name {
  max-width: 100%; margin-top: .35rem; padding: .35rem .65rem; overflow: hidden;
  border-radius: 999px; background: #fff; color: var(--primary); font-size: .82rem;
  font-weight: 700; text-overflow: ellipsis; white-space: nowrap;
}
.subscriber-header-choice { margin: .75rem 0; }
.subscriber-privacy-note {
  display: flex; align-items: center; gap: .45rem; margin: .8rem 0 0;
  color: var(--muted); font-size: .82rem;
}
.subscriber-privacy-note .icon { flex: 0 0 auto; width: .95rem; height: .95rem; }
.subscriber-import-actions {
  display: flex; align-items: center; justify-content: flex-end; gap: .6rem;
  margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border);
}
.subscriber-import-actions [data-import-cancel] { margin-right: auto; }
.subscriber-mapping-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
}
.subscriber-column-mapping {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem; margin: 1rem 0;
}
.subscriber-column-mapping .field { margin: 0; }
.subscriber-preview-wrap {
  max-width: 100%; max-height: 350px; overflow: auto;
  border: 1px solid var(--border); border-radius: 12px;
}
.subscriber-preview-table { margin: 0; min-width: 680px; }
.subscriber-preview-table th {
  position: sticky; top: 0; z-index: 1; background: #f7f7fb; white-space: nowrap;
}
.subscriber-preview-table td {
  max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.subscriber-preview-pagination {
  display: flex; align-items: center; justify-content: center; gap: .8rem; margin-top: .75rem;
}
.subscriber-preview-pagination .hint { min-width: 100px; text-align: center; }

/* Sales import reuses the subscriber CSV wizard's shell and interaction
   language, with wider review surfaces for product and financial mapping. */
.sales-import-dialog { max-width: 1020px; }
.sales-import-progress { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.subscriber-import-actions [data-sales-import-cancel] { margin-right: auto; }
.sales-import-history {
  margin: 1rem 0; padding: .75rem .9rem; border: 1px solid var(--border);
  border-radius: 12px; background: #fafafe;
}
.sales-import-history summary, .sales-import-advanced summary {
  cursor: pointer; color: var(--text); font-size: .88rem; font-weight: 750;
}
.sales-import-history-list { display: grid; gap: .55rem; margin-top: .75rem; }
.sales-import-history-list article {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center;
  gap: .65rem; padding: .65rem .7rem; border-radius: 9px; background: #fff;
}
.sales-import-history-list article div { min-width: 0; }
.sales-import-history-list article strong, .sales-import-history-list article small { display: block; }
.sales-import-history-list article strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sales-import-history-list article small { margin-top: .15rem; color: var(--muted); }
.sales-import-first-row { max-width: 320px; margin: .9rem 0; }
.sales-import-column-mapping { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sales-import-product-list {
  display: block; max-height: 430px; margin: 1rem 0; padding: .1rem .15rem .2rem;
  overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable;
}
.sales-import-product-group {
  min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: #fff;
}
.sales-import-product-group > header {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between;
  gap: .8rem; padding: .8rem .9rem; border-bottom: 1px solid var(--border); background: #f7f7fb;
}
.sales-import-product-group h4 { margin: 0; font-size: .95rem; }
.sales-import-product-group header p { margin: .16rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.35; }
.sales-import-product-count {
  display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px;
  border-radius: 999px; background: color-mix(in srgb, var(--primary) 10%, white); color: var(--primary); font-size: .78rem;
}
.sales-import-product-group-rows {
  display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: .7rem; padding: .7rem;
}
.sales-import-product-empty {
  grid-column: 1 / -1; margin: 0; padding: 1rem; color: var(--muted); font-size: .82rem; text-align: center;
}
.sales-import-product-card {
  min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: #fff;
  box-shadow: 0 2px 8px rgba(36,29,89,.025);
}
.sales-import-product-card[hidden] { display: none; }
.sales-import-product-row {
  position: relative; display: grid; gap: .7rem; padding: .75rem 2.65rem .75rem .75rem; border: 1px solid var(--border);
  border-radius: 11px; background: #fbfbfe;
}
.sales-import-product-card > .sales-import-product-row {
  border: 0; border-radius: 0; background: #fff;
}
.sales-import-product-row[hidden] { display: none; }
.sales-import-product-delete {
  position: absolute; top: .55rem; right: .55rem; display: grid; place-items: center;
  width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px;
  background: transparent; color: #8b8da0; cursor: pointer;
  transition: color .16s ease, background-color .16s ease, transform .16s ease;
}
.sales-import-product-delete:hover,
.sales-import-product-delete:focus-visible { color: var(--red); background: var(--red-bg); transform: translateY(-1px); }
.sales-import-product-delete svg { width: 16px; height: 16px; fill: currentColor; }
.sales-import-product-summary { align-content: center; }
.sales-import-variation-list { padding: .55rem; border-top: 1px solid var(--border); background: #f7f7fb; }
.sales-import-variation-head {
  display: flex; align-items: center; justify-content: space-between; padding: .05rem .2rem .5rem;
  color: var(--muted); font-size: .7rem; letter-spacing: .035em; text-transform: uppercase;
}
.sales-import-variation-head span {
  display: grid; place-items: center; min-width: 22px; height: 22px; border-radius: 999px;
  background: #e9e9f2; color: var(--text); font-size: .68rem; font-weight: 750;
}
.sales-import-variation-list > .sales-import-product-row {
  margin-top: .35rem; border: 0; border-top: 1px dashed #d9d9e5; border-radius: 0; background: transparent;
}
.sales-import-variation-list > .sales-import-variation-head + .sales-import-product-row { margin-top: 0; }
.sales-import-product-row.is-variation {
  gap: .55rem; padding: .65rem 2.5rem .65rem .65rem; font-size: .86rem;
}
.sales-import-product-row.is-variation .sales-import-product-source strong { font-size: .86rem; font-weight: 700; }
.sales-import-product-row.is-variation .sales-import-product-rows { font-size: .68rem; }
.sales-import-product-row.is-variation .sales-import-product-field .field-label { font-size: .63rem; }
.sales-import-product-row.is-variation .sales-import-product-controls select { font-size: .82rem; }
.sales-import-product-source { min-width: 0; }
.sales-import-product-source strong, .sales-import-product-source small { display: block; }
.sales-import-product-source strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sales-import-product-source small { margin-top: .18rem; color: var(--muted); }
.sales-import-product-meta { display: flex; align-items: center; gap: .45rem; margin-bottom: .28rem; }
.sales-import-product-match {
  padding: .12rem .38rem; border-radius: 999px; font-size: .63rem; font-weight: 750; line-height: 1.35;
}
.sales-import-product-match.is-matched { background: #eaf7ee; color: #28723b; }
.sales-import-product-match.is-create { background: #edf1ff; color: #4758a8; }
.sales-import-product-match.is-review { background: #fff4df; color: #95651f; }
.sales-import-product-match.is-combined { background: #f0ebff; color: #6b47a8; }
.sales-import-product-rows { font-size: .73rem; }
.sales-import-product-controls { display: grid; grid-template-columns: repeat(2, minmax(125px, 1fr)); gap: .5rem; }
.sales-import-product-field { display: grid; gap: .22rem; min-width: 0; }
.sales-import-product-field:first-child { grid-column: 1 / -1; }
.sales-import-combine-field { grid-column: 1 / -1; }
.sales-import-product-field .field-label { font-size: .68rem; }
.sales-import-product-field select { min-width: 0; width: 100%; }
.sales-import-product-field select.is-invalid {
  border-color: var(--red); box-shadow: 0 0 0 3px color-mix(in srgb, var(--red) 12%, transparent);
}
.sales-import-product-field[hidden] { display: none; }
.sales-import-product-controls select[hidden] { display: none; }
.sales-import-advanced {
  margin-top: 1rem; padding: .9rem 1rem .25rem; border: 1px solid var(--border);
  border-radius: 12px; background: #fafafe;
}
.sales-import-advanced .check-field { margin-top: .8rem; }
.sales-import-summary-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin: 1rem 0;
}
.sales-import-summary-grid article {
  display: grid; gap: .2rem; padding: .85rem; border: 1px solid var(--border);
  border-radius: 12px; background: #fff;
}
.sales-import-summary-grid span, .sales-import-summary-grid small { color: var(--muted); }
.sales-import-summary-grid span { font-size: .75rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.sales-import-summary-grid strong { font-size: 1.15rem; }
.sales-import-safety {
  display: grid; gap: .2rem; padding: .85rem 1rem; border: 1px solid #cfe2d4;
  border-radius: 12px; background: #f3fbf5; color: #285e35;
}
.sales-import-safety span { font-size: .85rem; line-height: 1.45; }
.sales-import-issues { display: grid; gap: .45rem; max-height: 240px; overflow: auto; margin-top: .8rem; }
.sales-import-issues .alert { margin: 0; padding: .6rem .75rem; font-size: .82rem; }
.sales-import-order-dialog { position: relative; width: min(760px, calc(100vw - 2rem)); max-height: 90vh; overflow: auto; }
.sales-import-order-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.sales-import-order-meta div { padding: .7rem; border-radius: 9px; background: #f7f7fb; }
.sales-import-order-meta dt { color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.sales-import-order-meta dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.sales-import-order-items { display: grid; gap: .5rem; }
.sales-import-order-items article {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
  gap: .7rem; padding: .75rem; border: 1px solid var(--border); border-radius: 10px;
}
.sales-import-order-items small, .sales-import-order-items code { display: block; margin-top: .2rem; }
.sales-import-order-items code { grid-column: 1 / -1; padding: .45rem .6rem; background: #f1f1f6; overflow-wrap: anywhere; }

@media (max-width: 720px) {
  .subscriber-import-modal { padding: 0; }
  .subscriber-import-dialog { width: 100%; max-height: 100vh; min-height: 100vh; border-radius: 0; }
  .subscriber-source-grid, .subscriber-column-mapping { grid-template-columns: 1fr; }
  .signup-import-service-grid, .sales-import-service-grid { grid-template-columns: 1fr; }
  .subscriber-import-progress { padding-left: 1rem; padding-right: 1rem; }
  .subscriber-import-progress span { justify-content: center; font-size: 0; }
  .subscriber-import-progress i { font-size: .75rem; }
  .subscriber-import-step { padding: 1.1rem 1rem 1.25rem; }
  .subscriber-import-head { padding: 1rem; }
  .sales-import-column-mapping, .sales-import-summary-grid,
  .sales-import-product-group-rows, .sales-import-product-row, .sales-import-product-controls, .sales-import-order-meta {
    grid-template-columns: 1fr;
  }
  .sales-import-progress span { padding-inline: .25rem; }
  .sales-import-history-list article { grid-template-columns: minmax(0, 1fr) auto; }
  .sales-import-history-list article .btn { grid-column: 1 / -1; }
}

@media (max-width: 1080px) {
  .sales-filter-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .sales-filter-wide { grid-column: span 1; }
  .sales-filter-grid-compact { grid-template-columns: minmax(220px, 1.3fr) minmax(180px, 1fr); }
}
@media (max-width: 760px) {
  .sales-overview { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .sales-filter-grid, .sales-filter-grid-compact, .sales-filter-grid-followers { grid-template-columns: 1fr; }
  .sales-filter-modal-actions { flex-wrap: wrap; }
  .sales-filter-modal-actions .sales-filter-clear { width: 100%; margin: 0 0 .25rem; }
  .sales-demo-note { align-items: flex-start; }
}

/* ===== Questions checkout ===== */
.questions-page-head p { color: var(--muted); margin: .25rem 0 0; }
.section-kicker {
  color: var(--primary); display: block; font-size: .72rem; font-weight: 750;
  letter-spacing: .09em; margin-bottom: .3rem; text-transform: uppercase;
}
.questions-intro {
  align-items: center; background: linear-gradient(135deg, #f6f4ff, #fbfaff);
  border: 1px solid #ded9ff; border-radius: 14px; display: flex; gap: .9rem;
  margin-bottom: 1.25rem; padding: 1rem 1.1rem;
}
.questions-intro-icon {
  align-items: center; background: #fff; border-radius: 11px; color: var(--primary);
  display: inline-flex; flex: 0 0 42px; height: 42px; justify-content: center;
  box-shadow: 0 4px 14px rgba(92, 75, 234, .12);
}
.questions-intro-icon .icon { height: 21px; width: 21px; }
.questions-intro p { color: var(--muted); margin: .2rem 0 0; }
.questions-layout {
  align-items: start; display: grid; gap: 1.25rem;
  grid-template-columns: minmax(300px, .85fr) minmax(0, 1.35fr);
}
.questions-composer, .questions-library { border-radius: 16px; }
.questions-card-heading {
  align-items: flex-start; border-bottom: 1px solid var(--border); display: flex;
  gap: .75rem; margin: -.1rem 0 1rem; padding-bottom: 1rem;
}
.questions-card-heading .card-title { margin: 0 0 .15rem; }
.questions-card-heading p { margin: 0; }
.questions-step {
  align-items: center; background: #efedff; border-radius: 999px; color: var(--primary);
  display: inline-flex; flex: 0 0 32px; font-size: .75rem; font-weight: 800;
  height: 32px; justify-content: center;
}
.questions-field { margin-bottom: 1rem; }
.questions-layout [hidden] { display: none !important; }
.questions-dependent-field {
  animation: questionsReveal .22s ease; background: #fafafd; border: 1px solid var(--border);
  border-radius: 10px; padding: .75rem;
}
@keyframes questionsReveal {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.questions-required {
  align-items: flex-start; background: #fafafd; border: 1px solid var(--border);
  border-radius: 10px; margin: 1rem 0; padding: .8rem;
}
.questions-required span { display: grid; gap: .1rem; }
.questions-required small { color: var(--muted); font-weight: 400; }
.questions-submit { justify-content: center; width: 100%; }
.questions-list { display: grid; gap: .65rem; }
.question-item {
  align-items: center; background: #fbfbfd; border: 1px solid var(--border);
  border-radius: 12px; display: flex; gap: 1rem; justify-content: space-between;
  padding: .9rem 1rem; transition: border-color .18s ease, box-shadow .18s ease;
}
.question-item:hover { border-color: #cbc5fb; box-shadow: 0 5px 16px rgba(30, 25, 80, .05); }
.question-item-main { min-width: 0; }
.question-item-title { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; }
.question-item-meta { align-items: center; color: var(--muted); display: flex; flex-wrap: wrap; gap: .4rem .65rem; margin-top: .45rem; }
.question-item-meta span + span::before { color: #c8c8d2; content: "•"; margin-right: .65rem; }
.question-item-meta code { background: #eeecff; border-radius: 6px; color: #5144c7; padding: .16rem .4rem; }
.badge-purple { background: #eeecff; color: #5144c7; }
.questions-empty {
  align-items: center; color: var(--muted); display: flex; flex-direction: column;
  min-height: 250px; justify-content: center; padding: 2rem; text-align: center;
}
.questions-empty > span {
  align-items: center; background: #f0eefc; border-radius: 999px; color: var(--primary);
  display: inline-flex; height: 54px; justify-content: center; margin-bottom: .8rem; width: 54px;
}
.questions-empty strong { color: var(--text); }
.questions-empty p { margin: .35rem 0 0; max-width: 360px; }
.checkout-questions {
  border: 1px dashed var(--border); border-radius: var(--radius);
  padding: .9rem 1rem .1rem; margin-bottom: 1.1rem;
}
.checkout-questions .card-title { font-size: .95rem; margin-bottom: .75rem; }
@media (max-width: 900px) {
  .questions-layout { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
  .question-item { align-items: flex-start; }
  .question-item .btn span { display: none; }
}

/* ===== Éditeur de collection ===== */
.collection-editor { max-width: 940px; }
.collection-editor-form { display: grid; gap: 1rem; }
.collection-form-tabs {
  background: #f2f3f7; border: 1px solid var(--border); border-radius: 14px;
  display: grid; gap: .45rem; grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: .45rem;
}
.collection-form-tabs .editor-section-tab {
  align-items: center; background: transparent; border: 0; border-radius: 10px;
  color: var(--muted); cursor: pointer; display: grid; gap: .15rem;
  grid-template-columns: 34px minmax(0, 1fr); padding: .75rem 1rem; text-align: left;
}
.collection-form-tabs .editor-section-tab > span {
  align-items: center; background: #e7e8ee; border-radius: 999px; display: inline-flex;
  font-size: .72rem; grid-row: 1 / 3; height: 30px; justify-content: center; width: 30px;
}
.collection-form-tabs .editor-section-tab strong,
.collection-form-tabs .editor-section-tab small { display: block; }
.collection-form-tabs .editor-section-tab small { color: var(--muted); }
.collection-form-tabs .editor-section-tab.active {
  background: #fff; box-shadow: 0 2px 10px rgba(15, 23, 42, .08); color: var(--text);
}
.collection-form-tabs .editor-section-tab.active > span { background: var(--primary); color: #fff; }
.collection-form-panel { display: grid; gap: 1rem; }
.collection-form-panel[hidden] { display: none !important; }
.collection-product-picker { max-height: 360px; overflow: auto; }
.collection-product-picker .check-item { border-radius: 8px; gap: .65rem; }
.collection-product-picker .check-item > span:first-of-type { flex: 1; }
.collection-advanced { padding: 0; }
.collection-advanced summary {
  align-items: center; cursor: pointer; display: flex; justify-content: space-between;
  list-style: none; padding: 1rem 1.15rem;
}
.collection-advanced summary::-webkit-details-marker { display: none; }
.collection-advanced summary > span:first-child { display: grid; gap: .15rem; }
.collection-advanced summary small { color: var(--muted); font-weight: 400; }
.collection-advanced-chevron { font-size: 1.3rem; transition: transform .2s ease; }
.collection-advanced[open] .collection-advanced-chevron { transform: rotate(180deg); }
.collection-advanced-body { border-top: 1px solid var(--border); padding: 1rem 1.15rem; }
.collection-share-preview { max-height: 270px; }
.collection-share-preview img { height: 100%; object-fit: cover; width: 100%; }
.collection-form-actions {
  align-items: center; display: flex; gap: .65rem; justify-content: flex-end;
  padding-top: .35rem;
}
@media (max-width: 650px) {
  .collection-form-tabs { grid-template-columns: 1fr; }
  .collection-form-tabs .editor-section-tab small { display: none; }
}

/* ===== Bibliothèque vendeur ===== */
.library-banner {
  width: 100%; max-height: 260px; object-fit: cover;
  border-radius: var(--radius); margin-bottom: 1.25rem;
}
.seller-links { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.25rem; }

/* ===== Confirmation de commande ===== */
.confirmation-page { max-width: 720px; margin: 0 auto; }
.confirmation-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.25rem; }

/* ===== Icônes SVG (remplacent les émojis) ===== */
.icon { vertical-align: -0.14em; flex-shrink: 0; }
/* Icône téléversée à la place d'un tracé : même gabarit que les icônes inline. */
img.icon-custom { width: 1em; height: 1em; object-fit: contain; }
h1 .icon, h2 .icon, h3 .icon { vertical-align: -0.1em; margin-right: .25em; }
.btn .icon { margin-right: .3em; vertical-align: -0.14em; }
.btn-icon { padding: .35rem .5rem; line-height: 1; }
.btn-icon .icon { margin-right: 0; }
.badge .icon { margin-right: .2em; }
.cover-placeholder .icon, .table-thumb.placeholder .icon { color: #b6b2d6; }
.cover-placeholder { font-size: 2.2rem; }

/* ===== Surlignage : couleurs ===== */
mark { background: #fff3a8; padding: 0 .15em; border-radius: 3px; }
.marker-yellow { background: #fff3a8; }
.marker-green { background: #c9f2d0; }
.marker-blue { background: #c5e3ff; }
.marker-pink { background: #ffd3e6; }
.marker-orange { background: #ffe1bd; }
.marker-purple { background: #e4d9ff; }

/* Bloc personnalisation dans l'éditeur */
.perso-block { padding: .4em 0; outline: none; }
.perso-block:empty::before { content: attr(data-placeholder); color: var(--muted); }

/* Ligne date de sortie + croix d'annulation */

/* Croix dans un badge (annulation de la sortie programmée) */
.badge-x {
  background: none; border: none; padding: 0 0 0 .25em; cursor: pointer;
  color: inherit; font-size: inherit; vertical-align: -0.05em;
}
.badge-x:hover { color: var(--red); }

/* ===== Header de l'espace boutique (côté client) ===== */
.storebar {
  background: #222222; color: #fff; font-size: .8rem;
  padding: .35rem 1.5rem; display: flex; justify-content: space-between; gap: 1rem;
}
.storebar a { color: #cdc8f5; }
.topnav-store .brand { display: inline-flex; align-items: center; gap: .45em; }
.store-banner { width: 100%; max-height: 240px; object-fit: cover; display: block; }
.store-head { text-align: center; padding: 2rem 1rem 1.5rem; }
.store-head h1 { margin-bottom: .25rem; }

/* Page d'accueil (vitrine plateforme) */
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; margin: 2rem 0; }
.feature-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; }
.feature-card .icon { font-size: 1.6rem; color: var(--primary); }
.feature-card h3 { margin: .6rem 0 .3rem; }
.feature-card p { color: var(--muted); font-size: .92rem; margin: 0; }

/* Accès bibliothèque par email */
.library-access { max-width: 440px; margin: 3rem auto; }

/* ===== Website builder v2 : blocs publics ===== */
/* La page construite sort du conteneur : pleine largeur réelle */
main.container:has(> .store-page-blocks), main.container.store-builder-main { max-width: none; padding: 0; }
.store-page-blocks { margin: 0; width: 100%; }
.store-chrome-header,
.store-chrome-header > .store-page-blocks { display: contents; }
.store-builder-main > .store-page-blocks {
  width: 100%; margin: 0;
}
.product-page-blocks {
  width: 100vw; margin-top: 2rem; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}

/* Thème par bloc : chaque bloc porte ses variables --theme-* en style inline */
.page-block.pb-themed {
  background-color: var(--theme-bg, transparent);
  color: var(--theme-text, inherit);
  font-family: var(--theme-font-body, inherit);
  background-size: cover;
  background-position: center;
}
.pb-contain {
  width: 100%; max-width: var(--pb-maxw, 1100px); box-sizing: border-box;
  margin-left: auto; margin-right: auto; padding: 0 1.25rem;
}
.pb-themed h1, .pb-themed h2, .pb-themed h3 { font-family: var(--theme-font-heading, inherit); }
.pb-themed h1 { color: var(--theme-h1, inherit); }
.pb-themed h2 { color: var(--theme-h2, inherit); }
.pb-themed .hint, .pb-themed figcaption { color: var(--theme-muted, var(--muted)); }
.pb-themed a { color: var(--theme-primary, var(--primary)); }
.pb-themed .btn {
  position: relative; overflow: hidden; transition: all .2s ease;
  border-radius: var(--theme-btn-radius, var(--radius));
}
.pb-themed .btn-primary { background: var(--theme-btn-primary, var(--primary)); border-color: var(--theme-btn-primary, var(--primary)); color: var(--theme-btn-primary-text, #fff); }
.pb-themed .btn-primary:hover { background: var(--theme-btn-primary-hover, var(--primary-dark)); border-color: var(--theme-btn-primary-hover, var(--primary-dark)); color: var(--theme-btn-primary-text, #fff); }
.pb-themed .btn-secondary { background: var(--theme-btn-secondary, #fff); color: var(--theme-btn-secondary-text, inherit); border-color: var(--theme-border, var(--border)); }
.pb-themed .btn-secondary:hover { background: var(--theme-btn-secondary-hover, #f4f4f4); color: var(--theme-btn-secondary-text, inherit); }
.pb-themed .btn-tertiary { background: var(--theme-btn-tertiary, #ececf4); color: var(--theme-btn-tertiary-text, inherit); border-color: transparent; }
.pb-themed .btn-tertiary:hover { background: var(--theme-btn-tertiary-hover, #dcdcdf); color: var(--theme-btn-tertiary-text, inherit); }
.pb-themed .product-card { background: var(--theme-card, #fff); border-color: var(--theme-border, var(--border)); color: var(--theme-text, inherit); }
.pb-themed .product-card h3 { color: var(--theme-text, inherit); }
/* Bloc avec image de fond : le texte passe en clair par-dessus le voile */
.pb-has-bg, .pb-has-bg h1, .pb-has-bg h2, .pb-has-bg h3, .pb-has-bg p { color: #fff; }

/* Animations des boutons (définies par le thème du bloc, data-anim) */
.pb-themed[data-anim="lift"] .btn:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, .18); }
.pb-themed[data-anim="grow"] .btn:hover { transform: scale(1.05); }
.pb-themed[data-anim="shine"] .btn::after {
  content: ''; position: absolute; inset: 0; transform: translateX(-110%) skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent);
}
.pb-themed[data-anim="shine"] .btn:hover::after { transform: translateX(110%) skewX(-18deg); transition: transform .55s ease; }
.pb-themed[data-anim="pulse"] .btn:hover { animation: pbBtnPulse 1s ease infinite; }
@keyframes pbBtnPulse {
  0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .35); }
  70% { box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}
.pb-themed[data-anim="slide"] .btn { background-size: 200% 100%; }
.pb-themed[data-anim="slide"] .btn:hover { filter: brightness(1.12); letter-spacing: .03em; }

.pb-buttons { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1rem; }
.pb-section-title { margin: 0 0 1.2rem; }
.pb-text-align-left .pb-contain { text-align: left; }
.pb-text-align-center .pb-contain { text-align: center; }
.pb-text-align-right .pb-contain { text-align: right; }
.pb-text-align-left .pb-buttons { justify-content: flex-start; }
.pb-text-align-center .pb-buttons { justify-content: center; }
.pb-text-align-right .pb-buttons { justify-content: flex-end; }

/* Header du site (bloc fixe) */
.pb-header { background: var(--theme-card, #fff); border-bottom: 1px solid var(--theme-border, var(--border)); }
section.page-block.pb-sticky { position: sticky; top: 0; z-index: 60; }
.pb-header-inner { display: flex; align-items: center; gap: 1.2rem; }
.pb-header-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--theme-text, inherit) !important; }
.pb-header-name { font-weight: 800; font-size: 1.05rem; font-family: var(--theme-font-heading, inherit); }
.pb-header-logo { width: auto; max-width: min(280px, 48vw); object-fit: contain; display: block; }
.pb-header-nav { display: flex; gap: .4rem; flex: 1; flex-wrap: wrap; }
.pb-header-link { color: var(--theme-text, inherit) !important; text-decoration: none; padding: .45rem .55rem; border-radius: 6px; }
.pb-header-link:hover { color: var(--theme-primary, var(--primary)) !important; background: rgba(127, 127, 127, .08); }
.pb-header-controls { display: flex; align-items: center; gap: .65rem; margin-left: auto; }
.pb-header-actions { display: flex; align-items: center; gap: .35rem; }
.pb-header-buttons { display: flex; align-items: center; gap: .55rem; margin-top: 0; }
.pb-header-icon {
  position: relative; width: 42px; height: 42px; padding: 0; border: 1px solid transparent;
  border-radius: 999px; background: transparent; color: var(--theme-text, inherit) !important;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font: inherit;
}
.pb-header-icon:hover {
  text-decoration: none; color: var(--theme-primary, var(--primary)) !important;
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, transparent);
  border-color: color-mix(in srgb, var(--theme-primary, var(--primary)) 24%, transparent);
}
.pb-header-icon .icon { width: 1.2rem; height: 1.2rem; }
.pb-header-count {
  position: absolute; top: -2px; right: -3px; min-width: 19px; height: 19px; padding: 0 5px;
  border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--theme-btn-primary, var(--theme-primary)); color: var(--theme-btn-primary-text, #fff);
  border: 2px solid var(--theme-card, #fff); font-size: .68rem; font-weight: 800; line-height: 1;
}
.pb-header-center .pb-header-inner { flex-direction: column; gap: .4rem; padding-top: .6rem; padding-bottom: .6rem; }
.pb-header-center .pb-header-nav { justify-content: center; flex: initial; }
.pb-header-center .pb-header-controls { margin-left: 0; }
.pb-header-split .pb-header-nav { justify-content: center; }
.pb-header-links-right .pb-header-nav { flex: 0 1 auto; justify-content: flex-end; margin-left: auto; }
.pb-header-links-right .pb-header-controls { margin-left: 0; }
@media (max-width: 720px) {
  .pb-header-inner { gap: .55rem; flex-wrap: wrap; padding-top: .45rem; padding-bottom: .45rem; }
  .pb-header-brand { max-width: calc(100% - 100px); }
  .pb-header-nav { order: 3; flex-basis: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .pb-header-buttons { display: none; }
}

/* Menu burger optionnel du header. */
body.pb-burger-open { overflow: hidden; }
.pb-burger-trigger,
.pb-burger-close {
  color: var(--pb-burger-icon-color, var(--theme-text, inherit)) !important;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .22s ease;
}
.pb-burger-trigger:hover { transform: scale(1.06); }
.pb-burger-glyph {
  position: relative; display: inline-flex; width: 22px; height: 16px;
  flex-direction: column; justify-content: space-between;
}
.pb-burger-glyph i {
  display: block; width: 100%; height: 2px; border-radius: 999px;
  background: currentColor; transform-origin: center;
  transition: transform .28s cubic-bezier(.2, .8, .2, 1), opacity .18s ease, width .24s ease;
}
.pb-burger-trigger:hover .pb-burger-glyph i:nth-child(2) { width: 72%; }
.pb-burger-trigger[aria-expanded="true"] .pb-burger-glyph i:first-child,
.pb-burger-shell.is-open .pb-burger-close:not(.has-custom-icon) .pb-burger-glyph i:first-child {
  transform: translateY(7px) rotate(45deg);
}
.pb-burger-trigger[aria-expanded="true"] .pb-burger-glyph i:nth-child(2),
.pb-burger-shell.is-open .pb-burger-close:not(.has-custom-icon) .pb-burger-glyph i:nth-child(2) {
  width: 0; opacity: 0;
}
.pb-burger-trigger[aria-expanded="true"] .pb-burger-glyph i:last-child,
.pb-burger-shell.is-open .pb-burger-close:not(.has-custom-icon) .pb-burger-glyph i:last-child {
  transform: translateY(-7px) rotate(-45deg);
}
.pb-burger-custom-icon {
  display: block; width: 24px; height: 24px; object-fit: contain;
}
.pb-burger-shell {
  position: fixed; inset: 0; z-index: 1100;
  visibility: hidden; pointer-events: none;
}
.pb-burger-overlay {
  position: absolute; inset: 0; margin: 0; padding: 0; border: 0;
  background: rgba(8, 8, 16, .56); opacity: 0; cursor: pointer;
  transition: opacity .28s ease;
}
.pb-burger-panel {
  position: absolute; inset: 0 0 0 auto;
  display: flex; width: min(460px, 100vw); height: 100%; padding: 1.35rem 1.5rem 1.5rem;
  flex-direction: column; overflow-y: auto;
  border-left: 1px solid var(--theme-border, var(--border));
  background-color: var(--theme-bg, #fff); background-position: center; background-size: cover;
  color: var(--theme-text, var(--text)); box-shadow: -22px 0 65px rgba(8, 8, 18, .25);
  font-family: var(--theme-font-body, inherit);
  opacity: 1; transform: none; transform-origin: right center;
  transition: opacity .4s cubic-bezier(.2, .75, .25, 1), transform .4s cubic-bezier(.2, .75, .25, 1);
}
.pb-burger-shell.is-preparing,
.pb-burger-shell.is-open,
.pb-burger-shell.is-closing { visibility: visible; }
.pb-burger-shell.is-preparing,
.pb-burger-shell.is-open { pointer-events: auto; }
.pb-burger-shell.is-open .pb-burger-overlay { opacity: 1; }
.pb-burger-shell.is-closing .pb-burger-overlay { opacity: 0; }
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="fade"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="fade"] { opacity: 0; }
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="slide-up"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="slide-up"] {
  opacity: 0; transform: translateY(36px);
}
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="slide-down"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="slide-down"] {
  opacity: 0; transform: translateY(-36px);
}
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="slide-left"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="slide-left"] {
  opacity: 0; transform: translateX(-42px);
}
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="slide-right"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="slide-right"] {
  opacity: 0; transform: translateX(42px);
}
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="zoom"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="zoom"] {
  opacity: 0; transform: scale(.965);
}
.pb-burger-shell.is-preparing .pb-burger-panel[data-animation="none"],
.pb-burger-shell.is-closing .pb-burger-panel[data-animation="none"] { transition: none; }
.pb-burger-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding-bottom: 1.15rem; border-bottom: 1px solid var(--theme-border, var(--border));
}
.pb-burger-title {
  color: var(--theme-muted, var(--muted)); font-size: .72rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
}
.pb-burger-close {
  flex: none; border-color: var(--theme-border, var(--border));
  background: color-mix(in srgb, var(--theme-bg, #fff) 86%, transparent);
}
.pb-burger-links {
  display: flex; flex-direction: column; gap: var(--pb-burger-link-gap, 12px);
  padding: 1.5rem 0;
}
.pb-burger-link {
  display: flex; align-items: center; gap: .72em; padding: .32rem .15rem;
  color: var(--theme-text, inherit) !important;
  font-family: var(--theme-font-heading, inherit);
  font-size: var(--pb-burger-link-size, 20px); font-weight: 700; line-height: 1.2;
  text-decoration: none; transition: color .2s ease, transform .22s ease;
}
.pb-burger-link:hover {
  color: var(--theme-primary, var(--primary)) !important; transform: translateX(5px);
}
.pb-burger-link-icon {
  display: block; width: 1.25em; height: 1.25em; flex: 0 0 1.25em; object-fit: contain;
}
.pb-burger-buttons {
  display: flex; margin-top: auto; padding-top: 2rem;
  flex-direction: column; gap: .7rem;
}
.pb-burger-buttons .btn { width: 100%; justify-content: center; text-align: center; }
@media (max-width: 520px) {
  .pb-burger-panel { padding: 1rem 1.1rem 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pb-burger-panel, .pb-burger-overlay, .pb-burger-glyph i,
  .pb-burger-trigger, .pb-burger-link { transition: none !important; }
}

/* Recherche de produits du header (icône + panneau de résultats) */
body.pb-search-open { overflow: hidden; }
.pb-search-shell {
  position: fixed; inset: 0; z-index: 1120;
  visibility: hidden; pointer-events: none;
}
.pb-search-shell.is-preparing,
.pb-search-shell.is-open,
.pb-search-shell.is-closing { visibility: visible; }
.pb-search-shell.is-preparing,
.pb-search-shell.is-open { pointer-events: auto; }
.pb-search-overlay {
  position: absolute; inset: 0; margin: 0; padding: 0; border: 0;
  background: rgba(8, 8, 16, .5); opacity: 0; cursor: pointer;
  transition: opacity .26s ease;
}
.pb-search-shell.is-open .pb-search-overlay { opacity: 1; }
.pb-search-panel {
  position: relative; display: flex; flex-direction: column;
  width: min(660px, 94vw); max-height: min(78vh, 720px); margin: 9vh auto 0;
  padding: .35rem .35rem .5rem; overflow: hidden;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 18px;
  background: var(--theme-card, #fff); color: var(--theme-text, var(--text));
  font-family: var(--theme-font-body, inherit);
  box-shadow: 0 28px 70px rgba(8, 8, 18, .32);
  opacity: 1; transform: none;
  transition: opacity .26s cubic-bezier(.2, .75, .25, 1), transform .26s cubic-bezier(.2, .75, .25, 1);
}
.pb-search-shell.is-preparing .pb-search-panel,
.pb-search-shell.is-closing .pb-search-panel { opacity: 0; transform: translateY(-14px) scale(.985); }
/* Variante « barre » : le panneau descend depuis le haut, sur toute la largeur */
.pb-search-dropdown .pb-search-panel {
  width: 100%; max-height: min(80vh, 760px); margin: 0; padding: .5rem 0 .75rem;
  border-width: 0 0 1px; border-radius: 0; box-shadow: 0 18px 48px rgba(8, 8, 18, .24);
}
.pb-search-dropdown .pb-search-form,
.pb-search-dropdown .pb-search-results,
.pb-search-dropdown .pb-search-status {
  width: min(1100px, 92vw); margin-inline: auto;
}
.pb-search-shell.is-preparing.pb-search-dropdown .pb-search-panel,
.pb-search-shell.is-closing.pb-search-dropdown .pb-search-panel {
  opacity: 0; transform: translateY(-100%);
}
.pb-search-form {
  display: flex; align-items: center; gap: .5rem; padding: .5rem .6rem;
  border-bottom: 1px solid var(--theme-border, var(--border));
}
.pb-search-glyph { display: inline-flex; color: var(--theme-muted, var(--muted)); }
.pb-search-glyph .icon { width: 1.15rem; height: 1.15rem; }
.pb-search-input {
  flex: 1; min-width: 0; padding: .5rem .1rem; border: 0; background: transparent;
  color: var(--theme-text, inherit); font-family: var(--theme-font-heading, inherit);
  font-size: 1.05rem; font-weight: 600;
}
.pb-search-input::placeholder { color: var(--theme-muted, var(--muted)); font-weight: 500; }
.pb-search-input:focus { outline: none; }
.pb-search-input::-webkit-search-cancel-button { display: none; }
.pb-search-clear {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; padding: 0; border: 0; border-radius: 999px;
  background: color-mix(in srgb, var(--theme-text, #111) 8%, transparent);
  color: var(--theme-muted, var(--muted)); cursor: pointer;
}
.pb-search-clear:hover { color: var(--theme-text, inherit); }
.pb-search-clear .icon { width: .85rem; height: .85rem; }
.pb-search-close { flex: none; width: 36px; height: 36px; }
.pb-search-results { overflow-y: auto; padding: .35rem; }
.pb-search-result {
  display: flex; align-items: center; gap: .8rem; padding: .55rem .6rem;
  border-radius: 12px; color: var(--theme-text, inherit) !important; text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.pb-search-result:hover,
.pb-search-result:focus-visible {
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, transparent);
  transform: translateX(2px); outline: none;
}
.pb-search-thumb {
  flex: none; width: 46px; height: 46px; border-radius: 10px; object-fit: cover;
  background: color-mix(in srgb, var(--theme-text, #111) 7%, transparent);
  border: 1px solid var(--theme-border, var(--border));
}
.pb-search-copy { display: flex; flex-direction: column; gap: .15rem; min-width: 0; flex: 1; }
.pb-search-copy strong {
  font-family: var(--theme-font-heading, inherit); font-size: .97rem; line-height: 1.25;
}
.pb-search-copy small {
  color: var(--theme-muted, var(--muted)); font-size: .8rem; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pb-search-price {
  flex: none; font-weight: 800; font-size: .92rem; color: var(--theme-price, inherit);
}
.pb-search-price s { color: var(--theme-old-price, var(--muted)); font-weight: 600; margin-right: .2rem; }
.pb-search-status {
  margin: 0; padding: .5rem .95rem .35rem; color: var(--theme-muted, var(--muted));
  font-size: .8rem;
}
@media (max-width: 560px) {
  .pb-search-panel { width: 100%; max-height: 100%; height: 100%; margin: 0; border-radius: 0; border-width: 0; }
  .pb-search-shell.is-preparing .pb-search-panel,
  .pb-search-shell.is-closing .pb-search-panel { transform: translateY(-10px); }
}
@media (prefers-reduced-motion: reduce) {
  .pb-search-panel, .pb-search-overlay, .pb-search-result { transition: none !important; }
}

/* Footer du site (bloc fixe) */
.pb-footer { background: var(--theme-card, #fff); border-top: 1px solid var(--theme-border, var(--border)); padding: 1.4rem 0; }
.pb-footer-text { text-align: center; }
.pb-footer-text p { margin: .3em 0; }
.pb-footer-links { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; padding: .5rem 0; }
.pb-footer-link { color: var(--theme-muted, var(--muted)) !important; text-decoration: none; }
.pb-footer-link:hover { color: var(--theme-primary, var(--primary)) !important; }
.pb-footer-social { display: flex; gap: 1rem; justify-content: center; padding: .5rem 0; flex-wrap: wrap; }
.pb-social-link { color: var(--theme-muted, var(--muted)) !important; font-size: 1.25rem; display: inline-flex; transition: color .2s ease, transform .2s ease; }
.pb-social-link:hover { color: var(--theme-primary, var(--primary)) !important; transform: translateY(-2px); }
.pb-footer-buttons { justify-content: center; }
.pb-footer-payments { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; align-items: center; padding: .55rem 0 .2rem; }
.pb-payment-mark { display: block; height: 24px; width: auto; border-radius: 4px; }
.pb-footer-cols + .pb-footer-payments { justify-content: flex-start; padding-top: 1.2rem; }
.pb-footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; align-items: start; }
.pb-footer-cols .pb-footer-text, .pb-footer-cols .pb-footer-links, .pb-footer-cols .pb-footer-social { text-align: left; justify-content: flex-start; }
.pb-footer-minimal { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.pb-footer-minimal .pb-footer-text { text-align: left; }
.pb-footer-embed { width: 100%; min-height: 160px; border: 0; border-radius: var(--radius); margin-top: .8rem; }
@media (max-width: 800px) { .pb-footer-cols { grid-template-columns: 1fr; } }

/* Formulaires d'inscription email */
.pb-signup { margin: 1rem auto; max-width: 460px; }
.pb-signup-title { font-weight: 700; margin: 0 0 .5rem; text-align: center; }
.pb-signup-row { display: flex; gap: .5rem; }
.pb-signup-row input {
  flex: 1; padding: .6rem .8rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: var(--radius); background: var(--theme-bg, #fff); color: var(--theme-text, inherit);
  font-family: inherit; font-size: .95rem;
}
.pb-signup-ok { text-align: center; font-weight: 600; color: var(--theme-primary, var(--primary)); }
.pb-signup-error { text-align: center; color: var(--red, #b42318); margin: .55rem 0 0; font-size: .88rem; }

/* Bloc d'inscription email */
.pb-email-signup-inner { text-align: center; max-width: 920px; margin: 0 auto; }
.pb-email-signup-inner > h2 { margin: 0 0 .45rem; }
.pb-signup-copy { color: var(--theme-muted, var(--muted)); max-width: 650px; margin: 0 auto; }
.pb-signup-copy p { margin: .3rem 0; }
.pb-email_signup .pb-signup { max-width: 720px; }
.pb-signup-fields { display: flex; gap: .55rem; align-items: stretch; }
.pb-signup-fields input {
  flex: 1; min-width: 0; padding: .72rem .85rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: var(--radius); color: var(--theme-text, inherit); background: var(--theme-card, #fff);
  font: inherit;
}
.pb-signup-consent {
  display: flex; align-items: flex-start; justify-content: center; gap: .55rem;
  margin: .7rem auto 0; color: var(--theme-muted, var(--muted)); font-size: .82rem; cursor: pointer;
}
.pb-signup-privacy { color: var(--theme-muted, var(--muted)); font-size: .82rem; }
/* Bloc « À propos » : photo de profil, texte, bouton Suivre et réseaux */
.pb-about-inner {
  display: flex; align-items: flex-start; gap: 2.2rem;
  max-width: 920px; margin: 0 auto;
}
.pb-about.pb-layout-photo-right .pb-about-inner { flex-direction: row-reverse; }
.pb-about.pb-layout-centered .pb-about-inner {
  flex-direction: column; align-items: center; text-align: center; gap: 1.4rem;
}
.pb-about-photo {
  flex: none; width: var(--pb-about-size, 160px); height: var(--pb-about-size, 160px);
  overflow: hidden; background: var(--theme-card, #fff);
}
.pb-about-photo, .pb-about-photo .pb-imgwrap, .pb-about-photo img { border-radius: inherit; }
.pb-about-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-about-photo .pb-imgwrap { display: block; width: 100%; height: 100%; }
.pb-about-shape-circle { border-radius: 50%; }
.pb-about-shape-rounded { border-radius: var(--pb-about-radius, 18px); }
.pb-about-shape-square { border-radius: 0; }
.pb-about-copy { min-width: 0; flex: 1; }
.pb-about-name { margin: 0 0 .25rem; }
.pb-about-role {
  margin: 0 0 .8rem; color: var(--theme-muted, var(--muted));
  font-size: .95rem; font-weight: 600;
}
.pb-about-bio { color: var(--theme-text, inherit); }
.pb-about-bio p { margin: .4rem 0; }

.pb-about-follow { margin-top: 1.1rem; }
.pb-about-follow-form.pb-signup { margin: 0; max-width: 420px; }
.pb-about.pb-layout-centered .pb-about-follow-form.pb-signup { margin: 0 auto; }
.pb-about-follow-toggle[hidden], .pb-about-follow-form[hidden] { display: none; }

/* Réseaux sociaux du bloc. La taille et la couleur sont réglées par le vendeur ;
   `theme` conserve le comportement historique (couleur discrète du thème). */
.pb-about-social {
  display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.2rem;
  font-size: var(--pb-social-size, 22px);
}
.pb-about.pb-layout-centered .pb-about-social { justify-content: center; }
.pb-about-social .pb-social-link { font-size: inherit; }
.pb-social-mode-brand .pb-social-link,
.pb-social-mode-custom .pb-social-link { color: var(--pb-social-brand, currentColor) !important; }
.pb-social-mode-dark .pb-social-link { color: #14141c !important; }
.pb-social-mode-light .pb-social-link { color: #ffffff !important; }
.pb-social-mode-brand .pb-social-link:hover,
.pb-social-mode-custom .pb-social-link:hover { color: var(--pb-social-brand, currentColor) !important; }
.pb-social-mode-dark .pb-social-link:hover { color: #14141c !important; }
.pb-social-mode-light .pb-social-link:hover { color: #ffffff !important; }
/* TikTok n'a pas une couleur mais trois : le trait garde la couleur en cours et
   reçoit ses décalages cyan et rose, lisibles sur fond clair comme sombre. */
.pb-social-mode-brand .pb-social-link[data-platform="tiktok"] {
  filter: drop-shadow(1.5px 0 0 #fe2c55) drop-shadow(-1.5px 0 0 #25f4ee);
}
@media (max-width: 700px) {
  .pb-about-inner, .pb-about.pb-layout-photo-right .pb-about-inner {
    flex-direction: column; align-items: center; text-align: center; gap: 1.3rem;
  }
  .pb-about-social { justify-content: center; }
  .pb-about-follow-form.pb-signup { margin: 0 auto; }
}

.pb-email_signup.pb-layout-card .pb-email-signup-inner {
  max-width: 760px; padding: 2rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: calc(var(--radius) * 1.5); background: var(--theme-card, #fff);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .08);
}
.pb-email_signup.pb-layout-split .pb-email-signup-inner {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
  align-items: center; gap: 2rem; text-align: left;
}
.pb-email_signup.pb-layout-split .pb-signup { margin: 0; }
.pb-email_signup.pb-layout-split .pb-signup-fields { flex-direction: column; }
.pb-email_signup.pb-layout-split .pb-signup-consent { justify-content: flex-start; }
.pb-email_signup.pb-layout-minimal .pb-signup {
  border-bottom: 1px solid var(--theme-border, var(--border)); padding-bottom: .65rem;
}
.pb-email_signup.pb-layout-minimal .pb-signup-fields input {
  border: 0; border-radius: 0; border-bottom: 1px solid var(--theme-border, var(--border)); background: transparent;
}

/* Countdown */
.pb-countdown-inner { display: flex; flex-direction: column; gap: 1.25rem; align-items: center; text-align: center; }
.pb-countdown-copy { max-width: 720px; }
.pb-countdown-copy h2 { margin: 0 0 .45rem; }
.pb-countdown-copy p { margin: .25rem 0 0; color: var(--theme-muted, var(--muted)); }
.pb-countdown-units { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.pb-countdown-unit {
  min-width: 92px; padding: .9rem 1rem; border-radius: 14px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: var(--theme-card, #fff); border: 1px solid var(--theme-border, var(--border));
  box-shadow: 0 8px 24px rgb(20 20 45 / 8%);
}
.pb-countdown-cards-solid .pb-countdown-unit {
  color: var(--theme-btn-primary-text, #fff); background: var(--theme-primary, var(--primary));
  border-color: transparent;
}
.pb-countdown-cards-solid .pb-countdown-label { color: inherit; opacity: .78; }
.pb-countdown-cards-outline .pb-countdown-unit { background: transparent; border-width: 2px; border-color: var(--theme-primary, var(--primary)); box-shadow: none; }
.pb-countdown-cards-soft .pb-countdown-unit {
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, var(--theme-card, #fff));
  border-color: color-mix(in srgb, var(--theme-primary, var(--primary)) 25%, transparent); box-shadow: none;
}
.pb-countdown-cards-glass .pb-countdown-unit {
  background: rgb(255 255 255 / 16%); border-color: rgb(255 255 255 / 32%);
  box-shadow: 0 10px 32px rgb(0 0 0 / 12%); backdrop-filter: blur(12px);
}
.pb-countdown-value {
  font-family: var(--theme-font-heading, inherit); font-size: 2.25rem; font-weight: 850;
  line-height: 1; color: inherit; font-variant-numeric: tabular-nums;
}
.pb-countdown-label { margin-top: .42rem; color: var(--theme-muted, var(--muted)); font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.pb-countdown-scale-small .pb-countdown-unit { min-width: 70px; padding: .65rem .7rem; }
.pb-countdown-scale-small .pb-countdown-value { font-size: 1.45rem; }
.pb-countdown-scale-large .pb-countdown-unit { min-width: 116px; padding: 1.25rem 1.35rem; }
.pb-countdown-scale-large .pb-countdown-value { font-size: 3rem; }
.pb-countdown-scale-huge .pb-countdown-unit { min-width: 145px; padding: 1.5rem; }
.pb-countdown-scale-huge .pb-countdown-value { font-size: clamp(3.2rem, 7vw, 5.2rem); }
.pb-countdown-align-left, .pb-countdown-align-left .pb-countdown-units { justify-content: flex-start; text-align: left; }
.pb-countdown-align-right, .pb-countdown-align-right .pb-countdown-units { justify-content: flex-end; text-align: right; }
.pb-countdown-minimal .pb-countdown-unit { min-width: auto; padding: .25rem .8rem; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.pb-countdown-minimal .pb-countdown-unit + .pb-countdown-unit { border-left: 1px solid var(--theme-border, var(--border)); }
.pb-countdown-banner { padding: 1rem 1.2rem; border-radius: 16px; background: var(--theme-card, #fff); border: 1px solid var(--theme-border, var(--border)); }
.pb-countdown-split { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: center; text-align: left; width: 100%; }
.pb-countdown-split .pb-countdown-copy { justify-self: start; }
.pb-countdown-split .pb-countdown-timer { justify-self: end; }
.pb-countdown-expired { margin: 0; font-weight: 750; color: var(--theme-primary, var(--primary)); }
.pb-countdown-timer[data-animation="tick"] .pb-countdown-value.is-changing { animation: countdownTick .22s ease; }
.pb-countdown-timer[data-animation="pulse"] .pb-countdown-value.is-changing { animation: countdownPulse .34s ease; }
.pb-countdown-timer[data-animation="flip"] .pb-countdown-value.is-changing { animation: countdownFlip .42s ease; transform-origin: 50% 50%; }
.pb-countdown-timer[data-animation="fade"] .pb-countdown-value.is-changing { animation: countdownFade .36s ease; }
@keyframes countdownTick { 50% { transform: translateY(-4px); } }
@keyframes countdownPulse { 50% { transform: scale(1.12); color: var(--theme-primary, var(--primary)); } }
@keyframes countdownFlip { 0% { transform: rotateX(-75deg); opacity: .2; } 100% { transform: rotateX(0); opacity: 1; } }
@keyframes countdownFade { 0% { opacity: .15; } 100% { opacity: 1; } }
@media (max-width: 720px) {
  .pb-countdown-split { grid-template-columns: 1fr; text-align: center; }
  .pb-countdown-split .pb-countdown-copy, .pb-countdown-split .pb-countdown-timer { justify-self: center; }
  .pb-countdown-unit { min-width: 68px; padding: .7rem; }
  .pb-countdown-scale-huge .pb-countdown-unit { min-width: 90px; }
}

/* Customer library, login and account system pages */
.pb-library-section { position: relative; margin-bottom: 1.5rem; }
.pb-library-section:last-child { margin-bottom: 0; }
.builder-preview .pb-library-section { cursor: pointer; border-radius: 8px; }
.builder-preview .pb-library-section:hover { outline: 2px dashed color-mix(in srgb, var(--primary) 55%, transparent); outline-offset: 5px; }
.builder-preview .pb-library-section-selected { outline: 2px solid var(--primary); outline-offset: 5px; }
.pb-customer-page-title { max-width: 760px; }
.pb-customer-page-title :is(h1, h2, h3, h4) { margin: 0 0 .4rem; }
.pb-customer-page-title p { margin: 0; color: var(--theme-muted, var(--muted)); }
.pb-customer-library-head {
  display: flex; align-items: center; gap: .8rem; padding: 1rem; margin-bottom: 1.25rem;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 14px; background: var(--theme-card, #fff);
}
.pb-customer-avatar, .pb-customer-account-avatar {
  width: 48px; height: 48px; flex: none; display: inline-flex; align-items: center; justify-content: center;
  overflow: hidden; border-radius: 50%; background: color-mix(in srgb, var(--theme-primary, var(--primary)) 14%, var(--theme-card, #fff));
  color: var(--theme-primary, var(--primary)); font-size: 1.1rem; font-weight: 850;
}
.pb-customer-library-head > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.pb-customer-library-head > div:nth-child(2) span { color: var(--theme-muted, var(--muted)); font-size: .85rem; overflow: hidden; text-overflow: ellipsis; }
.pb-customer-head-actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.pb-customer-head-actions form, .pb-customer-account-actions form { margin: 0; }
.customer-notification-menu { position: relative; }
.customer-notification-toggle {
  position: relative; display: grid; width: 38px; height: 38px; place-items: center; padding: 0;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 10px; cursor: pointer;
  color: var(--theme-text, inherit); background: var(--theme-card, #fff);
}
.customer-notification-toggle:hover, .customer-notification-menu.open .customer-notification-toggle {
  color: var(--theme-primary, var(--primary)); border-color: var(--theme-primary, var(--primary));
}
.customer-notification-toggle .icon { width: 18px; height: 18px; }
.customer-notification-badge {
  position: absolute; top: -6px; right: -6px; display: grid; min-width: 19px; height: 19px; place-items: center;
  padding: 0 4px; border: 2px solid var(--theme-card, #fff); border-radius: 999px;
  color: #fff; background: #e5484d; font-size: .64rem; font-weight: 850;
}
.customer-notification-panel {
  position: absolute; z-index: 90; top: calc(100% + 10px); right: 0; width: min(390px, calc(100vw - 28px));
  overflow: hidden; border: 1px solid var(--theme-border, var(--border)); border-radius: 16px;
  color: var(--theme-text, #1d1d2b); background: var(--theme-card, #fff); box-shadow: 0 20px 55px rgb(20 20 45 / 18%);
}
.customer-notification-panel[hidden] { display: none; }
.customer-notification-head, .customer-notification-foot {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .9rem 1rem;
}
.customer-notification-head { border-bottom: 1px solid var(--theme-border, var(--border)); }
.customer-notification-head > div { display: flex; align-items: baseline; gap: .45rem; }
.customer-notification-head span, .customer-notification-foot span { color: var(--theme-muted, var(--muted)); font-size: .74rem; }
.customer-notification-list { max-height: min(420px, 58vh); overflow-y: auto; }
.customer-notification-item {
  position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) 30px; gap: .65rem;
  align-items: start; padding: .85rem .75rem .85rem 1rem; border-bottom: 1px solid var(--theme-border, var(--border));
  transition: opacity .18s ease, transform .18s ease;
}
.customer-notification-item.is-unread { background: color-mix(in srgb, var(--theme-primary, var(--primary)) 7%, var(--theme-card, #fff)); }
.customer-notification-item.is-unread::before { content: ''; position: absolute; top: 14px; left: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--theme-primary, var(--primary)); }
.customer-notification-item.is-removing { opacity: 0; transform: translateX(12px); }
.customer-notification-type { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; color: #6d4aff; background: #eeeafd; }
.customer-notification-type.type-payout { color: #14804a; background: #e6f7ef; }
.customer-notification-type.type-reward { color: #946313; background: #fff3d7; }
.customer-notification-type .icon { width: 17px; height: 17px; }
.customer-notification-content { display: flex; min-width: 0; flex-direction: column; gap: .18rem; color: inherit !important; text-decoration: none !important; }
.customer-notification-content strong { font-size: .88rem; line-height: 1.25; }
.customer-notification-content > span { color: var(--theme-muted, var(--muted)); font-size: .78rem; line-height: 1.35; }
.customer-notification-content time { color: var(--theme-muted, var(--muted)); font-size: .69rem; }
.customer-notification-delete { display: grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 0; border-radius: 8px; cursor: pointer; color: var(--theme-muted, var(--muted)); background: transparent; }
.customer-notification-delete:hover { color: #b42318; background: #fff0ee; }
.customer-notification-delete .icon { width: 14px; height: 14px; }
.customer-notification-empty { padding: 2rem 1rem; text-align: center; }
.customer-notification-empty[hidden] { display: none; }
.customer-notification-empty > span { display: grid; width: 42px; height: 42px; place-items: center; margin: 0 auto .65rem; border-radius: 50%; color: var(--theme-primary, var(--primary)); background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, transparent); }
.customer-notification-empty p { margin: .25rem auto 0; color: var(--theme-muted, var(--muted)); font-size: .78rem; }
.customer-notification-foot { border-top: 1px solid var(--theme-border, var(--border)); }
.customer-notification-foot button { border: 0; cursor: pointer; color: var(--theme-primary, var(--primary)); background: transparent; font: inherit; font-size: .75rem; font-weight: 750; }
.pb-customer-library-head.layout-card {
  max-width: 560px; margin-inline: auto; padding: 1.4rem; flex-direction: column; justify-content: center; text-align: center;
}
.pb-customer-library-head.layout-card .pb-customer-avatar { width: 64px; height: 64px; font-size: 1.35rem; }
.pb-customer-library-head.layout-card .pb-customer-head-actions { justify-content: center; margin: .35rem 0 0; }
.pb-customer-library-head.layout-compact { padding: .65rem .75rem; border-radius: 10px; }
.pb-customer-library-head.layout-compact .pb-customer-avatar { width: 36px; height: 36px; font-size: .9rem; }
.pb-customer-library-head.layout-compact .pb-customer-head-actions { gap: .3rem; }
.pb-customer-library-head.layout-compact .btn { padding: .38rem .55rem; font-size: .78rem; }
.pb-customer-products { display: grid; grid-template-columns: repeat(var(--customer-columns, 3), minmax(0, 1fr)); gap: 1rem; }
.pb-customer-products.layout-list { grid-template-columns: 1fr; }
.pb-customer-products.layout-compact { grid-template-columns: repeat(var(--customer-columns, 3), minmax(210px, 1fr)); gap: .65rem; }
.pb-customer-product { overflow: hidden; border-radius: 14px; background: var(--theme-card, #fff); }
.pb-card-soft { border: 1px solid color-mix(in srgb, var(--theme-border, var(--border)) 70%, transparent); background: color-mix(in srgb, var(--theme-card, #fff) 90%, var(--theme-primary, var(--primary)) 3%); }
.pb-card-bordered { border: 2px solid var(--theme-border, var(--border)); }
.pb-card-elevated { border: 1px solid transparent; box-shadow: 0 12px 30px rgb(20 20 45 / 10%); }
.pb-card-minimal { border: 0; border-radius: 0; background: transparent; }
.pb-customer-product-cover { display: block; overflow: hidden; background: color-mix(in srgb, var(--theme-primary, var(--primary)) 7%, var(--theme-card, #fff)); color: var(--theme-primary, var(--primary)) !important; }
.pb-customer-product-cover.ratio-square { aspect-ratio: 1; }
.pb-customer-product-cover.ratio-portrait { aspect-ratio: 4 / 5; }
.pb-customer-product-cover.ratio-landscape { aspect-ratio: 16 / 10; }
.pb-customer-product-cover.ratio-auto { min-height: 140px; }
.pb-customer-product-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-customer-product-placeholder { min-height: 140px; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.pb-customer-product-copy { display: flex; flex-direction: column; align-items: stretch; gap: .8rem; padding: .9rem; }
.pb-customer-product-copy :is(h1, h2, h3, h4) { margin: 0; font-size: 1rem; }
.pb-customer-product-copy small { display: block; margin-top: .25rem; color: var(--theme-muted, var(--muted)); }
.pb-customer-product-copy > .btn, .pb-customer-product-copy > .badge { align-self: flex-start; }
.pb-customer-bundle-origin { display: block; width: max-content; max-width: 100%; margin-top: .35rem; padding: .2rem .45rem; border-radius: 6px; background: color-mix(in srgb, var(--theme-primary, var(--primary)) 9%, transparent); color: var(--theme-primary, var(--primary)); font-size: .72rem; font-weight: 700; }
.pb-customer-products.layout-list .pb-customer-product { display: grid; grid-template-columns: minmax(110px, 180px) 1fr; }
.pb-customer-products.layout-list .pb-customer-product-cover { aspect-ratio: auto; min-height: 112px; }
.pb-customer-products.layout-list .pb-customer-product-copy { flex-direction: row; align-items: center; justify-content: space-between; }
.pb-customer-products.layout-compact .pb-customer-product {
  display: grid; grid-template-columns: 62px minmax(0, 1fr); align-items: stretch; border-radius: 10px;
}
.pb-customer-products.layout-compact .pb-customer-product-cover {
  width: 62px; min-height: 76px; aspect-ratio: auto; border-radius: 8px 0 0 8px;
}
.pb-customer-products.layout-compact .pb-customer-product-placeholder { min-height: 76px; font-size: 1.25rem; }
.pb-customer-products.layout-compact .pb-customer-product-copy { min-width: 0; gap: .4rem; padding: .55rem .6rem; }
.pb-customer-products.layout-compact .pb-customer-product-copy :is(h1, h2, h3, h4) { font-size: .88rem; line-height: 1.2; }
.pb-customer-products.layout-compact .pb-customer-product-copy small { font-size: .72rem; }
.pb-customer-products.layout-compact .pb-customer-product-copy > .btn { padding: .3rem .45rem; font-size: .72rem; }
.pb-customer-empty { text-align: center; padding: 3rem 1rem; border: 1px dashed var(--theme-border, var(--border)); border-radius: 14px; }
.pb-customer-empty > span { display: block; color: var(--theme-primary, var(--primary)); font-size: 2rem; }
.pb-customer-empty :is(h1, h2, h3, h4) { margin: .65rem 0 .35rem; }
.pb-customer-empty p { color: var(--theme-muted, var(--muted)); }
.pb-customer-recommended { margin-top: 2.5rem; }
.pb-customer-recommended > :is(h1, h2, h3, h4) { margin-bottom: 1rem; }
.pb-customer-login-inner { max-width: 940px; margin: 0 auto; }
.pb-customer-login-brand { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-bottom: 1rem; }
.pb-customer-login-logo { max-width: 180px; max-height: 56px; object-fit: contain; }
.pb-customer-login-form-wrap {
  max-width: 480px; margin: 0 auto; padding: 2rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: 18px; background: var(--theme-card, #fff); box-shadow: 0 16px 40px rgb(20 20 45 / 8%);
}
.pb-customer-login-form-wrap :is(h1, h2, h3, h4) { margin: .25rem 0 .6rem; }
.pb-customer-login-form-wrap > p { color: var(--theme-muted, var(--muted)); }
.pb-customer-auth-tabs {
  display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; margin: 1rem 0 1.35rem; padding: .3rem;
  border-radius: 12px; background: color-mix(in srgb, var(--theme-primary, var(--primary)) 7%, var(--theme-card, #fff));
}
.pb-customer-auth-tabs button {
  min-height: 42px; padding: .55rem .7rem; border: 0; border-radius: 9px; cursor: pointer;
  color: var(--theme-muted, var(--muted)); background: transparent; font: inherit; font-weight: 750;
}
.pb-customer-auth-tabs button.is-active {
  color: var(--theme-text, inherit); background: var(--theme-card, #fff); box-shadow: 0 3px 12px rgb(20 20 45 / 9%);
}
.pb-customer-auth-panel[hidden] { display: none; }
.pb-customer-auth-panel > :is(h1, h2, h3, h4) { margin-top: 0; }
.pb-customer-auth-panel > p { color: var(--theme-muted, var(--muted)); }
.pb-customer-login-form { margin-top: 1.3rem; }
.pb-customer-login-form .field + .field { margin-top: .85rem; }
.pb-customer-recovery { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--theme-border, var(--border)); }
.pb-customer-recovery summary { cursor: pointer; color: var(--theme-primary, var(--primary)); font-size: .88rem; font-weight: 700; }
.pb-customer-recovery > p { margin: .65rem 0 0; color: var(--theme-muted, var(--muted)); font-size: .84rem; }
.pb-customer-security { display: flex; align-items: center; justify-content: center; gap: .35rem; font-size: .82rem; }
.pb-customer-login-inner:has(.pb-customer-login-brand + .pb-customer-login-form-wrap) {}
.pb-customer_login.pb-layout-split .pb-customer-login-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.pb-customer_login.pb-layout-split .pb-customer-login-brand { flex-direction: column; margin: 0; padding: 2rem; border-radius: 18px 0 0 18px; background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, var(--theme-card, #fff)); }
.pb-customer_login.pb-layout-split .pb-customer-login-form-wrap { width: 100%; max-width: none; border-radius: 0 18px 18px 0; box-shadow: none; }
.pb-customer_login.pb-layout-minimal .pb-customer-login-form-wrap { padding: 0; border: 0; box-shadow: none; background: transparent; }
.pb-customer-account-profile { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.pb-customer-account-profile :is(h1, h2, h3, h4) { margin: 0; }
.pb-customer-account-profile p { margin: .3rem 0 0; color: var(--theme-muted, var(--muted)); }
.pb-customer-account-avatar { width: 68px; height: 68px; font-size: 1.5rem; }
.pb-customer-account-avatar img { width: 100%; height: 100%; object-fit: cover; }
.pb-customer-account-grid { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(320px, 1.15fr); gap: 1.2rem; }
.pb-customer-account-form, .pb-customer-orders { padding: 1.2rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 14px; background: var(--theme-card, #fff); }
.pb-customer-orders > :is(h1, h2, h3, h4) { margin-top: 0; }
.pb-customer-order-list { display: flex; flex-direction: column; }
.pb-customer-order-list a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .65rem; padding: .65rem 0; border-bottom: 1px solid var(--theme-border, var(--border)); text-decoration: none; color: var(--theme-text, inherit) !important; }
.pb-customer-order-list a:last-child { border-bottom: 0; }
.pb-customer-order-list small { color: var(--theme-muted, var(--muted)); }
.pb-customer-account-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.pb-customer_account.pb-layout-sidebar .pb-customer-account-inner { display: grid; grid-template-columns: 260px 1fr; gap: 1.2rem; }
.pb-customer_account.pb-layout-sidebar .pb-customer-account-profile { flex-direction: column; align-items: flex-start; padding: 1.2rem; border-radius: 14px; background: var(--theme-card, #fff); }
.pb-customer_account.pb-layout-sidebar .pb-customer-account-grid { grid-template-columns: 1fr; }
.pb-customer_account.pb-layout-compact .pb-customer-account-grid { grid-template-columns: 1fr; }

/* Custom store 404 */
.pb-not-found-inner { max-width: 760px; display: flex; flex-direction: column; align-items: flex-start; gap: .85rem; }
.pb-not-found-inner h1 { margin: 0; font-size: clamp(2rem, 5vw, 4rem); line-height: 1.05; }
.pb-not-found-inner p { max-width: 620px; margin: 0; color: var(--theme-muted, var(--muted)); font-size: 1.08rem; }
.pb-not-found-inner .btn { margin-top: .35rem; }
.pb-not-found-path {
  display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
  padding: .4rem .65rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: 8px; color: var(--theme-text, inherit); background: var(--theme-card, #fff);
}
.pb-not_found.pb-layout-centered .pb-not-found-inner {
  margin: 0 auto; align-items: center; text-align: center;
}
.pb-not_found.pb-layout-minimal .pb-not-found-inner h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); }

@media (max-width: 760px) {
  .pb-customer-products { grid-template-columns: 1fr; }
  .pb-customer-products.layout-compact { grid-template-columns: 1fr; }
  .pb-customer-products.layout-list .pb-customer-product { grid-template-columns: 100px 1fr; }
  .pb-customer-products.layout-list .pb-customer-product-copy { align-items: flex-start; flex-direction: column; }
  .pb-customer-head-actions { width: 100%; margin-left: 0; }
  .pb-customer-library-head { flex-wrap: wrap; }
  .pb-customer_login.pb-layout-split .pb-customer-login-inner { grid-template-columns: 1fr; }
  .pb-customer_login.pb-layout-split .pb-customer-login-brand,
  .pb-customer_login.pb-layout-split .pb-customer-login-form-wrap { border-radius: 16px; }
  .pb-customer-account-grid, .pb-customer_account.pb-layout-sidebar .pb-customer-account-inner { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .pb-signup-fields, .pb-email_signup.pb-layout-split .pb-email-signup-inner { display: flex; flex-direction: column; }
}

/* Affiliate customer portal */
.affiliate-portal { min-height: 70vh; padding: 4rem 1rem 5rem; color: var(--theme-text, #1d1d2b); background: var(--theme-bg, #fff); font-family: var(--theme-font-body, inherit); }
.affiliate-portal-inner { width: min(1180px, 100%); margin: 0 auto; }
.affiliate-portal h1, .affiliate-portal h2 { color: var(--theme-h1, #111827); font-family: var(--theme-font-heading, inherit); }
.affiliate-portal-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.affiliate-portal-head h1 { margin: .45rem 0; font-size: clamp(2.1rem, 5vw, 3.7rem); letter-spacing: -.045em; }
.affiliate-portal-head p { max-width: 650px; margin: 0; color: var(--theme-muted, var(--muted)); }
.affiliate-portal-head-actions { display: flex; flex: none; align-items: center; gap: .65rem; }
.affiliate-portal-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.affiliate-portal-stats article { display: grid; grid-template-columns: 42px 1fr; gap: .1rem .75rem; align-items: center; padding: 1.15rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 16px; background: var(--theme-card, #fff); }
.affiliate-portal-stats article > span { display: grid; grid-row: span 2; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: var(--theme-primary, var(--primary)); background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, transparent); }
.affiliate-portal-stats article > span .icon { width: 19px; }
.affiliate-portal-stats strong { font-size: 1.25rem; line-height: 1.1; }
.affiliate-portal-stats small { color: var(--theme-muted, var(--muted)); }
.affiliate-payout-card, .affiliate-link-library, .affiliate-commission-history { margin-top: 1rem; padding: 1.4rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 18px; background: var(--theme-card, #fff); }
.affiliate-payout-card.is-ready { border-color: color-mix(in srgb, #20a464 55%, var(--theme-border, var(--border))); background: color-mix(in srgb, #e9f9f0 45%, var(--theme-card, #fff)); }
.affiliate-payout-copy { display: flex; gap: .9rem; align-items: flex-start; }
.affiliate-payout-copy > span { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border-radius: 12px; color: var(--theme-primary, var(--primary)); background: color-mix(in srgb, var(--theme-primary, var(--primary)) 10%, transparent); }
.affiliate-payout-card.is-ready .affiliate-payout-copy > span { color: #14804a; background: #dff6e9; }
.affiliate-payout-copy p { margin: .25rem 0; color: var(--theme-muted, var(--muted)); }
.affiliate-payout-copy small { color: var(--theme-muted, var(--muted)); }
.affiliate-payout-progress { height: 9px; overflow: hidden; margin: 1.1rem 0 .75rem; border-radius: 999px; background: color-mix(in srgb, var(--theme-border, var(--border)) 70%, transparent); }
.affiliate-payout-progress span { display: block; height: 100%; border-radius: inherit; background: var(--theme-primary, var(--primary)); }
.affiliate-payout-card.is-ready .affiliate-payout-progress span { background: #20a464; }
.affiliate-payout-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--theme-muted, var(--muted)); font-size: .82rem; }
.affiliate-link-library-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.25rem; margin-bottom: 1rem; }
.affiliate-link-library h2, .affiliate-commission-history h2 { margin: 0; }
.affiliate-link-library-head p { max-width: 650px; margin: .35rem 0 0; color: var(--theme-muted, var(--muted)); }
.affiliate-link-search { display: flex; min-width: min(360px, 100%); align-items: center; gap: .55rem; padding: .65rem .8rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 12px; background: var(--theme-bg, #fff); }
.affiliate-link-search .icon { width: 17px; color: var(--theme-muted, var(--muted)); }
.affiliate-link-search input { width: 100%; border: 0; outline: 0; color: inherit; background: transparent; font: inherit; }
.affiliate-link-list { display: grid; gap: .55rem; }
.affiliate-link-row { display: grid; grid-template-columns: 40px minmax(150px, .6fr) minmax(260px, 1.4fr) auto; gap: .75rem; align-items: center; padding: .7rem; border: 1px solid var(--theme-border, var(--border)); border-radius: 12px; }
.affiliate-link-row[hidden] { display: none; }
.affiliate-link-type { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; color: var(--theme-primary, var(--primary)); background: color-mix(in srgb, var(--theme-primary, var(--primary)) 9%, transparent); }
.affiliate-link-row > div { display: flex; min-width: 0; flex-direction: column; }
.affiliate-link-row > div small { color: var(--theme-muted, var(--muted)); }
.affiliate-link-row code { min-width: 0; overflow: hidden; padding: .45rem .55rem; border-radius: 8px; text-overflow: ellipsis; white-space: nowrap; color: var(--theme-muted, var(--muted)); background: color-mix(in srgb, var(--theme-border, var(--border)) 45%, transparent); }
.affiliate-link-empty { padding: 2rem; text-align: center; color: var(--theme-muted, var(--muted)); }
.affiliate-link-empty[hidden] { display: none; }
.affiliate-commission-history > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.affiliate-commission-history .table { margin: 0; }
.pb-affiliate-account-required { text-align: center; }
.pb-affiliate-account-required h3 { margin: .9rem 0 .35rem; }
.pb-affiliate-account-required p { color: var(--theme-muted, var(--muted)); }
@media (max-width: 900px) {
  .affiliate-portal-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .affiliate-link-library-head { align-items: stretch; flex-direction: column; }
  .affiliate-link-row { grid-template-columns: 40px 1fr auto; }
  .affiliate-link-row code { grid-column: 2 / -1; grid-row: 2; }
}
@media (max-width: 620px) {
  .affiliate-portal { padding: 2.5rem .75rem 4rem; }
  .affiliate-portal-head, .affiliate-portal-head-actions { align-items: flex-start; flex-direction: column; }
  .affiliate-portal-stats { grid-template-columns: 1fr; }
  .affiliate-payout-meta { flex-direction: column; }
  .affiliate-link-row { grid-template-columns: 38px 1fr; }
  .affiliate-link-row code, .affiliate-link-row .btn { grid-column: 1 / -1; }
  .affiliate-link-row .btn { justify-self: stretch; }
}

/* Texte */
.pb-inner h2, .pb-split-text h2 { margin-top: 0; }
.pb-layout-center .pb-inner { text-align: center; }
.pb-layout-narrow .pb-inner { max-width: 640px; margin: 0 auto; text-align: center; }

/* Hero */
.pb-hero-inner { padding: 1rem 0; }
.pb-hero-title { font-size: clamp(1.9rem, 4.5vw, 3.2rem); margin: 0 0 .6rem; line-height: 1.15; }
.pb-hero-subtitle { font-size: 1.15rem; margin: 0 0 1rem; opacity: .92; max-width: 640px; }
.pb-hero.pb-layout-center .pb-hero-inner { text-align: center; }
.pb-hero.pb-layout-center .pb-hero-subtitle { margin-left: auto; margin-right: auto; }
.pb-hero.pb-layout-center .pb-hero-buttons { justify-content: center; }

/* Colonnes de texte */
.pb-text-columns { display: grid; grid-template-columns: repeat(var(--pb-cols, 3), 1fr); gap: 1.2rem; }
.pb-text-column { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.pb-text-column > p { margin: 0; }
.pb-text-columns.has-panel .pb-text-column {
  padding: 1.2rem;
  border-radius: var(--pb-text-panel-radius, 16px);
  background: var(--pb-text-panel, var(--theme-card, #fff));
  border: 1px solid var(--theme-border, var(--border));
}
.pb-text-column .pb-buttons { margin-top: auto; padding-top: .6rem; }
@media (max-width: 860px) { .pb-text-columns { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } }
@media (max-width: 560px) { .pb-text-columns { grid-template-columns: 1fr; } }

/* Texte défilant. Deux groupes identiques et une translation de -50 % : la
   boucle est continue sans JavaScript, le script ne fait qu'ajuster le nombre
   de copies et la durée pour tenir la vitesse demandée. */
.pb-marquee { overflow: hidden; width: 100%; }
.pb-marquee-track {
  display: flex; width: max-content;
  animation: pb-marquee-scroll var(--pb-marquee-duration, 18s) linear infinite;
}
.pb-marquee[data-direction="right"] .pb-marquee-track { animation-direction: reverse; }
.pb-marquee-group { display: flex; flex-shrink: 0; }
.pb-marquee-item { display: block; padding-inline: 1.5rem; white-space: nowrap; }
.pb-marquee-pausable:hover .pb-marquee-track { animation-play-state: paused; }
@keyframes pb-marquee-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .pb-marquee-track { animation: none; }
  .pb-marquee-group[aria-hidden="true"] { display: none; }
}

/* Galerie */
.pb-gallery { display: grid; grid-template-columns: repeat(var(--pb-cols, 3), 1fr); gap: 1rem; }
.pb-gallery-item { margin: 0; }
.pb-gallery-item img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--pb-block-image-radius, var(--radius)); aspect-ratio: 4 / 3; display: block; }
.pb-gallery-item > .pb-imgwrap,
.pb-gallery-item > a { display: block; width: min(100%, var(--pb-block-image-size, 100%)); margin-inline: auto; }
.pb-gallery-item figcaption { font-size: .85rem; margin-top: .35rem; }
@media (max-width: 700px) { .pb-gallery { grid-template-columns: repeat(2, 1fr); } }

/* Colonnes (features) */
.pb-features-grid { display: grid; grid-template-columns: repeat(var(--pb-cols, 3), 1fr); gap: 1.2rem; }
.pb-feature-card {
  background: var(--theme-card, #fff); border: 1px solid var(--theme-border, var(--border));
  border-radius: var(--radius); padding: 1.2rem; display: flex; flex-direction: column; gap: .4rem;
}
.pb-feature-card :is(h1, h2, h3, h4) { margin: 0; font-size: 1.17em; }
.pb-feature-card p { margin: 0; }
.pb-feature-img .pb-imgwrap { display: block; width: min(100%, var(--pb-block-image-size, 100%)); margin-inline: auto; }
.pb-feature-img img { width: 100%; border-radius: var(--pb-block-image-radius, var(--radius)); aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.pb-features-carousel .pb-feature-card { height: 100%; }
@media (max-width: 760px) { .pb-features-grid { grid-template-columns: 1fr; } }

/* FAQ */
.pb-faq-group { margin: 0 auto; }
.pb-faq-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; }
.pb-faq-item {
  border: 1px solid var(--theme-border, var(--border)); border-radius: var(--radius);
  background: var(--theme-card, #fff); margin-bottom: .6rem; padding: 0;
}
.pb-faq-item summary {
  display: flex; align-items: center; gap: .6rem; cursor: pointer; font-weight: 600;
  padding: .8rem 1rem; list-style: none;
}
.pb-faq-item summary::-webkit-details-marker { display: none; }
.pb-faq-icon { display: inline-flex; color: var(--theme-primary, var(--primary)); transition: transform .25s ease; }
.pb-faq-item[open] > summary .pb-faq-icon { transform: rotate(180deg); }
.pb-faq-answer { padding: 0 1rem .9rem; }
.pb-faq-answer p { margin: .3em 0; }
.pb-faq-minimal .pb-faq-item { border-width: 0 0 1px; border-radius: 0; background: transparent; margin: 0; }
.pb-faq-minimal .pb-faq-item summary { padding-left: 0; padding-right: 0; }
.pb-faq-minimal .pb-faq-answer { padding-left: 0; }
.pb-faq-cards {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem;
}
.pb-faq-card {
  border: 1px solid var(--theme-border, var(--border)); border-radius: var(--radius);
  background: var(--theme-card, #fff); padding: 1.25rem;
}
.pb-faq-card :is(h1, h2, h3, h4) { margin: 0 0 .55rem; font-size: 1rem; }
.pb-faq-card .pb-faq-answer { padding: 0; color: var(--theme-muted, var(--muted)); }
.pb-faq-split {
  display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: 2.5rem; align-items: start;
}
.pb-faq-split-heading .pb-section-title { position: sticky; top: 1rem; font-size: clamp(1.7rem, 3vw, 2.5rem); }
@media (max-width: 700px) { .pb-faq-cols { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .pb-faq-cards, .pb-faq-split { grid-template-columns: 1fr; }
}

/* Témoignages */
.pb-quote {
  background: var(--theme-card, #fff); border: 1px solid var(--theme-border, var(--border));
  border-radius: var(--radius); padding: 1.3rem; margin: 0; height: 100%;
}
.pb-quote p { margin: 0 0 .8rem; font-style: italic; }
.pb-quote footer { display: flex; align-items: center; gap: .6rem; }
.pb-quote cite { font-style: normal; font-weight: 700; display: block; }
.pb-quote-role { font-size: .82rem; color: var(--theme-muted, var(--muted)); }
.pb-quote-avatar {
  width: calc(42px * var(--pb-block-image-scale, 1));
  height: calc(42px * var(--pb-block-image-scale, 1));
  max-width: 84px; max-height: 84px;
  border-radius: var(--pb-block-image-radius, 50%); object-fit: cover;
}
.pb-quote-big { max-width: 680px; margin: 0 auto; text-align: center; padding: 2rem; }
.pb-quote-big p { font-size: 1.25rem; }
.pb-quote-big footer { justify-content: center; }
.pb-quotes-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }

/* Appel à l'action */
.pb-cta-inner { text-align: center; }
.pb-cta-inner :is(h1, h2, h3, h4) { margin: 0 0 .5rem; }
.pb-cta-buttons { justify-content: center; }
.pb-cta.pb-layout-split .pb-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; text-align: left; flex-wrap: wrap; }
.pb-cta.pb-layout-split .pb-cta-buttons { margin-top: 0; }

/* Séparateur */
.pb-divider { border: 0; border-top: 1px solid var(--theme-border, var(--border)); margin: 0; }
.pb-spacer-hint { opacity: .55; font-size: .8rem; }

/* Vidéo */
.pb-video { max-width: 860px; margin: 0 auto; }
.pb-video-frame { position: relative; padding-top: 56.25%; border-radius: var(--radius); overflow: hidden; }
.pb-video-frame-ratio { padding-top: 0; }
.pb-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pb-video-file { width: 100%; border-radius: var(--radius); display: block; }
.pb-layout-full .pb-video { max-width: none; }

/* Une vidéo posée dans un emplacement média occupe la place de l'image qu'elle
   remplace : c'est le conteneur (figure, colonne, vignette) qui décide de sa
   largeur, plus la limite propre au bloc vidéo autonome d'autrefois. */
.pb-image-frame > .pb-video,
.pb-split-img > .pb-video,
.pb-gallery-item > .pb-video,
.pb-feature-img > .pb-video { max-width: none; margin: 0; }
.pb-split-img > .pb-video,
.pb-gallery-item > .pb-video,
.pb-feature-img > .pb-video {
  width: min(100%, var(--pb-block-image-size, 100%)); margin-inline: auto;
}
.pb-image-overlay-media > .pb-video {
  position: absolute; inset: 0; max-width: none; margin: 0;
}
.pb-image-overlay-media > .pb-video > .pb-video-player,
.pb-image-overlay-media > .pb-video > .pb-video-frame {
  width: 100%; height: 100%; aspect-ratio: auto;
}
.pb-image-overlay-media > .pb-video video,
.pb-image-overlay-media > .pb-video [slot="poster"] { object-fit: cover; }
.pb-caption { text-align: center; color: var(--theme-muted, var(--muted)); font-size: .85rem; margin-top: .5rem; }

/* Embed */
.pb-embed-frame { width: 100%; border: 0; border-radius: var(--radius); display: block; background: #fff; }

/* Placeholder de la fiche produit (aperçu builder) */
.pb-product-detail-placeholder {
  border: 2px dashed var(--theme-border, var(--border)); border-radius: var(--radius);
  padding: 2.2rem 1.5rem; text-align: center; display: flex; flex-direction: column; gap: .35rem; align-items: center;
}
.pb-pdp-icon { font-size: 1.6rem; color: var(--theme-primary, var(--primary)); }

.pb-figure {
  margin: 0; display: flex; flex-direction: column; align-items: center;
  text-align: center;
}
.pb-image-frame {
  display: block; width: var(--pb-image-scale, 100%); max-width: 100%;
  transition: width .18s cubic-bezier(.2, .8, .2, 1);
}
.pb-image-frame > .pb-imgwrap,
.pb-image-frame > a,
.pb-image-frame > a > .pb-imgwrap { display: block; width: 100%; }
.pb-figure img {
  display: block; width: 100%; max-width: 100%;
  border-radius: var(--pb-image-radius, var(--radius));
}
.pb-image-align-left { align-items: flex-start; text-align: left; }
.pb-image-align-right { align-items: flex-end; text-align: right; }
.pb-figure figcaption {
  width: var(--pb-image-scale, 100%); max-width: 100%;
  color: var(--muted); font-size: .85rem; margin-top: .4em;
}

/* Image with text overlay */
.pb-image-overlay-stage {
  position: relative; min-height: var(--pb-overlay-minh, 480px);
  overflow: hidden; display: flex; align-items: center; padding: clamp(1rem, 4vw, 3rem);
  border-radius: var(--pb-block-image-radius, calc(var(--radius) * 1.4)); isolation: isolate;
}
.pb-image-overlay-media { position: absolute; inset: 0; z-index: 0; }
.pb-image-overlay-media > .pb-imgwrap,
.pb-image-overlay-media > img { display: block; width: 100%; height: 100%; }
.pb-image-overlay-media img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: var(--pb-overlay-image-position, center);
  transform: scale(var(--pb-block-image-scale, 1));
}
.pb-image-overlay-stage.image-position-left .pb-image-overlay-media img { object-position: left center; }
.pb-image-overlay-stage.image-position-right .pb-image-overlay-media img { object-position: right center; }
.pb-image-overlay-copy {
  max-width: min(580px, 92%); padding: clamp(1rem, 3vw, 2rem); color: #fff;
  position: relative; z-index: 1; text-shadow: 0 1px 12px rgb(0 0 0 / 22%);
}
.pb-image-overlay-copy.has-panel {
  isolation: isolate; overflow: hidden;
  border-radius: calc(var(--radius) * 1.2);
  backdrop-filter: blur(5px);
}
.pb-image-overlay-copy.has-panel::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--pb-overlay-panel, #111827); opacity: var(--pb-overlay-opacity, .72);
}
.pb-layout-text-center .pb-image-overlay-stage { justify-content: center; text-align: center; }
.pb-layout-text-right .pb-image-overlay-stage { justify-content: flex-end; text-align: right; }

/* Collection page block */
.pb-collection-head { display: grid; gap: .55rem; margin-bottom: 1.6rem; }
.pb-collection-head h1, .pb-collection-head h2, .pb-collection-head h3, .pb-collection-head h4 { margin: 0; }
.pb-collection-head p { max-width: 760px; margin: 0; color: var(--theme-muted, var(--muted)); }
.pb-collection-count {
  width: max-content; padding: .25rem .6rem; border-radius: 999px;
  color: var(--theme-primary, var(--primary));
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 9%, transparent);
  font-size: .78rem; font-weight: 750;
}
.pb-collection-products {
  display: grid; grid-template-columns: repeat(var(--pb-collection-cols, 3), minmax(0, 1fr)); gap: 1.2rem;
}
.pb-collection-products.layout-list { grid-template-columns: 1fr; }
.pb-collection-products.layout-list .product-card { display: grid; grid-template-columns: minmax(140px, 260px) 1fr; }
.pb-collection-products.layout-featured .product-card:first-child { grid-column: span 2; }
.pb-collection-empty { padding: 2rem; border: 1px dashed var(--theme-border, var(--border)); border-radius: var(--radius); text-align: center; }

/* Collection list block: same cards as the product list, with the option of
   laying the title over the image (always, or only on hover). */
.pb-collection_list .product-cover { aspect-ratio: var(--pb-product-ratio, 16 / 10); }
.pb-collection_list .product-cover img { transform: scale(max(1, var(--pb-block-image-scale, 1))); }
.pb-collection-card-count { display: block; margin-top: .25rem; color: var(--theme-muted, var(--muted)); font-size: .85rem; }
.pb-collection-card.has-overlay-title .product-cover { position: relative; }
.pb-collection-overlay {
  position: absolute; inset: auto 0 0 0; display: block; padding: 1.4rem 1rem .95rem;
  color: #fff; text-align: left;
  background: linear-gradient(to top, rgba(15, 23, 42, .78), rgba(15, 23, 42, 0));
}
.pb-collection-overlay :is(h1, h2, h3, h4) { margin: 0; color: #fff; font-size: 1.05rem; }
.pb-collection-overlay .pb-collection-card-count { color: rgba(255, 255, 255, .82); }
.pb-collection-card.overlay-on-hover .pb-collection-overlay {
  opacity: 0; transform: translateY(6px); transition: opacity .22s ease, transform .22s ease;
}
.pb-collection-card.overlay-on-hover:hover .pb-collection-overlay,
.pb-collection-card.overlay-on-hover:focus-visible .pb-collection-overlay {
  opacity: 1; transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .pb-collection-card.overlay-on-hover .pb-collection-overlay { transition: none; }
}

/* Per-block entrance animations. Content remains visible when JS is absent. */
.pb-reveal-ready .pb-reveal {
  opacity: 0; transition:
    opacity .68s cubic-bezier(.2, .75, .25, 1),
    transform .68s cubic-bezier(.2, .75, .25, 1);
  will-change: opacity, transform;
}
.pb-reveal-ready .pb-reveal-fade { transform: none; }
.pb-reveal-ready .pb-reveal-slide-up { transform: translateY(36px); }
.pb-reveal-ready .pb-reveal-slide-down { transform: translateY(-36px); }
.pb-reveal-ready .pb-reveal-slide-left { transform: translateX(-42px); }
.pb-reveal-ready .pb-reveal-slide-right { transform: translateX(42px); }
.pb-reveal-ready .pb-reveal-zoom { transform: scale(.965); }
.pb-reveal-ready .pb-reveal.is-revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .pb-reveal-ready .pb-reveal { opacity: 1; transform: none; transition: none; }
}
@media (max-width: 700px) {
  .pb-collection-products { grid-template-columns: 1fr; }
  .pb-collection-products.layout-featured .product-card:first-child { grid-column: auto; }
}

.pb-split { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.pb-layout-image-right .pb-split-img { order: 2; }
.pb-split-img .pb-imgwrap {
  display: block; width: min(100%, var(--pb-block-image-size, 100%)); margin-inline: auto;
}
.pb-split-img img { width: 100%; border-radius: var(--pb-block-image-radius, var(--radius)); }
.pb-products .product-cover,
.pb-collection_detail .product-cover,
.pb-customer-product-cover,
.public-blog-card-cover,
.pb-blog-post-cover {
  border-radius: var(--pb-block-image-radius, var(--radius));
}
.pb-products .product-cover { aspect-ratio: var(--pb-product-ratio, 16 / 10); }
.public-blog-card-cover img,
.pb-blog-post-cover img {
  transform: scale(var(--pb-block-image-scale, 1));
}
/* Une carte produit est un cadre : une taille de média inférieure à 100 %
   laissait des bords vides autour de la couverture. L'image remplit toujours
   le cadre ; seule une taille supérieure à 100 % l'agrandit (zoom). */
.pb-products .product-cover img,
.pb-collection_detail .product-cover img,
.pb-customer-product-cover img {
  transform: scale(max(1, var(--pb-block-image-scale, 1)));
}
.pb-products .product-cover-primary,
.pb-products .product-cover-secondary {
  position: absolute; inset: 0; width: 100%; height: 100%;
  transition: opacity .28s ease, transform .35s ease;
}
/* Le format choisi est un cadre, pas une fenêtre de recadrage : la couverture
   est étirée pour l'occuper entièrement. Une image 1:1 posée dans un 16:9
   reste donc entière, alors qu'un `cover` en aurait coupé le haut et le bas. */
.pb-products .product-cover img,
.pb-collection_list .product-cover img { object-fit: fill; }
.pb-products .product-cover-primary { opacity: 1; }
.pb-products .product-cover-secondary { z-index: 1; opacity: 0; }
.pb-products .product-card:hover .product-cover.has-secondary-image .product-cover-primary,
.pb-products .product-card:focus-visible .product-cover.has-secondary-image .product-cover-primary { opacity: 0; }
.pb-products .product-card:hover .product-cover.has-secondary-image .product-cover-secondary,
.pb-products .product-card:focus-visible .product-cover.has-secondary-image .product-cover-secondary { opacity: 1; }
.pb-header-logo,
.pb-customer-login-logo,
.pb-customer-account-avatar img {
  border-radius: var(--pb-block-image-radius, 0);
  transform: scale(var(--pb-block-image-scale, 1));
}
@media (max-width: 700px) {
  .pb-split { grid-template-columns: 1fr; }
  .pb-layout-image-right .pb-split-img { order: 0; }
}

.pb-products-title { margin: 0 0 1rem; }
.pb-carousel { display: flex; align-items: center; gap: .5rem; }
.pb-viewport { flex: 1; overflow: hidden; }
/* Animation au survol des cartes du bloc Liste de produits (réglage Design),
   détaillée par les variables --pb-* posées sur le carrousel. */
.pb-card-hover-lift .pb-slide { padding-top: max(.25rem, calc(var(--pb-lift-height, 2px) + .1rem)); }
.pb-card-hover-lift .product-card { transition: box-shadow var(--pb-lift-speed, 150ms), transform var(--pb-lift-speed, 150ms); }
.pb-card-hover-lift .product-card:hover { transform: translateY(calc(-1 * var(--pb-lift-height, 2px))); }
.pb-card-hover-darken .product-card:hover,
.pb-card-hover-shine .product-card:hover,
.pb-card-hover-grow .product-card:hover { transform: none; }
.pb-card-hover-darken .product-cover::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: #000; opacity: 0; transition: opacity .25s ease;
}
.pb-card-hover-darken .product-card:hover .product-cover::after { opacity: var(--pb-darken, .28); }
.pb-card-hover-shine .product-card { position: relative; }
.pb-card-hover-shine .product-card::after {
  content: ''; position: absolute; top: -50%; bottom: -50%; left: -150%; z-index: 3; pointer-events: none;
  width: var(--pb-shine-width, 60%);
  transform: rotate(var(--pb-shine-angle, 18deg));
  background: linear-gradient(90deg, transparent, var(--pb-shine-color, rgba(255, 255, 255, .35)), transparent);
}
.pb-card-hover-shine .product-card:hover::after { left: 190%; transition: left var(--pb-shine-speed, 700ms) ease; }
/* Marge autour de la carte pour que l'agrandissement ne soit pas rogné par le carrousel. */
.pb-card-hover-grow .pb-slide {
  padding-block: max(.25rem, calc((var(--pb-grow-scale, 1.03) - 1) * 15rem));
  padding-inline: max(.5rem, calc((var(--pb-grow-scale, 1.03) - 1) * 11rem));
}
.pb-card-hover-grow .product-card { transition: box-shadow var(--pb-grow-speed, 150ms), transform var(--pb-grow-speed, 150ms); }
.pb-card-hover-grow .product-card:hover { transform: scale(var(--pb-grow-scale, 1.03)); }
.card-hover-details-toggle {
  display: inline-flex; align-items: center; gap: .3rem; margin: -.25rem 0 .75rem; padding: 0;
  border: 0; background: none; color: var(--primary); font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer;
}
.card-hover-details-toggle::before { content: '▸'; transition: transform .15s; }
.card-hover-details-toggle[aria-expanded="true"]::before { transform: rotate(90deg); }
.card-hover-details { margin: 0 0 1rem; padding: .75rem .85rem .1rem; border: 1px solid var(--border); border-radius: 10px; }
.card-hover-reset {
  display: block; margin-top: .3rem; padding: 0; border: 0; background: none;
  color: var(--muted); font: inherit; font-size: .75rem; text-decoration: underline; cursor: pointer;
}
.card-hover-reset:hover { color: var(--primary); }
.pb-track { display: flex; transition: transform .35s ease; }
.pb-slide { flex: 0 0 calc(100% / var(--pb-per, 3)); min-width: 0; padding: .25rem .5rem; }
.pb-slide .product-card { height: 100%; }
.pb-compact .product-card-body { padding: .6rem .7rem .8rem; }
.pb-compact .product-card-body :is(h1, h2, h3, h4) { font-size: .92rem; }
.pb-compact .product-author { display: none; }
.pb-arrow {
  background: var(--card); border: 1px solid var(--border); border-radius: 50%;
  width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--text); flex-shrink: 0; font-size: 1rem;
}
.pb-arrow:hover { border-color: var(--primary); color: var(--primary); }
.pb-arrow:disabled { opacity: .35; cursor: default; }
.pb-arrow:disabled:hover { border-color: var(--border); color: var(--text); }

/* ===== Website builder v2 : éditeur plein écran ===== */
main.container:has(> .builder-app) { max-width: none; padding: .6rem .9rem 1rem; }

.builder-app { display: flex; flex-direction: column; height: calc(100vh - 92px); min-height: 560px; gap: .7rem; }

/* Barre d'outils */
.builder-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);
  padding: .5rem .8rem;
}
.bt-group { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.bt-page-label { display: flex; color: var(--muted); }
/* Bouton Lumia de la barre d'outils : même identité que la fenêtre de chat. */
.bt-lumia {
  display: inline-flex; align-items: center; gap: .35rem; border: 0; color: #fff;
  background: linear-gradient(125deg, #2f2769 0%, #5b4bbe 58%, #7654c6 100%);
  box-shadow: 0 6px 16px rgba(70, 52, 160, .24);
}
.bt-lumia:hover { color: #fff; filter: brightness(1.08); }
.bt-lumia .icon { width: 14px; height: 14px; }
.bt-page-select {
  max-width: 240px; padding: .4rem .6rem; border: 1px solid var(--border); border-radius: var(--radius);
  font-family: inherit; font-size: .9rem; background: var(--card); color: var(--text);
}
#save-status { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Menu de publication */
.publish-wrap { position: relative; }
.publish-split { display: inline-flex; align-items: stretch; }
.publish-split > .btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.publish-split > .publish-toggle {
  width: 34px; padding-inline: .35rem; border-left: 1px solid color-mix(in srgb, currentColor 25%, transparent);
  border-top-left-radius: 0; border-bottom-left-radius: 0;
}
.publish-menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 500;
  width: min(680px, calc(100vw - 24px));
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .18); padding: .5rem; display: flex; flex-direction: column; gap: .2rem;
}
.publish-menu[hidden] { display: none; }
.publish-status { padding: .4rem .55rem; border-bottom: 1px solid var(--border); margin-bottom: .2rem; }
.publish-item {
  display: flex; flex-direction: column; gap: .4rem; text-align: left; background: none; border: none;
  font-family: inherit; font-size: .9rem; color: var(--text); padding: .55rem; border-radius: 8px; cursor: pointer;
}
button.publish-item { flex-direction: row; align-items: center; }
button.publish-item:hover { background: #f4f3fc; }
.publish-schedule { cursor: default; }
.publish-schedule-actions { display: flex; justify-content: flex-end; padding-top: .15rem; }

/* Corps : aperçu à gauche (grand), panneau à droite */
.builder-body { display: flex; gap: .8rem; flex: 1; min-height: 0; }
.builder-preview-wrap {
  flex: 1; min-width: 0; overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius);
  background:
    linear-gradient(45deg, #f0f0f5 25%, transparent 25%, transparent 75%, #f0f0f5 75%),
    linear-gradient(45deg, #f0f0f5 25%, transparent 25%, transparent 75%, #f0f0f5 75%);
  background-size: 24px 24px; background-position: 0 0, 12px 12px; background-color: #fafafc;
}
.builder-preview { position: relative; min-height: 100%; overflow: hidden; background: #fff; }
.builder-side { width: 380px; flex-shrink: 0; overflow-y: auto; }
.builder-panel { padding: 1rem 1.1rem; }
.builder-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; gap: .5rem; }
.builder-panel-head h3 { margin: 0; font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Pilotage A/B intégré aux réglages d'une fiche produit. */
.ab-panel { display: flex; flex-direction: column; gap: .65rem; margin-bottom: .8rem; }
.ab-panel .builder-panel-head { margin-bottom: 0; }
.ab-eyebrow {
  display: block; margin-bottom: .16rem; color: var(--primary); font-size: .65rem;
  font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.ab-status {
  flex: 0 0 auto; padding: .22rem .48rem; border-radius: 999px;
  color: var(--muted); background: #f0f0f5; font-size: .68rem; font-weight: 800;
  text-transform: uppercase;
}
.ab-status-running { color: #17653b; background: #dff7e9; }
.ab-status-draft { color: #76520a; background: #fff1c8; }
.ab-status-stopped { color: #52526a; background: #e8e8f0; }
.ab-name { font-size: .88rem; }
.ab-actions, .ab-promote-actions { display: flex; flex-wrap: wrap; gap: .42rem; }
.ab-freeze-note, .ab-verdict, .ab-error {
  margin: 0; padding: .65rem .72rem; border-radius: 9px; font-size: .78rem; line-height: 1.45;
}
.ab-freeze-note { color: #654c10; background: #fff7da; border: 1px solid #f3dfa0; }
.ab-error { color: #8f2424; background: #fff0f0; border: 1px solid #f2c7c7; }
.ab-results { display: flex; flex-direction: column; gap: .6rem; }
.ab-results-table { overflow: hidden; border: 1px solid var(--border); border-radius: 10px; }
.ab-results-row {
  display: grid; grid-template-columns: 1.3fr .7fr .55fr 1fr; gap: .35rem;
  align-items: center; padding: .52rem .58rem; border-top: 1px solid var(--border);
  font-size: .72rem;
}
.ab-results-row:first-child { border-top: 0; }
.ab-results-head { color: var(--muted); background: #f7f7fa; font-weight: 750; }
.ab-results-row span:last-child { text-align: right; }
.ab-verdict.is-waiting { color: #654c10; background: #fff7da; }
.ab-verdict.is-winner { color: #17653b; background: #dff7e9; font-weight: 750; }

@media (max-width: 980px) {
  .builder-app { height: auto; }
  .builder-body { flex-direction: column-reverse; }
  .builder-side { width: auto; }
  .builder-preview-wrap { max-height: 70vh; }
}

/* Panneau latéral : en-tête avec retour, sections, listes */
.side-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .8rem; }
.side-head h3 {
  flex: 1; min-width: 0; margin: 0; font-size: 1rem;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.side-back { flex-shrink: 0; }
.side-head-actions { display: flex; align-items: center; gap: .2rem; flex-shrink: 0; }
.side-head-action { position: relative; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; }
.side-head-action::after {
  content: attr(data-tooltip); position: absolute; z-index: 30; top: calc(100% + 7px); right: 0;
  width: max-content; max-width: 180px; padding: .32rem .48rem; border-radius: 6px;
  background: #222; color: #fff; font-size: .72rem; font-weight: 600; line-height: 1.2;
  pointer-events: none; opacity: 0; transform: translateY(-2px);
  transition: opacity .14s ease, transform .14s ease;
}
.side-head-action::before {
  content: ""; position: absolute; z-index: 31; top: calc(100% + 2px); right: 10px;
  border: 5px solid transparent; border-bottom-color: #222;
  pointer-events: none; opacity: 0; transition: opacity .14s ease;
}
.side-head-action:hover::after, .side-head-action:focus-visible::after,
.side-head-action:hover::before, .side-head-action:focus-visible::before {
  opacity: 1; transform: translateY(0);
}
.side-body { display: flex; flex-direction: column; gap: .8rem; }
.side-subtitle { margin: .6rem 0 0; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.side-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1rem; border-top: 1px solid var(--border); padding-top: .8rem; }
.side-hint { margin: .2rem 0 .6rem; }
.side-seo-btn { align-self: flex-start; margin-bottom: .6rem; }
.builder-settings-tabs {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: .25rem; padding: .25rem;
  margin: 0 0 .9rem; border-radius: 10px; background: #f1f1f7;
}
.builder-settings-tab {
  border: 0; border-radius: 8px; padding: .52rem .6rem; background: transparent;
  color: var(--muted); font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer;
}
.builder-settings-tab.active { background: var(--card); color: var(--primary); box-shadow: 0 2px 7px rgba(20, 20, 45, .09); }
.settings-tab-panel[hidden] { display: none; }
.builder-rich-editor {
  position: relative; overflow: visible;
  border: 1px solid var(--border); border-radius: 10px; background: var(--card);
}
.builder-rich-content {
  min-height: 88px; padding: .7rem .75rem; outline: 0; line-height: 1.5; overflow-wrap: anywhere;
}
.builder-rich-content[aria-multiline="false"] { min-height: 42px; }
.builder-rich-content:empty::before { content: attr(data-placeholder); color: var(--muted); pointer-events: none; }
.builder-rich-content:focus { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--primary) 22%, transparent); }
.builder-rich-content mark { background: #fff3a8; }
.builder-rich-content code { padding: .08em .3em; border-radius: 4px; background: #efeff6; }
.builder-rich-content ul, .builder-rich-content ol { margin: .35rem 0; padding-left: 1.35rem; }
.builder-rich-content blockquote {
  margin: .45rem 0; padding: .1rem 0 .1rem .8rem;
  border-left: 3px solid color-mix(in srgb, var(--primary) 45%, var(--border));
  color: var(--muted);
}
/* Checklist écrite depuis la barre de sélection : la case est dessinée en CSS,
   l'état vit dans data-checked pour survivre à l'assainissement serveur. */
.pb-checklist { list-style: none; margin: .5rem 0; padding-left: 0; }
.pb-checklist > li {
  position: relative; padding-left: 1.7rem; margin: .2rem 0;
  transition: color .18s cubic-bezier(.22, .78, .3, 1);
}
.pb-checklist > li::before {
  content: ""; position: absolute; left: 0; top: .18em;
  width: 1.05em; height: 1.05em; border: 1.5px solid currentColor; border-radius: 5px;
  opacity: .45; transition: background .18s ease, opacity .18s ease;
}
.pb-checklist > li::after {
  content: ""; position: absolute; left: .33em; top: .34em;
  width: .32em; height: .6em; border: solid transparent; border-width: 0 2px 2px 0;
  transform: rotate(45deg) scale(.6); opacity: 0;
  transition: opacity .18s ease, transform .18s cubic-bezier(.3, 1.5, .5, 1);
}
.pb-checklist > li[data-checked="true"] { color: var(--muted, #6b6b80); }
.pb-checklist > li[data-checked="true"]::before {
  background: currentColor; opacity: .85;
}
.pb-checklist > li[data-checked="true"]::after {
  border-color: var(--card, #fff); opacity: 1; transform: rotate(45deg) scale(1);
}
.builder-rich-content .pb-checklist > li { cursor: pointer; }
.pb-text-h1 { font-size: 2.25rem !important; font-weight: inherit; line-height: 1.08; }
.pb-text-h2 { font-size: 1.75rem !important; font-weight: inherit; line-height: 1.14; }
.pb-text-h3 { font-size: 1.3rem !important; font-weight: inherit; line-height: 1.22; }
.settings-section { display: flex; flex-direction: column; gap: .7rem; padding: .8rem; border: 1px solid var(--border); border-radius: var(--radius); }
.settings-section > .side-subtitle { margin-top: 0; }
.image-control-card {
  display: grid; gap: .8rem; padding: .9rem;
  border: 1px solid color-mix(in srgb, var(--primary) 14%, var(--border));
  border-radius: 14px;
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--primary) 8%, transparent), transparent 48%),
    var(--card);
}
.image-control-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem;
}
.image-control-head > div { display: grid; gap: .12rem; }
.image-control-head .hint { font-size: .76rem; }
.image-scale-value {
  display: inline-flex; align-items: center; overflow: hidden;
  min-width: 70px; height: 32px; border: 1px solid var(--border); border-radius: 8px;
  color: var(--primary); background: color-mix(in srgb, var(--primary) 10%, var(--card));
  font-size: .74rem; line-height: 1;
}
.image-scale-value input {
  width: 50px; height: 30px; padding: 0 .25rem 0 .4rem;
  border: 0; background: transparent; color: var(--primary);
  font: inherit; font-size: .8rem; font-weight: 800; text-align: right;
}
.image-scale-value input:focus { outline: none; box-shadow: none; }
.image-scale-value span { padding-right: .4rem; }
.image-scale-slider {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center; gap: .6rem;
}
.image-scale-end { color: var(--muted); font-size: .68rem; font-weight: 650; }
.image-scale-slider input[type="range"] {
  --image-scale-progress: 100%;
  width: 100%; height: 24px; margin: 0; padding: 0;
  appearance: none; -webkit-appearance: none; background: transparent; cursor: ew-resize;
}
.image-scale-slider input[type="range"]::-webkit-slider-runnable-track {
  height: 7px; border-radius: 999px;
  background: linear-gradient(90deg,
    var(--primary) 0 var(--image-scale-progress),
    color-mix(in srgb, var(--primary) 14%, var(--border)) var(--image-scale-progress) 100%);
}
.image-scale-slider input[type="range"]::-moz-range-track {
  height: 7px; border: 0; border-radius: 999px;
  background: color-mix(in srgb, var(--primary) 14%, var(--border));
}
.image-scale-slider input[type="range"]::-moz-range-progress {
  height: 7px; border-radius: 999px; background: var(--primary);
}
.image-scale-slider input[type="range"]::-webkit-slider-thumb {
  width: 20px; height: 20px; margin-top: -6.5px;
  appearance: none; -webkit-appearance: none;
  border: 3px solid var(--card); border-radius: 50%; background: var(--primary);
  box-shadow: 0 2px 7px color-mix(in srgb, var(--primary) 38%, transparent);
  transition: transform .14s ease, box-shadow .14s ease;
}
.image-scale-slider input[type="range"]::-moz-range-thumb {
  width: 15px; height: 15px;
  border: 3px solid var(--card); border-radius: 50%; background: var(--primary);
  box-shadow: 0 2px 7px color-mix(in srgb, var(--primary) 38%, transparent);
}
.image-scale-slider input[type="range"]:hover::-webkit-slider-thumb,
.image-scale-slider input[type="range"]:focus-visible::-webkit-slider-thumb {
  transform: scale(1.12);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--primary) 14%, transparent);
}
.image-scale-slider input[type="range"]:focus-visible { outline: none; }
.image-scale-presets { display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; }
.image-scale-preset {
  padding: .38rem .2rem; border: 1px solid var(--border); border-radius: 8px;
  color: var(--muted); background: color-mix(in srgb, var(--card) 92%, var(--bg));
  font: inherit; font-size: .73rem; font-weight: 700; cursor: pointer;
  transition: color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}
.image-scale-preset:hover { color: var(--primary); border-color: color-mix(in srgb, var(--primary) 42%, var(--border)); transform: translateY(-1px); }
.image-scale-preset.active {
  color: var(--primary); border-color: color-mix(in srgb, var(--primary) 44%, var(--border));
  background: color-mix(in srgb, var(--primary) 9%, var(--card));
}
.image-alignment-options {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem;
  padding: .25rem; border-radius: 11px;
  background: color-mix(in srgb, var(--muted) 8%, var(--card));
}
.image-alignment-option {
  display: flex; flex-direction: column; align-items: center; gap: .35rem;
  min-width: 0; padding: .52rem .25rem; border: 1px solid transparent; border-radius: 9px;
  color: var(--muted); background: transparent; font: inherit; font-size: .72rem;
  font-weight: 700; cursor: pointer; transition: all .16s ease;
}
.image-alignment-option:hover { color: var(--primary); }
.image-alignment-option.active {
  color: var(--primary); border-color: color-mix(in srgb, var(--primary) 20%, var(--border));
  background: var(--card); box-shadow: 0 3px 10px rgb(20 20 45 / 8%);
}
.image-align-glyph {
  width: 34px; display: flex; flex-direction: column; gap: 3px;
}
.image-align-glyph i { display: block; height: 3px; border-radius: 99px; background: currentColor; opacity: .76; }
.image-align-glyph i:nth-child(1) { width: 100%; }
.image-align-glyph i:nth-child(2) { width: 68%; }
.image-align-glyph i:nth-child(3) { width: 84%; }
.image-align-glyph-left { align-items: flex-start; }
.image-align-glyph-center { align-items: center; }
.image-align-glyph-right { align-items: flex-end; }
.layout-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.layout-choice {
  min-width: 0; min-height: 82px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .42rem;
  padding: .62rem .42rem; border: 1px solid var(--border); border-radius: 10px;
  background: var(--card); color: var(--text); font: inherit; cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.layout-choice:hover { border-color: color-mix(in srgb, var(--primary) 55%, var(--border)); background: #faf9ff; }
.layout-choice.selected {
  border-color: var(--primary); background: color-mix(in srgb, var(--primary) 6%, var(--card));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent);
}
.layout-choice-label { max-width: 100%; font-size: .78rem; font-weight: 700; text-align: center; line-height: 1.2; }
.layout-choice-visual {
  width: 66px; height: 38px; display: grid; gap: 3px; padding: 5px;
  overflow: hidden; border: 1px solid color-mix(in srgb, var(--muted) 42%, transparent);
  border-radius: 6px; background: color-mix(in srgb, var(--muted) 8%, var(--card));
}
.layout-choice-visual i { display: block; min-width: 0; min-height: 0; border-radius: 2px; background: color-mix(in srgb, var(--muted) 44%, var(--card)); }
.layout-choice.selected .layout-choice-visual i { background: color-mix(in srgb, var(--primary) 56%, var(--card)); }
.layout-visual-grid { grid-template-columns: repeat(var(--layout-cols, 2), 1fr); grid-template-rows: repeat(2, 1fr); }
.layout-visual-grid-3 { --layout-cols: 3; }
.layout-visual-grid-4 { --layout-cols: 4; }
.layout-visual-cards { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
.layout-visual-rows, .layout-visual-detailed { grid-template-columns: 17px 1fr; grid-template-rows: repeat(2, 1fr); }
.layout-visual-rows i:nth-child(2n), .layout-visual-detailed i:nth-child(2n) { height: 45%; align-self: center; }
.layout-visual-compact { grid-template-columns: 11px 1fr; grid-template-rows: repeat(2, 1fr); padding-block: 7px; }
.layout-visual-compact i:nth-child(2n) { height: 3px; align-self: center; }
.layout-visual-compact-grid { grid-template-columns: 11px 1fr 11px 1fr; grid-template-rows: repeat(2, 1fr); padding-block: 7px; }
.layout-visual-compact-grid i { min-height: 5px; align-self: center; }
.layout-visual-drawer-left, .layout-visual-drawer-right { grid-template-columns: 58% 1fr; }
.layout-visual-drawer-right { grid-template-columns: 1fr 58%; }
.layout-visual-drawer-left i:first-child, .layout-visual-drawer-right i:nth-child(2) { grid-row: 1 / 5; background: color-mix(in srgb, var(--primary) 52%, var(--card)); }
.layout-visual-drawer-left i:not(:first-child), .layout-visual-drawer-right i:not(:nth-child(2)) { height: 3px; align-self: center; }
.layout-visual-split-left, .layout-visual-split-right { grid-template-columns: 58% 1fr; grid-template-rows: repeat(2, 1fr); }
.layout-visual-split-right { grid-template-columns: 1fr 58%; }
.layout-visual-split-left i:first-child, .layout-visual-split-right i:nth-child(2) { grid-row: 1 / 3; }
.layout-visual-split-left i:nth-child(4), .layout-visual-split-right i:nth-child(4) { display: none; }
.layout-visual-center { grid-template-columns: 1fr; justify-items: center; }
.layout-visual-center i:nth-child(odd) { width: 72%; }
.layout-visual-center i:nth-child(even) { width: 48%; }
.layout-visual-align-left { grid-template-columns: 1fr; }
.layout-visual-align-left i:nth-child(even) { width: 68%; }
.layout-visual-inline { grid-template-columns: 1.7fr 1fr 1fr; align-items: center; }
.layout-visual-inline i { height: 55%; }
.layout-visual-carousel { grid-template-columns: 8px repeat(3, 1fr) 8px; align-items: center; }
.layout-visual-carousel i { height: 80%; }
.layout-visual-width-full { grid-template-columns: 1fr; }
.layout-visual-width-full i { height: 5px; }
/* Forme de la photo de profil : un seul carré, découpé comme il le sera. */
.layout-visual-avatar-circle, .layout-visual-avatar-rounded, .layout-visual-avatar-square {
  grid-template-columns: 1fr; justify-items: center; align-content: center;
}
.layout-visual-avatar-circle i:not(:first-child),
.layout-visual-avatar-rounded i:not(:first-child),
.layout-visual-avatar-square i:not(:first-child) { display: none; }
.layout-visual-avatar-circle i:first-child,
.layout-visual-avatar-rounded i:first-child,
.layout-visual-avatar-square i:first-child { width: 26px; height: 26px; }
.layout-visual-avatar-circle i:first-child { border-radius: 50%; }
.layout-visual-avatar-rounded i:first-child { border-radius: 8px; }
.layout-visual-avatar-square i:first-child { border-radius: 0; }

/* Lignes de thème */
.theme-row { display: flex; align-items: center; gap: .6rem; padding: .45rem .3rem; border-bottom: 1px solid var(--border); }
.theme-row-name { flex: 1; font-weight: 600; font-size: .92rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.theme-row-site { margin-left: .4rem; padding: .1rem .4rem; font-size: .66rem; vertical-align: middle; }
.theme-row-actions { display: flex; gap: .2rem; flex-shrink: 0; align-items: center; }
.theme-swatch { display: inline-flex; gap: 2px; flex-shrink: 0; }
.theme-swatch-dot { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--border); display: inline-block; }
.theme-select-control { display: flex; align-items: center; gap: .5rem; }
.theme-select-control select { flex: 1; min-width: 0; }
.theme-live-preview {
  padding: 1rem; border: 1px solid var(--theme-border, var(--border)); border-radius: var(--radius);
  background: var(--theme-bg, #fff); color: var(--theme-text, inherit); font-family: var(--theme-font-body, inherit);
}
.theme-live-preview h2 { margin: .35rem 0; color: var(--theme-h2, inherit); font-family: var(--theme-font-heading, inherit); }
.theme-live-preview p { margin: 0; color: var(--theme-muted, var(--muted)); font-size: .85rem; }
.theme-preview-price { display: flex; align-items: baseline; gap: .45rem; margin-top: .55rem; font-size: .82rem; }
.theme-preview-price del { color: var(--theme-old-price, var(--theme-muted, var(--muted))); }
.theme-preview-price strong { color: var(--theme-price, var(--theme-primary, var(--primary))); font-size: 1rem; }
.theme-preview-discount { display: block; margin-top: .55rem; color: var(--theme-discount, #dc2626); font-size: .8rem; font-weight: 700; }
.theme-preview-loyalty {
  display: flex; align-items: center; justify-content: space-between; gap: .55rem; margin-top: .65rem; padding: .55rem .65rem;
  border: 1px solid color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary)) 28%, var(--theme-border));
  border-radius: 9px; background: var(--theme-loyalty-card, var(--theme-card)); color: var(--theme-loyalty-text, var(--theme-text));
}
.theme-preview-loyalty > span:first-child { color: var(--theme-loyalty-accent, var(--theme-primary)); font-weight: 750; }
.theme-preview-loyalty .promo-code { background: var(--theme-loyalty-coupon, var(--theme-card)); color: var(--theme-loyalty-coupon-text, var(--theme-text)); }
.theme-preview-kicker { color: var(--theme-primary, var(--primary)); text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; font-weight: 800; }
.theme-live-preview .btn { font-size: .78rem; padding: .48rem .65rem; }
.theme-choice-modal { position: fixed; inset: 0; z-index: 1600; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.theme-choice-overlay { position: absolute; inset: 0; border: 0; background: rgba(23, 23, 36, .48); cursor: default; }
.theme-choice-card {
  position: relative; width: min(520px, 100%); padding: 1.1rem; border-radius: 16px;
  background: var(--card); box-shadow: 0 25px 80px rgba(12, 12, 30, .3); display: flex; flex-direction: column; gap: .7rem;
}
.theme-choice-head { display: flex; gap: .8rem; align-items: center; }
.theme-choice-head h3, .theme-choice-head p { margin: 0; }
.theme-choice-option {
  display: flex; flex-direction: column; gap: .2rem; padding: .9rem; text-align: left; cursor: pointer;
  border: 1px solid var(--border); border-radius: 11px; background: var(--card); color: var(--text); font: inherit;
}
.theme-choice-option:hover { border-color: var(--primary); background: #faf9ff; transform: translateY(-1px); }
.theme-choice-option span { color: var(--muted); font-size: .84rem; }
.theme-colors-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; padding: .5rem 0; }
.field-half { flex: 1; min-width: 0; }
.field-half input[type="color"] { width: 100%; height: 34px; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; padding: 2px; background: var(--card); }
.color-override-row { display: flex; gap: .5rem; align-items: center; }
.color-override-row input[type="color"] { width: 60px; height: 34px; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; padding: 2px; background: var(--card); }

/* Lignes de pages */
.page-row { display: flex; align-items: center; gap: .4rem; border: 1px solid var(--border); border-radius: var(--radius); padding: .35rem .5rem; }
.page-row-main {
  flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .05rem;
  background: none; border: none; font-family: inherit; text-align: left; cursor: pointer; padding: .2rem .25rem;
}
span.page-row-main { cursor: default; }
.page-row-title { font-weight: 600; font-size: .92rem; }
.page-row-actions { display: flex; gap: .15rem; flex-shrink: 0; }
.slug-row { display: flex; align-items: center; gap: .3rem; }
.slug-prefix { color: var(--muted); font-size: .85rem; white-space: nowrap; }
.slug-row input { flex: 1; min-width: 0; }

/* Éditeur de listes (galeries, FAQ, colonnes, liens…) */
.list-editor { display: flex; flex-direction: column; gap: .55rem; }
.list-editor-item { border: 1px solid var(--border); border-radius: var(--radius); background: #fafafe; }
.list-editor-head { display: flex; align-items: center; justify-content: space-between; gap: .4rem; padding: .4rem .6rem; }
.list-editor-title { font-weight: 600; font-size: .88rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.list-editor-actions { display: flex; gap: .1rem; flex-shrink: 0; }
.list-editor-body { padding: 0 .6rem .6rem; display: flex; flex-direction: column; gap: .55rem; }

/* Engrenage "texte alternatif" sur les images de l'aperçu */
.pb-imgwrap { position: relative; display: inline-block; max-width: 100%; }
.pb-imgwrap > img { display: block; max-width: 100%; }
.pb-alt-gear {
  position: absolute; top: 6px; right: 6px; z-index: 5;
  width: 28px; height: 28px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(17, 17, 27, .72); color: #fff; display: flex; align-items: center; justify-content: center;
  opacity: .85; transition: opacity .15s ease, transform .15s ease;
}
.pb-alt-gear:hover { opacity: 1; transform: rotate(30deg); }
.alt-popover {
  position: fixed; z-index: 1200; width: 300px; background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: 0 14px 40px rgba(0, 0, 0, .22); padding: .8rem;
  display: flex; flex-direction: column; gap: .5rem;
  opacity: 0; pointer-events: none; transform: translateY(-7px) scale(.975);
  transform-origin: top right;
  transition: opacity .16s ease, transform .2s cubic-bezier(.22, .78, .3, 1);
  will-change: opacity, transform;
}
.alt-popover.is-open { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.alt-popover[hidden] { display: none; }
.alt-popover input { width: 100%; }
.alt-popover-actions { display: flex; gap: .4rem; justify-content: flex-end; }
/* Options de la vidéo : même ancrage que l'engrenage « texte alternatif »,
   mais le panneau est plus large et défile si la fenêtre est courte. */
.pb-video-editable { position: relative; }
.pb-video-gear { top: 10px; right: 10px; }
.video-popover { width: 340px; max-height: min(80vh, 620px); overflow-y: auto; gap: .7rem; }
.video-popover-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.video-popover-title { margin: 0; font-size: 1.28rem; font-weight: 750; line-height: 1.2; }
.video-popover-body { display: grid; gap: .75rem; }
.video-popover-section { display: grid; gap: .4rem; padding-top: .7rem; border-top: 1px solid var(--border); }
.video-popover-section:first-child { padding-top: 0; border-top: none; }
.video-popover-section > .field-label { font-weight: 600; }
.video-popover-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.video-popover-source-actions { flex-wrap: nowrap; }
.video-custom-start .check-field { margin-bottom: .5rem; }
.video-custom-start-field { margin: 0 0 .8rem 1.68rem; }
.video-start-time-input {
  width: 100%; padding: .55rem .75rem; border: 1px solid var(--border);
  border-radius: var(--radius); color: var(--text); background: var(--card);
  font: inherit; font-size: .95rem;
}
/* Le même engrenage dans l'éditeur de texte riche. Le cadre de l'aperçu est
   déjà en position relative plus haut, rien à redéclarer ici. */
.editor-video-gear { top: 10px; right: 10px; }

@media (prefers-reduced-motion: reduce) {
  .alt-popover { transition-duration: .01ms !important; }
}

/* Ancien menu d'ajout (compatibilité) */
.add-menu { border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: .9rem; overflow: hidden; }
.add-menu-cat {
  background: #fafafe; padding: .35rem .75rem; font-size: .75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; color: var(--muted);
  border-bottom: 1px solid var(--border);
}
.add-menu-item {
  display: flex; flex-direction: column; width: 100%; text-align: left; gap: .1rem;
  background: none; border: none; border-bottom: 1px solid var(--border);
  padding: .55rem .75rem; cursor: pointer; font-family: inherit; font-size: .92rem;
}
.add-menu-item:last-child { border-bottom: none; }
.add-menu-item:hover { background: #f4f3fc; }
.add-menu-item-label { font-weight: 600; }

/* Nouvelle popup d'ajout de bloc */
.add-menu-modal {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  padding: 20px; isolation: isolate;
}
.add-menu-modal[hidden] { display: none; }
.add-menu-overlay {
  position: absolute; inset: 0; overflow: hidden;
  background: rgba(20, 24, 40, .36); opacity: 0;
  backdrop-filter: blur(0); transition: opacity .28s ease, backdrop-filter .28s ease;
}
.add-menu-overlay::before,
.add-menu-overlay::after {
  content: ''; position: absolute; width: 48vw; height: 48vw; min-width: 440px; min-height: 440px;
  border-radius: 50%; filter: blur(28px); opacity: 0; transform: scale(.72);
}
.add-menu-overlay::before {
  left: -12vw; top: -18vw;
  background: radial-gradient(circle, rgba(124, 110, 246, .28), transparent 67%);
}
.add-menu-overlay::after {
  right: -15vw; bottom: -22vw;
  background: radial-gradient(circle, rgba(91, 191, 216, .24), transparent 68%);
}
.add-menu-modal.is-open .add-menu-overlay { opacity: 1; backdrop-filter: blur(7px); }
.add-menu-modal.is-open .add-menu-overlay::before,
.add-menu-modal.is-open .add-menu-overlay::after {
  opacity: 1; transform: scale(1); animation: addMenuAmbient 7s ease-in-out infinite alternate;
}
.add-menu-modal.is-open .add-menu-overlay::after { animation-delay: -3.5s; }
.add-menu-modal.is-closing { pointer-events: none; }
.add-menu-modal.is-closing .add-menu-overlay::before,
.add-menu-modal.is-closing .add-menu-overlay::after { animation: none; opacity: 0; transform: scale(.78); transition: all .24s ease; }
.add-menu-popup {
  position: relative; z-index: 1; background: var(--card); border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 18px; box-shadow: 0 32px 90px rgba(15, 23, 42, .3);
  width: min(1180px, 96vw); height: min(820px, calc(100vh - 40px));
  display: flex; flex-direction: column; overflow: hidden;
  opacity: 0; transform: translateY(24px) scale(.965);
  transition: opacity .24s ease, transform .32s cubic-bezier(.2, .8, .2, 1);
}
.add-menu-modal.is-open .add-menu-popup { opacity: 1; transform: translateY(0) scale(1); }
.add-menu-modal.is-closing .add-menu-popup {
  opacity: 0; transform: translateY(18px) scale(.975);
  transition-duration: .22s;
  transition-timing-function: cubic-bezier(.4, 0, 1, 1);
}
.add-menu-header { 
  display: flex; align-items: center; justify-content: space-between; 
  padding: 1.05rem 1.3rem .8rem;
}
.add-menu-header h3 { margin: .12rem 0 0; font-size: 1.25rem; display: flex; align-items: center; gap: .5rem; }
.add-menu-header h3 .icon { color: var(--primary); }
.add-menu-eyebrow {
  color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase;
}
.btn-icon { padding: 0.35rem; line-height: 1; }

.add-menu-search-wrap { padding: 0 1.3rem 1rem; border-bottom: 1px solid var(--border); }
.add-menu-search {
  display: flex; align-items: center; gap: .65rem; width: min(560px, 100%); min-height: 44px;
  padding: 0 .8rem; border: 1px solid var(--border); border-radius: 12px; background: #f8f9fc;
  color: var(--muted); transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.add-menu-search:focus-within {
  border-color: var(--primary); background: var(--card); box-shadow: 0 0 0 3px rgba(92,75,234,.12);
}
.add-menu-search input {
  flex: 1; min-width: 0; padding: 0; border: 0; outline: 0; box-shadow: none; background: transparent;
  font: inherit; color: var(--text);
}
.add-menu-search input:focus { outline: 0; box-shadow: none; }
.add-menu-body { flex: 1; min-height: 0; display: grid; grid-template-columns: 205px minmax(0, 1fr); }
.add-menu-tabs { 
  display: flex; flex-direction: column; gap: .25rem; min-width: 0;
  background: #f8f9fc; padding: 1rem .75rem; overflow-y: auto; border-right: 1px solid var(--border);
}
.add-menu-tab {
  width: 100%; padding: .68rem .8rem; border: 0; border-radius: 9px; background: transparent;
  font-size: .88rem; font-weight: 650; color: var(--muted); cursor: pointer;
  text-align: left; white-space: nowrap; transition: color .16s ease, background .16s ease, transform .16s ease;
}
.add-menu-tab:hover { color: var(--primary); background: rgba(92,75,234,.07); transform: translateX(2px); }
.add-menu-tab.active { color: var(--primary); background: rgba(92,75,234,.11); }

.add-menu-content { 
  min-width: 0; overflow-y: auto; padding: 1.1rem;
}
.add-menu-category { display: none; }
.add-menu-category.active,
.add-menu-content.is-searching .add-menu-category.has-search-results {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem;
}
.add-menu-content.is-searching .add-menu-category.active:not(.has-search-results) { display: none; }
.add-menu-content.is-searching .add-menu-category { margin-bottom: 1.4rem; }
.add-menu-category-title {
  display: none; grid-column: 1 / -1; margin: 0 0 -.15rem; font-size: .8rem;
  color: var(--muted); text-transform: uppercase; letter-spacing: .07em;
}
.add-menu-content.is-searching .add-menu-category-title { display: block; }
.add-menu-category > .hint { grid-column: 1 / -1; }
.add-menu-no-results { margin: 3rem auto; text-align: center; }

.add-menu-item-with-preview {
  min-width: 0; display: block;
  border: 1px solid var(--border); border-radius: 13px; background: var(--card); cursor: pointer;
  overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.add-menu-item-with-preview:hover,
.add-menu-item-with-preview:focus-visible {
  border-color: var(--primary); 
  box-shadow: 0 10px 28px rgba(92, 75, 234, .16);
  transform: translateY(-3px); outline: 0;
}
.block-preview-card { position: relative; display: block; min-width: 0; overflow: hidden; background: #fff; }
.block-preview-canvas { position: relative; display: block; width: 100%; height: 210px; overflow: hidden; background: #fff; }
.block-preview-loading {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: .4rem;
  color: #8a87a1; font-size: .78rem; background: linear-gradient(110deg, #fafafe 30%, #f1f0f9 45%, #fafafe 60%);
  background-size: 240% 100%; animation: blockPreviewLoading 1.4s linear infinite;
}
.block-preview-render {
  position: absolute; left: 0; top: 0; width: 1100px; min-height: 560px;
  transform-origin: top left; pointer-events: none; background: #fff; color: var(--text);
}
.block-preview-render .store-page-blocks { width: 1100px; min-height: 560px; }
.block-preview-render .page-block { animation: none !important; }
.block-preview-render-checkout { min-height: 620px; }
.block-preview-label {
  position: absolute; z-index: 4; left: .65rem; bottom: .65rem; max-width: calc(100% - 1.3rem);
  padding: .38rem .62rem; border-radius: 8px; background: rgba(20, 24, 40, .88); color: #fff;
  font-weight: 700; font-size: .78rem; line-height: 1.2; opacity: 0; transform: translateY(6px);
  box-shadow: 0 5px 18px rgba(0,0,0,.2); transition: opacity .18s ease, transform .18s ease;
}
.add-menu-item-with-preview:hover .block-preview-label,
.add-menu-item-with-preview:focus-visible .block-preview-label { opacity: 1; transform: translateY(0); }

/* Marque-page « mettre en favori », en haut à droite de l'aperçu. Il ne se
   montre qu'au survol de la vignette (ou au focus clavier). */
.block-preview-favorite {
  position: absolute; z-index: 5; top: .55rem; right: .55rem;
  width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(20, 24, 40, .82); color: #fff; font-size: .9rem; cursor: pointer;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .24);
  opacity: 0; transform: translateY(-6px) scale(.88);
  transition: opacity .18s ease, transform .18s ease, background .18s ease;
}
.add-menu-item-with-preview:hover .block-preview-favorite,
.add-menu-item-with-preview:focus-visible .block-preview-favorite,
.block-preview-favorite:focus-visible { opacity: 1; transform: translateY(0) scale(1); }
.block-preview-favorite:hover { background: var(--primary); transform: translateY(0) scale(1.08); }
.block-preview-favorite:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.block-preview-favorite.is-saved { background: var(--primary); opacity: 1; transform: none; }
.block-preview-favorite.is-saved .icon { fill: currentColor; }
.block-preview-favorite::after {
  content: attr(data-tooltip); position: absolute; z-index: 6; top: calc(100% + 6px); right: 0;
  width: max-content; max-width: 150px; padding: .3rem .45rem; border-radius: 6px;
  background: #222; color: #fff; font-size: .7rem; font-weight: 600; line-height: 1.2;
  pointer-events: none; opacity: 0; transition: opacity .14s ease;
}
.block-preview-favorite:hover::after,
.block-preview-favorite:focus-visible::after { opacity: 1; }
@media (hover: none) {
  .block-preview-favorite { opacity: 1; transform: none; }
}

/* Popup « Enregistrer en favori » : elle passe au-dessus du menu d'ajout. */
.favorite-modal {
  position: fixed; inset: 0; z-index: 1750;
  display: flex; align-items: center; justify-content: center; padding: 1rem;
}
.favorite-modal-overlay {
  position: absolute; inset: 0; border: 0; padding: 0; cursor: default;
  background: rgba(16, 19, 34, .5); backdrop-filter: blur(3px);
  opacity: 0; transition: opacity .2s ease;
}
.favorite-modal.is-open .favorite-modal-overlay { opacity: 1; }
.favorite-modal-card {
  position: relative; z-index: 1; width: min(430px, 100%);
  display: flex; flex-direction: column; gap: .75rem;
  padding: 1.25rem; border: 1px solid var(--border); border-radius: 18px;
  background: var(--card); box-shadow: 0 28px 80px rgba(12, 12, 30, .32);
  opacity: 0; transform: translateY(16px) scale(.96);
  transition: opacity .2s ease, transform .28s cubic-bezier(.2, .8, .2, 1);
}
.favorite-modal.is-open .favorite-modal-card { opacity: 1; transform: translateY(0) scale(1); }
.favorite-modal-head { display: flex; align-items: center; gap: .7rem; }
.favorite-modal-badge {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.15rem; color: #fff;
  background: linear-gradient(135deg, var(--primary), #7c6ef6);
  box-shadow: 0 8px 22px rgba(92, 75, 234, .32);
}
.favorite-modal-heading { min-width: 0; display: flex; flex-direction: column; }
.favorite-modal-heading h3 { margin: 0; font-size: 1.15rem; }
.favorite-modal-eyebrow {
  color: var(--muted); font-size: .68rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .09em;
}
.favorite-modal-hint { margin: 0; color: var(--muted); font-size: .85rem; line-height: 1.45; }
.favorite-modal-chip {
  align-self: flex-start; display: inline-flex; align-items: center; gap: .35rem;
  padding: .3rem .6rem; border-radius: 999px; background: rgba(92, 75, 234, .1);
  color: var(--primary); font-size: .78rem; font-weight: 700;
}
.favorite-modal-chip-icon { display: inline-flex; }
.favorite-modal-field { display: flex; flex-direction: column; gap: .3rem; }
.favorite-modal-label { font-size: .8rem; font-weight: 600; color: var(--muted); }
.favorite-modal-input { width: 100%; }
.favorite-modal-error { margin: -.35rem 0 0; color: var(--red); font-size: .78rem; }
.favorite-modal-error[hidden] { display: none; }
.favorite-modal-actions { display: flex; justify-content: flex-end; gap: .4rem; margin-top: .15rem; }
.favorite-modal-save { display: inline-flex; align-items: center; gap: .35rem; }

@keyframes addMenuAmbient {
  from { transform: scale(.95) translate3d(-2%, -1%, 0); }
  to { transform: scale(1.08) translate3d(4%, 3%, 0); }
}
@keyframes blockPreviewLoading {
  to { background-position: -240% 0; }
}

/* Liste des blocs */
.block-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.block-item {
  display: flex; align-items: center; gap: .35rem;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
  padding: .35rem .5rem;
}
.block-item.selected { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(92,75,234,.18); }
.block-item.dragging { opacity: .4; }
.block-item.drop-above { box-shadow: 0 -3px 0 0 var(--primary); }
.block-item.drop-below { box-shadow: 0 3px 0 0 var(--primary); }
.block-grip { cursor: grab; color: var(--muted); display: flex; align-items: center; }
.block-item-main {
  flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start;
  background: none; border: none; cursor: pointer; font-family: inherit; text-align: left;
  padding: .15rem .25rem; gap: .05rem;
}
.block-item-type { font-weight: 600; font-size: .9rem; }
.block-item-extra {
  color: var(--muted); font-size: .8rem; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.block-delete { flex-shrink: 0; }
.block-item-main { flex-direction: row; align-items: center; gap: .5rem; }
.block-item-icon { display: flex; color: var(--primary); flex-shrink: 0; }
.block-item-texts { display: flex; flex-direction: column; min-width: 0; }
.block-item.block-fixed { background: #fafafe; }
.block-grip-fixed { cursor: default; }

/* Carrousel produits à hauteur fixe */
.pb-fixed-height .pb-viewport { min-height: 300px; }
.pb-fixed-height .pb-slide .product-card { height: 100%; display: flex; flex-direction: column; }
.pb-fixed-height .product-cover { flex-shrink: 0; }
.pb-fixed-height .product-card-body { flex: 1; display: flex; flex-direction: column; justify-content: center; }

/* Referral program — dashboard configuration and public builder block */
.referral-settings .page-head { align-items: flex-start; }
.referral-master-toggle {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1.2rem 1.35rem; border: 1px solid var(--border); border-radius: 14px;
  background: var(--surface-2, #f8f8fc); cursor: pointer;
}
.referral-master-toggle span { display: grid; gap: .25rem; }
.referral-master-toggle small { color: var(--muted); font-weight: 400; }
.referral-master-toggle input { width: 1.3rem; height: 1.3rem; accent-color: var(--primary); }
.referral-default-card { max-width: 520px; margin: 1.2rem 0; }
.referral-percent-input { display: inline-flex; align-items: center; gap: .45rem; }
.referral-percent-input input { width: 110px; }
.referral-percent-input > span { font-weight: 700; }
.referral-products-head { margin-top: 1.5rem; }
.referral-products-head h3 { margin: 0 0 .25rem; }
.referral-products-table select { min-width: 180px; }
.referral-settings-form .form-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.2rem; }
.referral-code-panel { padding: 0; overflow: hidden; }
.referral-code-panel > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.15rem 1.35rem; cursor: pointer; list-style: none;
}
.referral-code-panel > summary::-webkit-details-marker { display: none; }
.referral-code-panel > summary > span:first-child { display: grid; gap: .2rem; }
.referral-code-panel > summary small { color: var(--muted); font-weight: 400; }
.referral-code-panel-body { padding: 0 1.35rem 1.35rem; }
.marketing-fold-panel > summary {
  border-radius: inherit; transition: background-color .2s ease;
}
.marketing-fold-panel > summary:hover { background: var(--surface-2, #f8f8fc); }
.marketing-fold-panel > summary:focus-visible {
  outline: 2px solid var(--primary); outline-offset: -3px;
}
.marketing-fold-meta { display: inline-flex; align-items: center; gap: .65rem; flex: 0 0 auto; }
.marketing-fold-chevron {
  display: inline-grid; place-items: center; width: 30px; height: 30px;
  border: 1px solid var(--border); border-radius: 9px; color: var(--muted);
  background: var(--card); transition: transform .25s cubic-bezier(.2, .8, .2, 1), color .2s ease, border-color .2s ease;
}
.marketing-fold-chevron svg { width: 16px; height: 16px; }
.marketing-fold-panel[open]:not(.is-closing) .marketing-fold-chevron {
  transform: rotate(180deg); color: var(--primary); border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
}
.marketing-fold-panel > .referral-code-panel-body {
  box-sizing: border-box; overflow: hidden; transform-origin: top;
}
@media (prefers-reduced-motion: reduce) {
  .marketing-fold-panel > summary, .marketing-fold-chevron { transition: none; }
}
.referral-warning-modal { max-width: 520px; }
.alert-warning { background: #fff7df; border: 1px solid #f2d78b; color: #765516; }

.pb-referral-intro { max-width: 760px; margin: 0 auto 2rem; text-align: center; }
.pb-referral-intro > :last-child { margin-bottom: 0; }
.pb-eyebrow {
  margin: 0 0 .55rem; color: var(--theme-primary, var(--primary));
  font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.pb-referral-products {
  display: grid; grid-template-columns: repeat(var(--referral-columns, 3), minmax(0, 1fr)); gap: 1.25rem;
}
.referral-product-card {
  width: 100%; padding: 0; text-align: left; font: inherit; cursor: pointer;
  appearance: none; overflow: hidden;
}
.referral-product-card:disabled { cursor: default; opacity: 1; }
.referral-product-card .product-card-body { display: flex; flex-direction: column; align-items: flex-start; height: 100%; }
.referral-card-discount {
  display: inline-flex; margin: .55rem 0 .75rem; padding: .28rem .55rem; border-radius: 999px;
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 12%, transparent);
  color: var(--theme-primary, var(--primary)); font-size: .82rem; font-weight: 750;
}
.referral-card-action { margin-top: auto; pointer-events: none; }
.pb-referral-products.layout-list { grid-template-columns: 1fr; }
.pb-referral-products.layout-list .referral-product-card {
  display: grid; grid-template-columns: minmax(160px, 260px) 1fr;
}
.pb-referral-products.layout-compact { gap: .75rem; }
.pb-referral-products.layout-compact .product-card-body { padding: .7rem .75rem .8rem; }
.pb-referral-products.layout-compact .product-cover { aspect-ratio: 4 / 3; }
.pb-referral-empty { text-align: center; color: var(--theme-muted, var(--muted)); }

.referral-invite-modal .modal-box { position: relative; max-width: 560px; }
.referral-invite-modal .modal-close {
  position: absolute; top: .75rem; right: .85rem; border: 0; background: transparent;
  color: var(--muted); font-size: 1.65rem; cursor: pointer;
}
.referral-selected-product { margin-bottom: .25rem; font-size: 1.05rem; font-weight: 750; }
.referral-sender { padding: .75rem .9rem; border-radius: 10px; background: var(--surface-2, #f6f6fb); }
.referral-code-result { text-align: center; }
.referral-success-icon {
  display: inline-grid; place-items: center; width: 54px; height: 54px; margin-bottom: .65rem;
  border-radius: 50%; background: var(--green-bg); color: var(--green);
}
.referral-copy-code {
  display: grid; gap: .2rem; width: 100%; margin: 1rem 0; padding: 1rem;
  border: 1px dashed var(--theme-primary, var(--primary)); border-radius: 12px;
  background: var(--surface-2, #f8f8fc); color: inherit; cursor: pointer;
}
.referral-copy-code span { font: 800 1.2rem ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .04em; }
.referral-copy-code small { color: var(--muted); }
.referral-code-result > .btn { margin: .25rem; }

.pb-referral-rewards { display: grid; gap: .8rem; margin: 0 0 1.25rem; }
.pb-referral-reward {
  display: flex; align-items: flex-start; gap: .9rem; padding: 1rem 1.1rem;
  border: 1px solid color-mix(in srgb, var(--theme-primary, var(--primary)) 28%, var(--theme-border, var(--border)));
  border-radius: 14px;
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 7%, var(--theme-card, var(--card)));
}
.pb-referral-reward-icon {
  display: inline-grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px;
  border-radius: 50%; background: var(--theme-primary, var(--primary)); color: #fff;
}
.pb-referral-reward > div { min-width: 0; }
.pb-referral-reward p { margin: .3rem 0 .7rem; color: var(--theme-muted, var(--muted)); }
.pb-referral-reward-actions { display: flex; flex-wrap: wrap; gap: .55rem; }

/* Affiliate program — dashboard tab */
.affiliate-section .alert { margin-bottom: 1.1rem; }
.affiliate-hero {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: 1.6rem; overflow: hidden; margin-bottom: 1.4rem; padding: 1.5rem 1.6rem;
  border: 1px solid var(--border); border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, rgba(124, 92, 255, .16), transparent 42%),
    radial-gradient(circle at 0 100%, rgba(241, 184, 75, .12), transparent 38%),
    var(--card);
  box-shadow: 0 18px 44px rgba(30, 27, 75, .06);
}
.affiliate-hero::before {
  content: ''; position: absolute; inset: 0 0 auto; height: 3px;
  background: linear-gradient(90deg, #5c4bea, #9769ef 58%, #f1b84b);
}
.affiliate-hero-copy h2 { margin: .35rem 0 .3rem; font-size: 1.5rem; letter-spacing: -.02em; }
.affiliate-hero-copy > p { max-width: 60ch; margin: 0 0 1.1rem; color: var(--muted); }
.affiliate-hero-copy code { background: rgba(92, 75, 234, .09); color: #4a3fbd; }
.affiliate-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.affiliate-status {
  display: inline-flex; align-items: center; gap: .45rem; padding: .34rem .75rem;
  border-radius: 999px; background: #ececf4; color: var(--muted);
  font-size: .8rem; font-weight: 750;
}
.affiliate-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.affiliate-status.is-on { background: var(--green-bg); color: var(--green); }
.affiliate-status.is-on i { box-shadow: 0 0 0 3px rgba(20, 128, 74, .16); }
.affiliate-hero-side {
  display: grid; align-content: start; gap: .7rem; padding: 1.1rem;
  border: 1px solid color-mix(in srgb, var(--primary) 16%, var(--border));
  border-radius: 16px; background: color-mix(in srgb, var(--primary) 4%, #fff);
}
.affiliate-hero-side-label {
  display: inline-flex; align-items: center; gap: .4rem; color: var(--muted);
  font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.affiliate-hero-facts { display: grid; gap: .4rem; margin: .2rem 0 0; }
.affiliate-hero-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.affiliate-hero-facts dt { color: var(--muted); font-size: .84rem; }
.affiliate-hero-facts dd { margin: 0; font-weight: 750; font-size: .9rem; }
.affiliate-hero-steps { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .88rem; }
.affiliate-hero-steps li { margin-bottom: .35rem; }
.affiliate-hero-steps li:last-child { margin-bottom: 0; }

.affiliate-link-chip {
  display: inline-flex; align-items: center; justify-content: space-between; gap: .5rem;
  width: 100%; padding: .5rem .6rem; border: 1px dashed color-mix(in srgb, var(--primary) 42%, var(--border));
  border-radius: 10px; background: #fff; color: var(--muted); font: inherit; text-align: left;
  cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.affiliate-link-chip:hover { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 5%, #fff); }
.affiliate-link-chip:active { transform: scale(.995); }
.affiliate-link-chip .promo-code {
  min-width: 0; overflow: hidden; background: transparent; padding: 0;
  color: var(--text); text-overflow: ellipsis; white-space: nowrap;
}
.affiliate-link-chip .icon { flex: none; width: 15px; height: 15px; color: var(--primary); }
.affiliate-link-chip.is-copied { border-color: var(--green); background: var(--green-bg); }
.affiliate-link-chip.is-copied .promo-code, .affiliate-link-chip.is-copied .icon { color: var(--green); }
.affiliate-link-chip.is-static { cursor: default; border-style: solid; }

.affiliate-subtabs { margin: 0 0 1.25rem; }
.affiliate-subtabs .badge { margin-left: .3rem; }
.affiliate-subtabs a.active .badge { background: rgba(255, 255, 255, .22); color: #fff; }

.affiliate-metrics {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; margin-bottom: 1.3rem;
}
.affiliate-metrics article {
  display: grid; gap: .1rem; padding: 1.05rem 1.1rem; border: 1px solid var(--border);
  border-radius: 15px; background: var(--card); box-shadow: 0 8px 22px rgba(30, 27, 75, .04);
}
.affiliate-metric-icon {
  display: inline-grid; place-items: center; width: 38px; height: 38px; margin-bottom: .5rem;
  border-radius: 11px; color: #fff; background: linear-gradient(135deg, #5c4bea, #9769ef);
  box-shadow: 0 8px 18px rgba(92, 75, 234, .2);
}
.affiliate-metrics strong { font-size: 1.5rem; line-height: 1.15; letter-spacing: -.02em; }
.affiliate-metrics small { color: var(--muted); font-size: .86rem; }
.affiliate-metrics em { color: var(--muted); font-size: .78rem; font-style: normal; opacity: .85; }
.affiliate-metrics article.is-due {
  border-color: color-mix(in srgb, #f1b84b 55%, var(--border));
  background: linear-gradient(160deg, #fffaf0, var(--card));
}
.affiliate-metrics article.is-due .affiliate-metric-icon { background: linear-gradient(135deg, #e79f22, #f1b84b); box-shadow: 0 8px 18px rgba(231, 159, 34, .22); }

.affiliate-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 1rem; }
.affiliate-grid-compact { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.affiliate-card {
  display: grid; align-content: start; gap: .8rem; padding: 1.1rem;
  border: 1px solid var(--border); border-radius: 16px; background: var(--card);
  box-shadow: 0 8px 22px rgba(30, 27, 75, .04);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.affiliate-card:hover {
  border-color: color-mix(in srgb, var(--primary) 32%, var(--border));
  box-shadow: 0 14px 32px rgba(30, 27, 75, .09); transform: translateY(-2px);
}
.affiliate-card.is-pending { background: linear-gradient(170deg, #f9f8ff, var(--card)); }
.affiliate-card.is-rejected { opacity: .82; }
.affiliate-card.is-rejected:hover { opacity: 1; }
.affiliate-card-head { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: .75rem; align-items: start; }
.affiliate-avatar {
  display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 13px;
  color: hsl(var(--aff-hue, 250) 62% 34%);
  background: linear-gradient(140deg, hsl(var(--aff-hue, 250) 82% 93%), hsl(var(--aff-hue, 250) 82% 86%));
  font-size: .92rem; font-weight: 850; letter-spacing: .02em;
}
.affiliate-identity { display: grid; gap: .1rem; min-width: 0; }
.affiliate-identity strong { overflow: hidden; font-size: .98rem; text-overflow: ellipsis; white-space: nowrap; }
.affiliate-identity small { overflow: hidden; color: var(--muted); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.affiliate-paypal { display: inline-flex; align-items: center; gap: .3rem; }
.affiliate-paypal .icon { width: 13px; height: 13px; }
.affiliate-rate-chip {
  padding: .28rem .6rem; border-radius: 999px; background: #f0edff; color: #5144c7;
  font-size: .82rem; font-weight: 850; white-space: nowrap;
}
.affiliate-date-chip {
  display: inline-flex; align-items: center; gap: .3rem; color: var(--muted);
  font-size: .78rem; white-space: nowrap;
}
.affiliate-date-chip .icon { width: 13px; height: 13px; }
.affiliate-card-stats {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem;
  padding: .7rem .2rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.affiliate-card-stats > div { display: grid; gap: .1rem; min-width: 0; text-align: center; }
.affiliate-card-stats small { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.affiliate-card-stats strong { overflow: hidden; font-size: .95rem; text-overflow: ellipsis; white-space: nowrap; }
.affiliate-card-stats > div.is-due strong { color: #b57b12; }
.affiliate-answers { display: grid; gap: .5rem; margin: 0; }
.affiliate-answers > div {
  padding: .55rem .7rem; border-radius: 10px; background: var(--surface-2, #f8f8fc);
}
.affiliate-answers dt { color: var(--muted); font-size: .74rem; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.affiliate-answers dd { margin: .2rem 0 0; font-size: .88rem; overflow-wrap: anywhere; }
.affiliate-card-actions {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem;
}
.affiliate-card-actions-end { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.affiliate-percent-form, .affiliate-approve-form { display: inline-flex; align-items: center; gap: .4rem; }
.affiliate-percent-form input, .affiliate-approve-form input { width: 78px; }
.affiliate-percent-form .referral-percent-input input,
.affiliate-approve-form .referral-percent-input input { padding: .4rem .5rem; }

.affiliate-empty {
  display: grid; justify-items: center; gap: .35rem; padding: 3rem 1.5rem;
  border: 1px dashed var(--border); border-radius: 18px;
  background: linear-gradient(180deg, #fbfaff, var(--card)); text-align: center;
}
.affiliate-empty > span {
  display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: .4rem;
  border-radius: 16px; color: var(--primary); background: #f0edff;
}
.affiliate-empty > span .icon { width: 22px; height: 22px; }
.affiliate-empty h3 { margin: 0; font-size: 1.05rem; }
.affiliate-empty p { max-width: 46ch; margin: 0; color: var(--muted); }
.affiliate-empty .btn { margin-top: .8rem; }
.affiliate-empty .promo-code { background: transparent; padding: 0 0 0 .15rem; }

.affiliate-commissions-panel { margin-top: 1.4rem; }
.affiliate-history-table td { vertical-align: middle; }

.affiliate-master-toggle { background: linear-gradient(135deg, #f8f7ff, #fffaf0); }
.affiliate-settings-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.25rem; margin: 1.25rem 0;
}
.affiliate-fieldset {
  margin: 0 0 1.25rem; padding: 1.15rem 1.3rem 1.3rem;
  border: 1px solid var(--border); border-radius: 16px; background: var(--card);
  box-shadow: 0 8px 22px rgba(30, 27, 75, .04);
}
.affiliate-settings-grid .affiliate-fieldset { margin: 0; }
.affiliate-fieldset legend {
  display: inline-flex; align-items: center; gap: .5rem; padding: 0 .5rem;
  font-size: .95rem; font-weight: 800;
}
.affiliate-legend-icon {
  display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 8px;
  color: #fff; background: linear-gradient(135deg, #5c4bea, #9769ef);
}
.affiliate-legend-icon .icon { width: 14px; height: 14px; }
.affiliate-fieldset .field { margin-bottom: .9rem; }
.affiliate-fieldset .field:last-child { margin-bottom: 0; }
.affiliate-fieldset .loyalty-input-shell { max-width: 220px; }
.affiliate-notify-toggle { margin-top: .9rem; padding: .9rem 1rem; background: var(--surface-2, #f8f8fc); }
.affiliate-form-fields {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .9rem;
}
.affiliate-questions-head { margin: 1.3rem 0 .6rem; }
.affiliate-questions-head h3 { margin: 0; font-size: 1rem; }
.affiliate-question-row {
  display: grid; grid-template-columns: 1fr auto auto; gap: .6rem; align-items: center;
  margin-bottom: .6rem; padding: .6rem; border: 1px solid var(--border);
  border-radius: 12px; background: var(--surface-2, #f8f8fc);
}
.affiliate-question-row input[type="hidden"] { display: none; }
.affiliate-save-bar {
  position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: .7rem;
  margin-top: 1.2rem; padding: .9rem 1rem; border: 1px solid var(--border);
  border-radius: 14px; background: rgba(252, 251, 254, .92);
  box-shadow: 0 -6px 22px rgba(30, 27, 75, .06); backdrop-filter: blur(10px);
}
.affiliate-answer { margin: 0 0 .5rem; }
.affiliate-table td { vertical-align: top; }

@media (max-width: 1080px) {
  .affiliate-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .affiliate-hero { grid-template-columns: 1fr; padding: 1.25rem; }
  .affiliate-grid, .affiliate-grid-compact { grid-template-columns: 1fr; }
  .affiliate-card-actions { align-items: stretch; flex-direction: column; }
  .affiliate-card-actions-end { justify-content: flex-end; }
}
@media (max-width: 560px) {
  .affiliate-metrics { grid-template-columns: 1fr; }
  .affiliate-card-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .affiliate-question-row { grid-template-columns: 1fr auto; }
  .affiliate-question-row input[type="text"] { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .affiliate-card, .affiliate-link-chip { transition: none; }
  .affiliate-card:hover { transform: none; }
}


/* Affiliate program — public signup page */
.pb-affiliate-intro { max-width: 760px; margin: 0 auto 2rem; text-align: center; }
.pb-affiliate-intro > :last-child { margin-bottom: 0; }
.pb-affiliate-commission {
  display: inline-flex; align-items: center; gap: .45rem; margin-top: .9rem;
  padding: .4rem .8rem; border-radius: 999px;
  background: color-mix(in srgb, var(--theme-primary, var(--primary)) 12%, transparent);
  color: var(--theme-primary, var(--primary)); font-size: .9rem; font-weight: 750;
}
.pb-affiliate-card {
  max-width: 520px; margin: 0 auto; padding: 1.6rem 1.7rem;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 16px;
  background: var(--theme-card, var(--card));
}
.pb-affiliate-form { display: grid; gap: 1rem; }
.pb-affiliate-form .field-label small { margin-left: .35rem; color: var(--theme-muted, var(--muted)); font-weight: 400; }
.pb-affiliate-required { margin-left: .25rem; color: var(--theme-primary, var(--primary)); }
.pb-affiliate-slug-input {
  display: flex; align-items: center; gap: .2rem; padding-left: .7rem;
  border: 1px solid var(--theme-border, var(--border)); border-radius: 10px;
  background: var(--surface-2, #f8f8fc);
}
.pb-affiliate-slug-input small { color: var(--theme-muted, var(--muted)); font-weight: 650; }
.pb-affiliate-slug-input input { flex: 1; border: 0; background: transparent; }
.pb-affiliate-slug-input input:focus { outline: none; }
.pb-affiliate-submit { margin-top: .35rem; }
.pb-affiliate-result { text-align: center; }
.pb-affiliate-result-icon {
  display: inline-grid; place-items: center; width: 54px; height: 54px; margin-bottom: .65rem;
  border-radius: 50%; background: var(--green-bg); color: var(--green);
}
.pb-affiliate-result-text { color: var(--theme-muted, var(--muted)); }
.pb-affiliate-link {
  display: grid; gap: .2rem; width: 100%; margin: 1rem 0 0; padding: 1rem;
  border: 1px dashed var(--theme-primary, var(--primary)); border-radius: 12px;
  background: var(--surface-2, #f8f8fc); color: inherit; cursor: pointer;
}
.pb-affiliate-link-value {
  font: 750 .95rem ui-monospace, SFMono-Regular, Menlo, monospace;
  overflow-wrap: anywhere;
}
.pb-affiliate-link small { color: var(--muted); }
.pb-affiliate.layout-split { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
.pb-affiliate.layout-split .pb-affiliate-intro { margin: 0; text-align: left; }
.pb-affiliate.layout-split .pb-affiliate-card { margin: 0; max-width: none; }
.pb-affiliate.layout-minimal .pb-affiliate-card { border: 0; background: transparent; padding: 0; max-width: 520px; }
@media (max-width: 800px) {
  .pb-affiliate.layout-split { grid-template-columns: 1fr; }
  .pb-affiliate.layout-split .pb-affiliate-intro { text-align: center; margin: 0 auto 1.5rem; }
}

/* Loyalty program — premium dashboard timeline and customer reward card */
.loyalty-premium-panel {
  position: relative; overflow: hidden;
  background:
    radial-gradient(circle at 96% 0, rgba(124, 92, 255, .14), transparent 29%),
    var(--card);
}
.loyalty-page-head { align-items: flex-start; }
.loyalty-page-head h2 { margin: 0 0 .2rem; }
.loyalty-kicker {
  display: inline-flex; align-items: center; gap: .35rem; color: var(--primary);
  font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase;
}
.loyalty-head-actions, .loyalty-save-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
.loyalty-master-toggle { margin: 1.15rem 0; background: linear-gradient(135deg, #f8f7ff, #fffaf0); }
.loyalty-toggle-save-status { min-height: 1em; color: var(--muted); transition: color .18s ease; }
.loyalty-toggle-save-status:empty { display: none; }
.loyalty-toggle-save-status.is-saved { color: var(--green); }
.loyalty-toggle-save-status.is-error { color: var(--red); }
.loyalty-settings-reveal {
  display: grid; grid-template-rows: 0fr; opacity: 0; visibility: hidden;
  transition: grid-template-rows .42s cubic-bezier(.2, .8, .2, 1), opacity .25s ease,
    visibility 0s linear .42s;
}
.loyalty-settings-reveal.is-open {
  grid-template-rows: 1fr; opacity: 1; visibility: visible;
  transition: grid-template-rows .42s cubic-bezier(.2, .8, .2, 1), opacity .3s ease .08s,
    visibility 0s;
}
.loyalty-settings-reveal-inner { min-height: 0; overflow: hidden; }
.loyalty-config-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.loyalty-config-card {
  display: grid; grid-template-columns: auto 1fr; gap: .85rem 1rem; align-items: start;
  padding: 1.15rem; border: 1px solid var(--border); border-radius: 15px; background: var(--card);
  box-shadow: 0 10px 26px rgba(30, 27, 75, .045);
}
.loyalty-config-icon {
  display: inline-grid; place-items: center; width: 42px; height: 42px; grid-row: span 2;
  border-radius: 12px; color: #fff; background: linear-gradient(135deg, #5c4bea, #9769ef);
  box-shadow: 0 8px 18px rgba(92, 75, 234, .22);
}
.loyalty-config-card strong { display: block; margin-bottom: .18rem; }
.loyalty-config-card p { margin: 0; }
.loyalty-rate-row, .loyalty-name-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: .65rem; align-items: end; grid-column: 2;
}
.loyalty-name-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.loyalty-equals { padding-bottom: .72rem; color: var(--primary); font-size: 1.2rem; font-weight: 850; }
.loyalty-rate-row .field, .loyalty-name-grid .field, .loyalty-tier-row .field { margin-bottom: 0; }
.loyalty-input-shell, .loyalty-admin-modal .input-suffix {
  display: flex; align-items: stretch; width: 100%; overflow: hidden;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.loyalty-input-shell:hover, .loyalty-admin-modal .input-suffix:hover {
  border-color: color-mix(in srgb, var(--primary) 42%, var(--border));
}
.loyalty-input-shell:focus-within, .loyalty-admin-modal .input-suffix:focus-within {
  border-color: var(--primary); box-shadow: 0 0 0 3px rgba(92, 75, 234, .13);
}
.loyalty-input-shell input[type="number"], .loyalty-admin-modal .input-suffix input[type="number"] {
  width: 100%; min-width: 0; padding: .55rem .75rem; border: 0; border-radius: 0;
  outline: 0; background: transparent; color: var(--text); font: inherit; font-size: .95rem;
}
.loyalty-input-shell input[type="number"]:focus,
.loyalty-admin-modal .input-suffix input[type="number"]:focus { outline: 0; box-shadow: none; }
.loyalty-input-shell small, .loyalty-admin-modal .input-suffix small {
  display: inline-flex; align-items: center; max-width: 45%; padding: 0 .7rem;
  border-left: 1px solid var(--border); background: color-mix(in srgb, var(--primary) 6%, var(--card));
  color: var(--muted); font-size: .76rem; font-weight: 750; white-space: nowrap;
}
.loyalty-tier-section {
  margin-top: 1.1rem; padding: 1.2rem; border: 1px solid var(--border);
  border-radius: 16px; background: linear-gradient(180deg, #fcfbff, var(--card));
}
.loyalty-tier-section .page-head { margin-bottom: .35rem; }
.loyalty-tier-section h3 { margin: 0 0 .2rem; }
.loyalty-timeline-chart { position: relative; height: 108px; margin: 1rem 1.2rem .6rem; }
.loyalty-timeline-rail {
  position: absolute; top: 39px; right: 0; left: 0; height: 6px; border-radius: 999px;
  background: linear-gradient(90deg, #5c4bea, #9b70f5 62%, #f1b84b);
  box-shadow: 0 5px 16px rgba(92, 75, 234, .2);
}
.loyalty-timeline-marker {
  position: absolute; top: 28px; display: grid; justify-items: center; gap: .1rem;
  min-width: 72px; transform: translateX(-50%); color: var(--text); text-align: center;
}
.loyalty-timeline-marker i {
  display: block; width: 26px; height: 26px; border: 6px solid #fff; border-radius: 50%;
  background: #6e54dc; box-shadow: 0 3px 12px rgba(42, 34, 100, .3);
}
.loyalty-timeline-marker strong { margin-top: .2rem; font-size: .84rem; }
.loyalty-timeline-marker small { color: var(--muted); font-size: .72rem; white-space: nowrap; }
.loyalty-tier-editor { display: grid; gap: .7rem; }
.loyalty-tier-row {
  display: grid; grid-template-columns: 34px minmax(160px, 1fr) auto minmax(160px, 1fr) auto;
  gap: .7rem; align-items: end; padding: .8rem; border: 1px solid var(--border);
  border-radius: 12px; background: var(--card);
}
.loyalty-tier-row.is-entering { animation: loyaltyMilestoneIn .32s cubic-bezier(.2, .8, .2, 1) both; }
.loyalty-tier-row.is-removing {
  overflow: hidden; animation: loyaltyMilestoneOut .3s cubic-bezier(.4, 0, .2, 1) both;
}
@keyframes loyaltyMilestoneIn {
  from { opacity: 0; transform: translateY(-10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes loyaltyMilestoneOut {
  from { max-height: var(--loyalty-row-height, 140px); opacity: 1; transform: translateX(0); }
  to { max-height: 0; padding-top: 0; padding-bottom: 0; border-width: 0; opacity: 0; transform: translateX(12px); }
}
.loyalty-tier-index {
  display: inline-grid; place-items: center; align-self: center; width: 30px; height: 30px;
  border-radius: 9px; background: #f0edff; color: #5c4bea; font-weight: 850;
}
.loyalty-tier-arrow { align-self: center; color: var(--primary); font-size: 1.25rem; }
.loyalty-tier-remove { align-self: center; }
.loyalty-save-actions { margin-top: 1.1rem; }
.loyalty-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; margin: 1rem 0; }
.loyalty-stat-grid article {
  display: flex; align-items: center; gap: .8rem; padding: 1rem;
  border: 1px solid var(--border); border-radius: 14px; background: var(--card);
  box-shadow: 0 8px 22px rgba(30, 27, 75, .04);
}
.loyalty-stat-grid article > span {
  display: inline-grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px;
  border-radius: 11px; color: var(--primary); background: #f0edff;
}
.loyalty-stat-grid strong { display: block; font-size: 1.25rem; }
.loyalty-stat-grid small { color: var(--muted); }
.loyalty-data-panel { margin-top: 1rem; }
.loyalty-data-panel .referral-code-panel-body {
  box-sizing: border-box; overflow: hidden; transform-origin: top;
}
.loyalty-admin-modal { position: relative; max-width: 560px; }
.loyalty-admin-modal h2 { margin: .3rem 2rem .35rem 0; }

.pb-loyalty-card {
  position: relative; overflow: hidden; margin: 1.4rem 0 0; padding: 1.35rem;
  border: 1px solid color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 24%, var(--theme-border, var(--border)));
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 19%, transparent), transparent 34%),
    linear-gradient(145deg, var(--theme-loyalty-card, var(--theme-card, var(--card))), color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 5%, var(--theme-loyalty-card, var(--theme-card, var(--card)))));
  color: var(--theme-loyalty-text, var(--theme-text, inherit));
  box-shadow: 0 18px 45px rgba(27, 23, 70, .08);
}
.pb-loyalty-card::before {
  content: ''; position: absolute; inset: 0 0 auto; height: 3px;
  background: linear-gradient(90deg, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))), var(--theme-loyalty-accent-alt, #b37bff));
}
.pb-loyalty-card .pb-eyebrow { color: var(--theme-loyalty-accent, var(--theme-primary, var(--primary))); }
.pb-loyalty-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.pb-loyalty-head h2 { margin: .2rem 0 .25rem; }
.pb-loyalty-head p { margin: 0; color: var(--theme-muted, var(--muted)); }
.pb-loyalty-balance { flex: 0 0 auto; text-align: right; }
.pb-loyalty-balance strong {
  display: block; color: var(--theme-loyalty-accent, var(--theme-primary, var(--primary)));
  font-size: clamp(1.75rem, 5vw, 2.55rem); line-height: 1;
}
.pb-loyalty-balance span { color: var(--theme-muted, var(--muted)); font-size: .82rem; }
.pb-loyalty-progress-copy { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.15rem; font-size: .86rem; }
.pb-loyalty-progress-copy span { color: var(--theme-muted, var(--muted)); }
.pb-loyalty-progress {
  height: 10px; margin-top: .45rem; overflow: hidden; border-radius: 999px;
  background: color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 12%, var(--theme-loyalty-card, var(--theme-card, white)));
}
.pb-loyalty-progress > span {
  display: block; height: 100%; border-radius: inherit;
  background: linear-gradient(90deg, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))), var(--theme-loyalty-accent-alt, #ac76f4));
  box-shadow: 0 0 16px color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 40%, transparent);
}
.pb-loyalty-milestones { display: grid; grid-template-columns: repeat(var(--loyalty-tier-count, 3), minmax(0, 1fr)); gap: .65rem; margin-top: 1rem; }
.pb-loyalty-tier {
  display: grid; gap: .2rem; padding: .75rem; border: 1px solid var(--theme-border, var(--border));
  border-radius: 12px; background: color-mix(in srgb, var(--theme-loyalty-card, var(--theme-card, white)) 92%, transparent);
}
.pb-loyalty-tier.is-unlocked { border-color: color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 45%, var(--theme-border, var(--border))); }
.pb-loyalty-tier.is-redeemed { opacity: .66; }
.pb-loyalty-tier strong { font-size: .9rem; }
.pb-loyalty-tier small { color: var(--theme-muted, var(--muted)); }
.pb-loyalty-available { display: grid; gap: .65rem; margin-top: 1rem; }
.pb-loyalty-unlock {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .85rem; border-radius: 13px; color: var(--theme-loyalty-text, var(--theme-text, var(--text)));
  background: color-mix(in srgb, var(--theme-loyalty-accent, var(--theme-primary, var(--primary))) 10%, var(--theme-loyalty-card, var(--theme-card, white)));
}
.pb-loyalty-unlock p { margin: .15rem 0 0; color: var(--theme-muted, var(--muted)); font-size: .85rem; }
.pb-loyalty-coupons { display: grid; gap: .55rem; margin-top: 1rem; }
.pb-loyalty-coupon {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .7rem;
  padding: .7rem .8rem; border-top: 1px solid var(--theme-border, var(--border));
}
.pb-loyalty-coupon > div { display: grid; gap: .2rem; }
.pb-loyalty-coupon small { color: var(--theme-muted, var(--muted)); }
.pb-loyalty-coupon .promo-code {
  width: max-content; max-width: 100%; background: var(--theme-loyalty-coupon, var(--theme-card, #fff));
  color: var(--theme-loyalty-coupon-text, var(--theme-loyalty-text, var(--theme-text, #1d1d2b)));
  border: 1px solid color-mix(in srgb, var(--theme-loyalty-coupon-text, var(--theme-loyalty-accent, var(--theme-primary))) 18%, transparent);
}
.pb-loyalty-card.layout-compact { padding: 1rem 1.1rem; }
.pb-loyalty-card.layout-compact .pb-loyalty-head { align-items: center; }
.pb-loyalty-card.layout-compact .pb-loyalty-milestones { display: none; }
.pb-loyalty-card.layout-timeline .pb-loyalty-milestones { grid-template-columns: 1fr; }
.pb-loyalty-card.layout-timeline .pb-loyalty-tier { position: relative; padding-left: 1.8rem; }
.pb-loyalty-card.layout-timeline .pb-loyalty-tier::before {
  content: ''; position: absolute; left: .72rem; top: .9rem; width: 7px; height: 7px;
  border-radius: 50%; background: var(--theme-loyalty-accent, var(--theme-primary, var(--primary)));
}

@media (max-width: 780px) {
  .pb-referral-products { grid-template-columns: 1fr; }
  .pb-referral-products.layout-list .referral-product-card { grid-template-columns: 110px 1fr; }
  .referral-master-toggle { align-items: flex-start; }
  .referral-products-table { min-width: 680px; }
  .loyalty-config-grid, .loyalty-stat-grid { grid-template-columns: 1fr; }
  .loyalty-rate-row, .loyalty-name-grid { grid-column: 1 / -1; }
  .loyalty-config-icon { grid-row: auto; }
  .loyalty-tier-row { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .loyalty-tier-row .field:first-of-type { grid-column: 2; }
  .loyalty-tier-row .loyalty-tier-arrow { display: none; }
  .loyalty-tier-row .field:last-of-type { grid-column: 2; }
  .loyalty-tier-remove { grid-column: 3; grid-row: 1 / span 2; }
  .loyalty-timeline-chart { margin-right: 0; margin-left: 0; overflow: hidden; }
  .pb-loyalty-head { flex-direction: column; }
  .pb-loyalty-balance { text-align: left; }
  .pb-loyalty-milestones { grid-template-columns: 1fr; }
  .pb-loyalty-unlock { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .loyalty-settings-reveal, .loyalty-settings-reveal.is-open { transition: none; }
  .loyalty-tier-row.is-entering, .loyalty-tier-row.is-removing { animation-duration: .01ms; }
}

/* Aperçu : sélection et survol des blocs */
.builder-preview .page-block { position: relative; cursor: pointer; }
.builder-preview .pb-bg-alt-gear { top: 10px; right: 10px; z-index: 70; }
.builder-preview .page-block:hover { outline: 2px dashed rgba(92, 75, 234, .45); outline-offset: -2px; }
.builder-preview .page-block.pb-selected { outline: 2px solid var(--primary); outline-offset: -2px; }
.builder-preview .pb-placeholder { padding: 1.4rem 0; }
.builder-preview .page-block { animation: none; }
.builder-preview .pb-burger-shell { position: absolute; }
.builder-preview .cb-preview-page { margin: 1rem; min-height: 620px; }
.builder-preview [data-checkout-select] { cursor: pointer; }
.builder-preview .cb-preview-payment.is-selected,
.builder-preview .cb-preview-page.is-selected { outline: 2px solid var(--primary); outline-offset: -2px; }
.cart-preview-stage {
  position: relative; min-height: 680px; overflow: hidden; padding: 1rem;
  background: linear-gradient(135deg, #eef0f6, #dfe3ec);
}
.cart-preview-page {
  position: absolute; inset: 1rem; border-radius: 14px;
  background:
    linear-gradient(#fff 0 0) 30px 28px / 42% 24px no-repeat,
    linear-gradient(#fff 0 0) 30px 76px / calc(100% - 60px) 180px no-repeat,
    linear-gradient(#fff 0 0) 30px 280px / calc(50% - 38px) 240px no-repeat,
    linear-gradient(#fff 0 0) calc(50% + 8px) 280px / calc(50% - 38px) 240px no-repeat;
  opacity: .58;
}
.cart-preview-drawer {
  position: relative; z-index: 2; width: min(var(--cart-preview-width, 420px), calc(100% - 20px));
  height: 650px; display: flex; flex-direction: column; overflow: hidden;
  background: var(--theme-bg); color: var(--theme-text);
  border: 1px solid var(--theme-border); border-radius: 13px;
  box-shadow: 12px 0 38px rgba(17, 17, 32, .18);
  font-family: var(--theme-font-body, inherit); cursor: pointer;
}
.cart-preview-side-left { margin-right: auto; }
.cart-preview-side-right { margin-left: auto; }
.cart-preview-drawer.is-selected { outline: 2px solid var(--primary); outline-offset: 2px; }
.cart-preview-drawer .cart-drawer-body { min-height: 0; }
.cart-preview-drawer .cart-drawer-recommendation button { flex: none; }

/* Aperçu du popup « offrir » : la carte de paiement en fond, le popup devant. */
.gift-preview-stage {
  position: relative; min-height: 680px; padding: 2.5rem 1rem; overflow: hidden;
  display: flex; align-items: flex-start; justify-content: center;
  background: linear-gradient(135deg, #eef0f6, #dfe3ec);
  font-family: var(--theme-font-body, inherit);
}
.gift-preview-behind {
  position: absolute; top: 2.5rem; left: 50%; transform: translateX(-50%);
  width: min(430px, calc(100% - 2rem)); display: grid; gap: .8rem; cursor: pointer;
  padding: 1.4rem; border-radius: 14px; opacity: .75;
  background: var(--theme-card, #fff); border: 1px solid var(--theme-border, #e4e4ee);
  color: var(--theme-text, #1d1d2b);
}
.gift-preview-behind strong { font-family: var(--theme-font-heading, inherit); font-size: 1.2rem; }
.gift-preview-line { height: 40px; border-radius: 9px; background: #f1f1f7; display: block; }
.gift-preview-trigger, .gift-preview-disabled {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .86rem; font-weight: 700; color: var(--theme-primary, #5b5bd6);
}
.gift-preview-disabled { color: var(--muted); font-weight: 600; }
.gift-preview-button {
  display: block; text-align: center; padding: .7rem 1rem;
  border-radius: var(--theme-btn-radius, 10px); font-weight: 700;
  background: var(--theme-btn-primary, #5b5bd6); color: var(--theme-btn-primary-text, #fff);
}
.gift-preview-modal {
  position: relative; z-index: 2; margin-top: 5.5rem; cursor: pointer;
  width: min(430px, calc(100% - 2rem)); padding: 1.5rem; border-radius: 14px;
  background: var(--theme-card, #fff); border: 1px solid var(--theme-border, #e4e4ee);
  color: var(--theme-text, #1d1d2b); box-shadow: 0 22px 60px rgba(23, 23, 40, .28);
}
.gift-preview-modal.is-selected { outline: 2px solid var(--primary); outline-offset: 2px; }
.gift-preview-head { display: flex; align-items: flex-start; gap: .6rem; }
.gift-preview-head h2 {
  flex: 1; margin: 0; font-size: 1.15rem; display: flex; align-items: center; gap: .45rem;
  font-family: var(--theme-font-heading, inherit); color: var(--theme-h2, inherit);
}
.gift-preview-close { color: var(--muted); }
.gift-preview-modal > p { margin: .4rem 0 1.1rem; color: var(--theme-muted, #6b6b80); font-size: .88rem; }
.gift-preview-field { display: grid; gap: .3rem; margin-bottom: .8rem; }
.gift-preview-field > span:first-child { font-size: .8rem; font-weight: 700; }
.gift-preview-input, .gift-preview-textarea {
  display: block; padding: .6rem .7rem; border-radius: 9px; font-size: .85rem;
  border: 1px solid var(--theme-border, #e4e4ee); background: #fff;
  color: var(--theme-muted, #8a8a9c); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gift-preview-textarea { min-height: 70px; white-space: normal; }
.gift-preview-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1.1rem; }
.gift-preview-actions .gift-preview-button { flex: none; }
.gift-preview-ghost {
  padding: .7rem 1rem; border-radius: var(--theme-btn-radius, 10px); font-weight: 700;
  border: 1px solid var(--theme-border, #e4e4ee); color: var(--theme-muted, #6b6b80);
}

/* Options d'affichage des produits */
.product-display-options { 
  display: flex; flex-direction: column; gap: 0.5rem; 
  margin-bottom: 1rem; padding: 0.75rem; 
  background: #fafafe; border-radius: var(--radius);
}
.product-rating { margin-top: 0.35rem; }
.product-rating .stars { font-size: 0.85rem; color: #f0a01e; }

/* Reviews: public blocks, product cards, buyer request and moderation */
.pb-rating-summary {
  align-items: center;
  color: var(--theme-muted, var(--muted));
  display: inline-flex;
  flex-wrap: wrap;
  font-size: .9rem;
  gap: .28rem;
  line-height: 1.35;
}
.pb-rating-stars,
.pb-review-stars,
.sales-review-stars {
  color: #f0a01e;
  letter-spacing: .08em;
}
.pb-product-card-rating { margin: .12rem 0 .35rem; }
.product-detail-rating { margin: .25rem 0; }
.pb-reviews > .pb-section-title { margin-bottom: .35rem; }
.pb-reviews-summary { margin-bottom: 1.35rem; }
.pb-reviews-list,
.pb-reviews-grid,
.pb-reviews-featured {
  display: grid;
  gap: 1rem;
}
.pb-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pb-reviews-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pb-reviews-featured .pb-review-card:first-child {
  grid-row: span 2;
  padding: 1.6rem;
}
.pb-review-card {
  background: color-mix(in srgb, var(--theme-bg, #fff) 94%, var(--theme-primary, #5c4bea));
  border: 1px solid var(--theme-border, var(--border));
  border-radius: var(--theme-radius, var(--radius));
  padding: 1.15rem 1.25rem;
}
.pb-review-stars { font-size: 1rem; margin-bottom: .5rem; }
.pb-review-copy p { margin: 0; }
.pb-review-footer {
  align-items: center;
  color: var(--theme-muted, var(--muted));
  display: flex;
  flex-wrap: wrap;
  font-size: .85rem;
  gap: .45rem .75rem;
  margin-top: .85rem;
}
.pb-review-footer strong { color: var(--theme-text, inherit); }
.pb-review-product::before,
.pb-review-footer time::before { content: "·"; margin-right: .75rem; }
.pb-review-reply {
  background: color-mix(in srgb, var(--theme-primary, #5c4bea) 7%, transparent);
  border-left: 3px solid var(--theme-primary, #5c4bea);
  border-radius: 0 calc(var(--theme-radius, var(--radius)) * .65) calc(var(--theme-radius, var(--radius)) * .65) 0;
  margin-top: 1rem;
  padding: .8rem .9rem;
}
.pb-review-reply > strong { display: block; font-size: .82rem; margin-bottom: .35rem; }
.pb-review-reply p { margin: 0; }
.pb-review-reply p + p { margin-top: .5rem; }
.pb-reviews-empty {
  border: 1px dashed var(--theme-border, var(--border));
  border-radius: var(--theme-radius, var(--radius));
  color: var(--theme-muted, var(--muted));
  padding: 1.25rem;
}

.product-review-copy {
  display: grid;
  gap: .9rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}
.product-review-copy .field:nth-child(2) { grid-column: 1 / -1; }
.product-file-review-control { margin: 0; }

.content-review-invite {
  align-items: center;
  background: color-mix(in srgb, var(--primary, #5c4bea) 6%, #fff);
  border: 1px solid color-mix(in srgb, var(--primary, #5c4bea) 22%, var(--border));
  border-radius: calc(var(--radius) + 4px);
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  margin-top: 2rem;
  padding: 1.25rem;
}
.content-review-invite h2 { font-size: 1.15rem; margin: .25rem 0; }
.content-review-invite p { color: var(--muted); margin: 0; }
.review-request-dialog { max-width: 540px; position: relative; }
.review-request-close { position: absolute; right: .75rem; top: .75rem; }
.review-request-stars { display: block; font-size: 1.25rem; margin-bottom: .5rem; }
.review-rating-field { border: 0; margin: 0 0 1rem; padding: 0; }
.review-rating-field legend { font-size: .85rem; font-weight: 650; margin-bottom: .3rem; }
.review-modal-open { overflow: hidden; }

.sales-review-group { margin-top: 1.5rem; }
.sales-review-group-heading,
.sales-review-card-head,
.sales-review-actions,
.sales-review-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: space-between;
}
.sales-review-group-heading h3 { margin: 0; }
.sales-review-list { display: grid; gap: .85rem; margin-top: .75rem; }
.sales-review-card {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem 1.15rem;
}
.sales-review-card.is-pending { border-left: 4px solid #d99b13; }
.sales-review-card-head > div { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem; }
.sales-review-card > p { margin: .75rem 0; white-space: pre-wrap; }
.sales-review-meta { color: var(--muted); font-size: .84rem; justify-content: flex-start; }
.sales-review-actions { justify-content: flex-end; margin-top: .85rem; }
.sales-review-actions form { margin: 0; }
.sales-review-flash { margin-top: 1rem; }
.sales-review-reply {
  background: color-mix(in srgb, var(--primary) 6%, var(--surface, #fff));
  border-left: 3px solid var(--primary);
  border-radius: 0 var(--radius) var(--radius) 0;
  margin-top: 1rem;
  padding: .8rem .9rem;
}
.sales-review-reply-head {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: .85rem;
  gap: .5rem;
  justify-content: space-between;
}
.sales-review-reply-head span { color: var(--muted); font-size: .78rem; }
.sales-review-reply > p { margin: .45rem 0 0; white-space: pre-wrap; }
.sales-review-reply-editor {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-top: .85rem;
  overflow: hidden;
}
.sales-review-reply-editor > summary {
  align-items: center;
  color: var(--primary);
  cursor: pointer;
  display: flex;
  font-size: .9rem;
  font-weight: 700;
  justify-content: space-between;
  list-style: none;
  padding: .72rem .85rem;
  transition: background .18s ease;
}
.sales-review-reply-editor > summary::-webkit-details-marker { display: none; }
.sales-review-reply-editor > summary::after { content: "+"; font-size: 1.15rem; line-height: 1; }
.sales-review-reply-editor[open] > summary { background: color-mix(in srgb, var(--primary) 6%, transparent); }
.sales-review-reply-editor[open] > summary::after { content: "−"; }
.sales-review-reply-editor > .animated-details-body {
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  padding: .9rem;
}
.sales-review-reply-editor form:first-child { flex: 1 1 100%; }
.sales-review-reply-editor .field { margin: 0; }
.sales-review-reply-editor textarea { min-height: 108px; resize: vertical; }
.sales-review-reply-form-actions { display: flex; justify-content: flex-end; margin-top: .65rem; }
.sales-review-reply-editor > .animated-details-body > form:last-child:not(:first-child) { margin: 0 0 0 auto; }

@media (max-width: 700px) {
  .pb-reviews-grid,
  .pb-reviews-featured,
  .product-review-copy { grid-template-columns: 1fr; }
  .pb-reviews-featured .pb-review-card:first-child { grid-row: auto; }
  .product-review-copy .field:nth-child(2) { grid-column: auto; }
  .content-review-invite { align-items: stretch; flex-direction: column; }
}

/* Animation des blocs */
.block-add-animation { will-change: transform, opacity; }
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeOutDown {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-20px); }
}
@keyframes popupSlideIn {
  from { opacity: 0; transform: translateY(-20px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(30px); }
  to { opacity: 1; transform: translateX(0); }
}

/* animations de page */
.page-block { 
  animation: fadeInUp 0.4s ease both;
}

@media (prefers-reduced-motion: reduce) {
  .page-block, .block-add-animation, .add-menu-popup, .add-menu-overlay,
  .add-menu-overlay::before, .add-menu-overlay::after, .block-preview-loading,
  .block-preview-favorite, .favorite-modal-overlay, .favorite-modal-card,
  input[type="checkbox"] { animation: none; transition: none; }
}

/* Padding et autres */
.pad-section .pad-axis { margin-bottom: 1rem; }
.pad-section[open] .pad-axis,
.animated-details[open] > .animated-details-body,
.adaptive-rounding-advanced[open] > .adaptive-rounding-groups {
  animation: detailsReveal .26s cubic-bezier(.2, .75, .25, 1) both;
  transform-origin: top;
}
.animated-details-body { padding-top: .75rem; }
.text-customization { margin-top: .15rem; }
@keyframes detailsReveal {
  from { opacity: 0; transform: translateY(-7px) scaleY(.97); }
  to { opacity: 1; transform: translateY(0) scaleY(1); }
}
@media (prefers-reduced-motion: reduce) {
  .tab-panel.active, .newsletter-provider[open] .newsletter-provider-body,
  .pad-section[open] .pad-axis, .animated-details[open] > .animated-details-body,
  .adaptive-rounding-advanced[open] > .adaptive-rounding-groups {
    animation: none;
  }
}
.pad-axis-head { font-weight: 700; font-size: .85rem; margin-bottom: .4rem; }
.pad-range { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .65rem; }
.pad-range input[type="range"] {
  --range-progress: 0%;
  width: 100%; height: 24px; margin: 0; padding: 0;
  appearance: none; -webkit-appearance: none; background: transparent; cursor: ew-resize;
}
.pad-range input[type="range"]::-webkit-slider-runnable-track {
  height: 7px; border-radius: 999px;
  background: linear-gradient(90deg,
    var(--primary) 0 var(--range-progress),
    color-mix(in srgb, var(--primary) 13%, var(--border)) var(--range-progress) 100%);
}
.pad-range input[type="range"]::-moz-range-track {
  height: 7px; border: 0; border-radius: 999px;
  background: color-mix(in srgb, var(--primary) 13%, var(--border));
}
.pad-range input[type="range"]::-moz-range-progress {
  height: 7px; border-radius: 999px; background: var(--primary);
}
.pad-range input[type="range"]::-webkit-slider-thumb {
  width: 19px; height: 19px; margin-top: -6px;
  appearance: none; -webkit-appearance: none;
  border: 3px solid var(--card); border-radius: 50%; background: var(--primary);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 36%, transparent);
  transition: transform .14s ease, box-shadow .14s ease;
}
.pad-range input[type="range"]::-moz-range-thumb {
  width: 14px; height: 14px;
  border: 3px solid var(--card); border-radius: 50%; background: var(--primary);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 36%, transparent);
}
.pad-range input[type="range"]:hover::-webkit-slider-thumb,
.pad-range input[type="range"]:focus-visible::-webkit-slider-thumb {
  transform: scale(1.1);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--primary) 13%, transparent);
}
.pad-range input[type="range"]:focus-visible { outline: none; }
.pad-exact {
  display: inline-flex; align-items: center; overflow: hidden;
  min-width: 74px; height: 34px;
  border: 1px solid var(--border); border-radius: 8px;
  background: var(--card);
}
.pad-number {
  width: 52px !important; height: 32px; padding: 0 .35rem !important;
  border: 0 !important; border-radius: 0 !important;
  background: transparent !important; text-align: right; font-weight: 700;
}
.pad-number:focus { box-shadow: none !important; outline: none; }
.pad-unit { padding-right: .45rem; color: var(--muted); font-size: .72rem; }
.pad-section .field, .carousel-settings .field { margin-bottom: .7rem; }
.carousel-settings { margin-bottom: 1.1rem; }

.builder-product-list { max-height: 220px; }
.builder-product-list .check-item { flex-wrap: wrap; }
.pick-order {
  min-width: 1.3em; height: 1.3em; border-radius: 50%; background: var(--primary); color: #fff;
  font-size: .72rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
}
.pick-order:empty { visibility: hidden; }
.pick-title { flex: 1; min-width: 120px; }
.builder-img-preview { position: relative; min-height: 90px; aspect-ratio: auto; }
.builder-img-preview img { max-height: 140px; object-fit: contain; }
.builder-img-preview .builder-img-alt-gear { top: 8px; right: 8px; }
.builder-img-preview .builder-img-alt-gear .icon { width: 16px; height: 16px; }

.save-pending { color: #8a5a00; }
.save-ok { color: var(--green); }
.save-error { color: var(--red); }

/* Responsive pour le builder */
@media (max-width: 768px) {
  .builder-preview { min-height: 400px; }
  .theme-colors-grid { grid-template-columns: 1fr; }

  .add-menu-modal { padding: 8px; }
  .add-menu-popup { width: 100%; height: calc(100vh - 16px); border-radius: 14px; }
  .add-menu-header { padding: .85rem 1rem .7rem; }
  .add-menu-search-wrap { padding: 0 1rem .8rem; }
  .add-menu-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .add-menu-tabs {
    flex-direction: row; padding: .55rem .7rem; overflow-x: auto; overflow-y: hidden;
    border-right: 0; border-bottom: 1px solid var(--border);
  }
  .add-menu-tab { width: auto; flex: 0 0 auto; padding: .55rem .7rem; }
  .add-menu-tab:hover { transform: none; }
  .add-menu-content { padding: .8rem; }
  .add-menu-category.active,
  .add-menu-content.is-searching .add-menu-category.has-search-results { grid-template-columns: 1fr; }
  .block-preview-canvas { height: 190px; }
}

/* ===== ScaleEdges documentation & editorial content ===== */
.platform-content-page {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
  padding: 4rem 0 6rem;
}
.platform-content-hero { max-width: 760px; margin-bottom: 2.5rem; }
.platform-content-back { display: inline-flex; margin-bottom: 2rem; color: var(--muted); font-weight: 600; }
.platform-content-eyebrow {
  display: block; color: var(--primary); font-size: .78rem; font-weight: 800;
  letter-spacing: .09em; text-transform: uppercase; margin-bottom: .65rem;
}
.platform-content-hero h1, .platform-content-article h1 {
  font-size: clamp(2.25rem, 6vw, 4rem); line-height: 1.05; letter-spacing: -.045em; margin: 0 0 1rem;
}
.platform-content-hero > p, .platform-content-summary { color: var(--muted); font-size: 1.15rem; line-height: 1.7; }
.platform-content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.platform-content-card, .platform-content-empty {
  padding: 1.7rem; border: 1px solid var(--border); border-radius: 18px; background: var(--surface, #fff);
}
.platform-content-card > div { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .8rem; }
.platform-content-card h2 { font-size: 1.35rem; margin: 1rem 0 .7rem; }
.platform-content-card h2 a { color: inherit; }
.platform-content-card p { color: var(--muted); line-height: 1.65; }
.platform-content-read { display: inline-flex; margin-top: .65rem; font-weight: 700; }
.platform-content-article { max-width: 820px; margin: 0 auto; }
.platform-content-article > header { padding-bottom: 2.25rem; margin-bottom: 2.25rem; border-bottom: 1px solid var(--border); }
.platform-content-article > header time { display: block; color: var(--muted); margin-top: 1.2rem; font-size: .9rem; }
.platform-markdown { font-size: 1.05rem; line-height: 1.8; color: var(--text); }
.platform-markdown img, .platform-markdown video { display: block; max-width: 100%; height: auto; border-radius: 14px; }
.platform-markdown .platform-media { margin: 1.6rem 0; }
.platform-markdown .platform-video video { width: 100%; background: #0f1220; }
.platform-markdown h2, .platform-markdown h3, .platform-markdown h4 { scroll-margin-top: 5rem; line-height: 1.25; }
.platform-markdown h2 { font-size: 1.8rem; margin: 2.8rem 0 1rem; }
.platform-markdown h3 { font-size: 1.35rem; margin: 2.1rem 0 .8rem; }
.platform-markdown p, .platform-markdown ul, .platform-markdown ol { margin: 0 0 1.25rem; }
.platform-markdown li + li { margin-top: .4rem; }
.platform-markdown blockquote { margin: 1.5rem 0; padding: .9rem 1.2rem; border-left: 4px solid var(--primary); background: #f7f7ff; }
.platform-markdown blockquote p { margin: 0; }
.platform-markdown pre { overflow-x: auto; padding: 1.2rem; border-radius: 12px; background: #151b2d; color: #f5f7ff; }
.platform-markdown code { padding: .13em .35em; border-radius: 5px; background: #f0f1f5; font-size: .92em; }
.platform-markdown pre code { padding: 0; background: transparent; color: inherit; }
.platform-markdown img { display: block; max-width: 100%; height: auto; margin: 1.5rem auto; border-radius: 12px; }
.platform-markdown hr { margin: 2.5rem 0; border: 0; border-top: 1px solid var(--border); }
@media (max-width: 700px) {
  .platform-content-page { padding-top: 2.5rem; }
  .platform-content-grid { grid-template-columns: 1fr; }
  .platform-content-card > div { align-items: flex-start; flex-direction: column; gap: .25rem; }
}

/* Thèmes - styles appliqués */
:root {
  --theme-primary: #5B68E3;
  --theme-secondary: #4A56C2;
  --theme-bg: #FCFBFE;
  --theme-card: #FCFBFE;
  --theme-text: #1d1d2b;
  --theme-muted: #6b6b80;
  --theme-border: #e4e4ee;
  --theme-h1: #1d1d2b;
  --theme-h2: #1d1d2b;
  --theme-btn-primary: #5B68E3;
  --theme-btn-secondary: #FCFBFE;
  --theme-btn-tertiary: #ececf4;
  --theme-btn-primary-hover: #4A56C2;
  --theme-btn-secondary-hover: #e0e0e0;
  --theme-btn-tertiary-hover: #dcdcdf;
}

/* ---------- Assistant IA (éditeur) ---------- */

.ai-inline-btn svg { display: block; }

.ai-panel {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  min-width: 240px;
}

.ai-panel-action {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: none;
  border-radius: 6px;
  background: transparent;
  font-size: 13.5px;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.ai-panel-action:hover:not(:disabled) { background: #f2effe; }

.ai-panel-custom {
  display: flex;
  gap: 6px;
  margin-top: 4px;
}

.ai-panel-custom input {
  flex: 1;
  padding: 7px 10px;
  border: 1px solid #e4e4ee;
  border-radius: 6px;
  font-size: 13px;
  min-width: 0;
}

.ai-panel-custom input:focus {
  outline: none;
  border-color: #8b5cf6;
  box-shadow: 0 0 0 2px rgba(139, 92, 246, .15);
}

.ai-panel-go {
  padding: 7px 12px;
  border: none;
  border-radius: 6px;
  background: linear-gradient(135deg, #8b5cf6, #ec4899);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.ai-panel-go:hover:not(:disabled) { filter: brightness(1.08); }

.ai-panel button:disabled,
.ai-panel input:disabled { opacity: .55; cursor: default; }

.ai-panel-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12.5px;
  padding: 4px;
  color: #8b5cf6;
}

.ai-panel-status[hidden] { display: none; }
.ai-panel-status.is-error { color: #d33c3c; }
.ai-panel-cancel,
.ai-toast-cancel {
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 6px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  padding: 5px 9px;
  cursor: pointer;
}
.ai-panel-cancel { border-color: #d8d3eb; color: #6b5bb7; }
.ai-panel-cancel:hover { background: #f0edfb; }

/* Bloc « Assistant IA » inséré via la commande / */
.ai-block {
  border: 1px solid #e4d9ff;
  border-radius: 10px;
  background: linear-gradient(180deg, #faf8ff, #fff);
  padding: 10px 12px;
  margin: 8px 0;
}

.ai-block-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  padding-bottom: 4px;
}

.ai-block-scope {
  font-size: 12px;
  color: #6b6b80;
}

.ai-block-cancel {
  margin-left: auto;
  border: none;
  background: transparent;
  cursor: pointer;
  color: #6b6b80;
  font-size: 13px;
  padding: 2px 6px;
  border-radius: 4px;
}

.ai-block-cancel:hover { background: #f0eef8; color: #1d1d2b; }

.ai-block .ai-panel { padding: 4px 0 0; }

/* Toast « Annuler la modification IA » */
.ai-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 12px;
  background: #1d1d2b;
  color: #fff;
  padding: 10px 14px;
  border-radius: 10px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, .25);
  font-size: 13.5px;
  z-index: 1000;
  animation: ai-toast-in .25s ease;
}

.ai-toast > span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-toast-loading > span::after {
  content: "";
  width: 12px;
  height: 12px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: ai-toast-spin .75s linear infinite;
}

@keyframes ai-toast-spin { to { transform: rotate(360deg); } }

.ai-toast-cancel:hover { background: rgba(255, 255, 255, .1); }

@keyframes ai-toast-in {
  from { opacity: 0; transform: translate(-50%, 10px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

.ai-toast-undo {
  border: none;
  border-radius: 6px;
  background: linear-gradient(135deg, #8b5cf6, #ec4899);
  color: #fff;
  font-weight: 600;
  font-size: 13px;
  padding: 6px 12px;
  cursor: pointer;
}

.ai-toast-undo:hover { filter: brightness(1.1); }

.ai-toast-close {
  border: none;
  background: transparent;
  color: #a7a7bd;
  cursor: pointer;
  font-size: 12px;
  padding: 4px;
}

.ai-toast-close:hover { color: #fff; }

/* ===== Authentification Firebase ===== */
.alert-info { background: #eaf1fd; color: #2456a8; }
.auth-session-options {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  margin: -.25rem 0 1rem; font-size: .9rem;
}
.auth-session-options .auth-remember {
  display: inline-flex; align-items: center; gap: .45rem; margin: 0; cursor: pointer;
}
.auth-session-options .auth-remember input { width: auto; margin: 0; }

.pw-rules { list-style: none; margin: -.25rem 0 1rem; padding: 0; font-size: .85rem; color: var(--muted); }
.pw-rules li { display: flex; align-items: center; gap: .45rem; padding: .12rem 0; font-weight: normal; }
.pw-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border); flex: none; transition: background .15s; }
.pw-rules li.ok { color: var(--green); }
.pw-rules li.ok .pw-dot { background: var(--green); }

.verify-notice .btn { margin-top: .5rem; }

.mfa-login-challenge[hidden],
.mfa-setup[hidden],
.mfa-backup-result[hidden],
.mfa-password-field[hidden],
#login-options[hidden],
#mfa-disabled-controls[hidden],
#mfa-enabled-controls[hidden] { display: none; }

.mfa-login-challenge { text-align: center; }
.mfa-login-challenge h2 { margin: .35rem 0 .55rem; }
.mfa-login-challenge > p { color: var(--muted); line-height: 1.5; }
.mfa-login-challenge form { margin-top: 1.1rem; text-align: left; }
.mfa-login-challenge #mfa-login-cancel { margin-top: .6rem; }
.mfa-login-icon {
  display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto;
  color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
  border-radius: 50%; font-size: 2rem; font-weight: 800;
}

.mfa-card-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  margin-bottom: 1rem;
}
.mfa-card-head .card-title { margin-bottom: .25rem; }
.mfa-card-head .hint { margin: 0; }
.mfa-status {
  flex: none; padding: .28rem .62rem; color: var(--muted); background: var(--bg);
  border: 1px solid var(--border); border-radius: 99px; font-size: .78rem; font-weight: 750;
}
.mfa-status.is-enabled {
  color: var(--green); background: color-mix(in srgb, var(--green) 9%, transparent);
  border-color: color-mix(in srgb, var(--green) 30%, transparent);
}
.mfa-setup {
  margin-top: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--border);
}
.mfa-setup-grid {
  display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  align-items: start; gap: 1.5rem;
}
.mfa-qr-frame {
  display: grid; place-items: center; padding: .7rem; background: #fff;
  border: 1px solid var(--border); border-radius: 14px;
}
.mfa-qr-frame img { display: block; width: 100%; height: auto; aspect-ratio: 1; }
.mfa-setup h3, .mfa-backup-result h3 { margin: 0 0 .45rem; }
.mfa-setup h3:not(:first-child) { margin-top: 1.25rem; }
.mfa-manual-key {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .55rem .7rem; background: var(--bg); border: 1px solid var(--border);
  border-radius: 9px;
}
.mfa-manual-key code { overflow-wrap: anywhere; font-size: .86rem; letter-spacing: .08em; }
.mfa-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.mfa-backup-summary {
  display: inline-block; padding: .55rem .75rem; background: var(--bg);
  border: 1px solid var(--border); border-radius: 9px;
}
.mfa-backup-result {
  margin-top: 1rem; padding: 1rem; background: color-mix(in srgb, var(--primary) 5%, var(--card));
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--border)); border-radius: 12px;
}
.mfa-backup-result > p { color: var(--muted); }
.security-pin-card { scroll-margin-top: 1.25rem; }
.security-pin-card .mfa-card-head { margin-bottom: 1rem; }
.security-pin-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.settings-pin-digits { display: grid; grid-template-columns: repeat(6, 1fr); gap: .38rem; margin-top: .45rem; }
.settings-pin-digits input {
  width: 100%; min-width: 0; aspect-ratio: .9; padding: 0; text-align: center;
  border: 1px solid var(--border); border-radius: 9px; background: #fafafe;
  font: 800 1rem/1 system-ui, sans-serif; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.settings-pin-digits input:focus {
  outline: 0; border-color: #655bdd; background: #fff;
  box-shadow: 0 0 0 3px rgba(101, 91, 221, .12); transform: translateY(-1px);
}
.security-pin-storage-note { display: flex; align-items: center; gap: .35rem; margin-top: 1rem; }
.security-pin-storage-note .icon { flex: none; width: 14px; height: 14px; }
.security-pin-prerequisite[hidden], #security-pin-management-form[hidden], #security-pin-remove[hidden] { display: none; }
.security-pin-settings-grid[hidden], #security-pin-save[hidden] { display: none; }
/* Appareils connectés : même grille que les lignes d'équipe pour que les deux
   écrans de sécurité se lisent de la même façon. */
.active-sessions-card { scroll-margin-top: 1.25rem; }
/* Carte visée par une ancre (notification de connexion, retour d'intégration). */
[data-settings-card].is-anchored {
  border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
  box-shadow: 0 0 0 3px rgba(101, 91, 221, .14);
  transition: border-color .25s ease, box-shadow .25s ease;
}
.active-sessions-card .mfa-card-head { margin-bottom: 1rem; }
.session-list { display: grid; margin: 0; padding: 0; list-style: none; }
.session-row {
  display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center;
  gap: .8rem; padding: .75rem 0; border-top: 1px solid var(--border);
}
.session-row:first-child { border-top: 0; }
.session-mark {
  display: grid; place-items: center; width: 38px; height: 38px;
  color: #525bc9; background: #e9ebff; border-radius: 11px;
}
.session-mark .icon { width: 18px; height: 18px; }
.session-row.is-current .session-mark { color: #315f47; background: #e6f6ed; }
.session-copy { display: grid; min-width: 0; gap: .15rem; }
.session-copy strong, .session-copy > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-copy > span { color: var(--muted); font-size: .78rem; }
.session-copy .badge { margin-left: .3rem; vertical-align: middle; }
.session-revoke { color: var(--red); }
.session-empty { margin: .5rem 0 0; }
.session-empty[hidden], #revoke-other-sessions[hidden] { display: none; }
.mfa-backup-codes {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem;
  margin: 1rem 0;
}
.mfa-backup-codes code {
  padding: .55rem .65rem; color: var(--text); background: var(--card);
  border: 1px solid var(--border); border-radius: 7px; text-align: center;
  font-size: .88rem; letter-spacing: .04em; user-select: all;
}

.newsletter-optin {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  margin: 0 0 1rem;
  font-size: .85rem;
  font-weight: normal;
  color: var(--muted);
  cursor: pointer;
}
.newsletter-optin input[type="checkbox"] { margin-top: .2rem; flex: none; width: auto; }

/* Notifications (toasts) */
.notif-holder {
  position: fixed; top: 1rem; right: 1rem; z-index: 300;
  display: flex; flex-direction: column; gap: .5rem; max-width: 360px;
}
.notif {
  display: flex; align-items: flex-start; gap: .6rem;
  background: var(--card); border: 1px solid var(--border); border-left: 4px solid var(--red);
  border-radius: var(--radius); padding: .7rem .85rem; font-size: .92rem;
  box-shadow: 0 8px 24px rgba(29, 29, 43, .12);
  animation: notif-in .25s ease;
}
.notif-success { border-left-color: var(--green); }
.notif-info { border-left-color: var(--primary); }
.notif-icon { flex: none; font-weight: 700; }
.notif-error .notif-icon { color: var(--red); }
.notif-success .notif-icon { color: var(--green); }
.notif-info .notif-icon { color: var(--primary); }
.notif-msg { flex: 1; }
.notif-close {
  flex: none; background: none; border: none; cursor: pointer;
  color: var(--muted); font-size: 1.1rem; line-height: 1; padding: 0;
}
.notif-out { opacity: 0; transform: translateX(12px); transition: all .3s; }
@keyframes notif-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* Menu avatar (haut à droite) */
.avatar-menu { position: relative; }
.avatar-btn {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--border);
  background: var(--primary); color: #fff; cursor: pointer; padding: 0; overflow: hidden;
}
.avatar-btn:hover { border-color: var(--primary); }
.avatar-img { width: 100%; height: 100%; object-fit: cover; }
.avatar-initials { font-weight: 700; font-size: .9rem; letter-spacing: .02em; }
.avatar-dropdown {
  position: absolute; right: 0; top: calc(100% + .5rem);
  width: min(340px, calc(100vw - 24px)); background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: 0 10px 30px rgba(29, 29, 43, .14);
  padding: .4rem; z-index: 100;
  opacity: 0; transform: translateY(-4px) scale(.98);
  transform-origin: top right;
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}
.avatar-menu.open .avatar-dropdown {
  opacity: 1; transform: none;
  pointer-events: auto;
}
.avatar-dropdown.closing {
  opacity: 0; transform: translateY(-4px) scale(.98);
  pointer-events: none;
}
.avatar-dropdown-head {
  display: flex; flex-direction: column; padding: .5rem .65rem .6rem;
  border-bottom: 1px solid var(--border); margin-bottom: .35rem;
}
.avatar-dropdown-head .hint { overflow: hidden; text-overflow: ellipsis; }
.avatar-store-context {
  overflow: hidden; margin-top: .35rem; color: #4e55a6; font-size: .78rem;
  font-weight: 700; text-overflow: ellipsis; white-space: nowrap;
}
.avatar-store-switcher { margin: .3rem 0; padding: .35rem 0; border-bottom: 1px solid var(--border); }
.avatar-dropdown-label {
  display: block; padding: .25rem .65rem .4rem; color: var(--muted);
  font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
}
.avatar-store-switcher form { margin: 0; }
.avatar-store-option {
  display: grid; grid-template-columns: 30px minmax(0, 1fr) 18px; align-items: center; gap: .55rem;
  width: 100%; padding: .48rem .6rem; color: var(--text); background: transparent;
  border: 0; border-radius: 9px; cursor: pointer; font: inherit; text-align: left;
}
.avatar-store-option:hover, .avatar-store-option.active { background: #f1f2ff; }
.avatar-store-option-icon {
  display: grid; place-items: center; width: 30px; height: 30px; color: #5059cb;
  background: #e9ebff; border-radius: 9px;
}
.avatar-store-option-icon .icon { width: 16px; height: 16px; }
.avatar-store-option > span:nth-child(2) { display: grid; min-width: 0; }
.avatar-store-option strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.avatar-store-option small { color: var(--muted); font-size: .72rem; }
.avatar-store-check { color: var(--primary); font-weight: 800; }
.nav-links .avatar-invitation-link {
  display: flex; align-items: center; gap: .45rem; margin: .35rem .45rem 0; padding: .5rem .6rem;
  color: #5b47b7; background: #f0ebff; border-radius: 8px; font-size: .76rem; font-weight: 700;
}
.avatar-invitation-link .icon { width: 15px; height: 15px; }
.avatar-dropdown-item {
  display: flex; align-items: center; gap: .55rem; width: 100%;
  padding: .5rem .65rem; border: none; background: none; border-radius: 8px;
  font-size: .92rem; color: var(--text); cursor: pointer; text-align: left; font-family: inherit;
}
.nav-links .avatar-dropdown-item { color: var(--text); }
.avatar-dropdown-item:hover { background: var(--bg); text-decoration: none; }
.avatar-dropdown-item > span {
  display: inline-block; transform: scale(1); transform-origin: left center;
  transition: transform .2s cubic-bezier(.2, .8, .2, 1);
}
.avatar-dropdown-item:hover > span,
.avatar-dropdown-item:focus-visible > span { transform: scale(1.045); }
.avatar-dropdown-item.avatar-logout { color: var(--red); }
@media (prefers-reduced-motion: reduce) {
  .avatar-dropdown-item > span { transition: none; }
  .avatar-dropdown-item:hover > span,
  .avatar-dropdown-item:focus-visible > span { transform: none; }
}
.team-readonly-banner {
  display: flex; align-items: center; justify-content: center; gap: .45rem; padding: .55rem 1rem;
  color: #5d4510; background: #fff4cf; border-bottom: 1px solid #ead58d; font-size: .82rem;
}
.team-readonly-banner .icon { width: 16px; height: 16px; }
.team-readonly-banner span { color: #765f2a; }
.team-section-readonly { position: relative; }
.team-section-readonly::before {
  content: "View only"; display: inline-flex; margin: 0 0 .7rem; padding: .25rem .55rem;
  color: #73520d; background: #fff0bd; border-radius: 999px; font-size: .7rem; font-weight: 800;
}
.team-section-readonly :disabled { cursor: not-allowed; }
.dashboard-notification-type-team { color: #3157a6; background: #e7efff; }
.avatar-preview { max-width: 96px; border-radius: 50%; aspect-ratio: 1; object-fit: cover; display: block; margin: .4rem 0; }

/* Modal de confirmation */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(17, 21, 38, 0.55);
  display: flex; align-items: center; justify-content: center; z-index: 200; padding: 1rem;
  animation: modalOverlayIn 0.18s ease;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.modal-overlay[hidden] { display: none; }
.modal-box {
  background: var(--card); border-radius: var(--radius); padding: 1.5rem;
  max-width: 400px; width: 100%; box-shadow: 0 18px 50px rgba(29, 29, 43, .25);
  animation: popupSlideIn 0.25s ease both;
}
.modal-box h2 { margin: 0 0 .5rem; }
.modal-box p { margin: 0 0 1.25rem; color: var(--muted); }
.modal-actions { display: flex; justify-content: flex-end; gap: .6rem; }
/* Pop-up de confirmation générique (confirm-actions.js), qui remplace la boîte
   du navigateur : elle doit passer au-dessus de toutes les autres couches. */
.modal-overlay.confirm-dialog { z-index: 2000; }
.confirm-dialog-box { max-width: 440px; }
.confirm-dialog-box h2 { font-size: 1.12rem; }
.confirm-dialog-box p { margin-bottom: 1.35rem; color: var(--text); line-height: 1.5; }
.confirm-dialog-box .modal-actions .btn-danger {
  color: #fff; background: var(--red); border-color: var(--red);
}
.confirm-dialog-open { overflow: hidden; }
.modal-actions .btn-danger { background: var(--red); color: #fff; }

/* Gallery Modal in Website Builder */
.gallery-modal { position: fixed; inset: 0; z-index: 300; }
.gallery-modal-overlay {
  position: absolute; inset: 0; background: rgba(204, 213, 227, 0.5);
  animation: modalOverlayIn 0.18s ease;
}
.gallery-modal-popup {
  position: absolute; inset: 1rem; background: var(--card); border-radius: var(--radius);
  max-width: calc(100% - 2rem); max-height: calc(100% - 2rem);
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 18px 50px rgba(29, 29, 43, .25);
  animation: popupSlideIn 0.25s ease both;
}
.gallery-modal-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 1rem 1.5rem; border-bottom: 1px solid var(--border);
}
.gallery-modal-eyebrow {
  font-size: .8rem; color: var(--muted); text-transform: uppercase;
  letter-spacing: .05em; font-weight: 600;
}
.gallery-modal-header h3 { margin: .2rem 0; display: flex; align-items: center; gap: .5rem; }
.gallery-modal-body { flex: 1; overflow-y: auto; padding: 1.5rem; }
.gallery-modal-body .media-gallery-tabs { margin-bottom: 1rem; }
.gallery-modal-body .gallery-page-tools { margin-bottom: 1rem; }
.gallery-modal-body .gallery-page-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 1rem; margin-top: 1rem;
}
.gallery-modal-body .gallery-page-grid .gallery-page-item {
  aspect-ratio: 1; overflow: hidden; border-radius: var(--radius);
  border: 1px solid var(--border);
}
.gallery-modal-body .gallery-page-grid .gallery-page-item img,
.gallery-modal-body .gallery-page-grid .gallery-page-item video {
  width: 100%; height: 100%; object-fit: cover;
}

/* Gestion des followers : actions au survol et fiche interne. */
.follower-actions-heading, .follower-actions-cell {
  width: 44px; padding-left: .25rem !important; padding-right: .25rem !important;
}
.follower-row-actions { position: relative; display: flex; justify-content: flex-end; }
.follower-menu-toggle { opacity: 0; transition: opacity .15s ease, background-color .15s ease; }
.follower-row:hover .follower-menu-toggle,
.follower-row:focus-within .follower-menu-toggle,
.customer-row:hover .follower-menu-toggle,
.customer-row:focus-within .follower-menu-toggle,
.follower-menu-toggle[aria-expanded="true"] { opacity: 1; }
.follower-row-menu {
  position: fixed; z-index: 1450; min-width: 210px; padding: .35rem;
  border: 1px solid var(--border); border-radius: 10px; background: var(--card);
  box-shadow: 0 16px 45px rgba(20, 20, 40, .2);
  opacity: 0; transform: translateY(-6px) scale(.97); transform-origin: top right;
  transition: opacity .16s ease, transform .16s cubic-bezier(.2, .75, .25, 1);
}
.follower-row-menu.is-open { opacity: 1; transform: none; }
.follower-row-menu[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
  .follower-row-menu { transition: none; }
}
.follower-row-menu button {
  width: 100%; display: flex; align-items: center; gap: .55rem; padding: .58rem .65rem;
  border: 0; border-radius: 7px; background: transparent; color: var(--text);
  text-align: left; font: inherit; font-size: .88rem; cursor: pointer;
}
.follower-row-menu button:hover, .follower-row-menu button:focus-visible {
  background: #f3f3f8; outline: none;
}
.follower-row-menu .follower-menu-danger { color: var(--red); }
body.follower-manager-open { overflow: hidden; }
.modal-overlay.follower-manager-modal { z-index: 1500; padding: 1rem; }
.modal-box.follower-manager-box {
  position: relative; width: min(620px, 100%); max-width: 620px;
  max-height: calc(100vh - 2rem); overflow-y: auto;
}
.follower-manager-box > h2 { margin-bottom: .2rem; }
.follower-manager-box > p { margin-top: 0; }
.follower-manager-state {
  display: inline-flex; width: fit-content; margin: .3rem 0 1rem; padding: .32rem .62rem;
  border-radius: 999px; font-size: .8rem; font-weight: 750;
}
.follower-manager-state.is-active { background: #e8f7ee; color: #167545; }
.follower-manager-state.is-blocked { background: #feecec; color: #b42318; }
.follower-notes-meta { align-self: flex-end; }
.follower-manager-primary-actions { display: flex; justify-content: flex-end; margin-top: .6rem; }
/* Réglages avancés : un déclencheur-carte qui déplie son panneau en douceur
   (grid-template-rows 0fr → 1fr), puis deux cartes « bloquer » et « supprimer ». */
.follower-manager-advanced {
  margin-top: 1rem; border: 1px solid var(--border); border-radius: 12px; overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.follower-manager-advanced.is-open { box-shadow: 0 10px 28px rgba(20, 20, 40, .08); }
.follower-manager-advanced-toggle {
  display: flex; align-items: center; gap: .7rem; width: 100%; padding: .75rem .9rem;
  border: 0; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer;
  transition: background-color .16s ease;
}
.follower-manager-advanced-toggle:hover { background: #f5f5fa; }
.follower-manager-advanced-toggle:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary) 55%, transparent); outline-offset: -2px; }
.follower-advanced-toggle-icon {
  display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 9px;
  color: var(--primary); background: color-mix(in srgb, var(--primary) 11%, transparent);
}
.follower-advanced-toggle-icon .icon { width: 16px; height: 16px; }
.follower-advanced-toggle-copy { display: grid; gap: .05rem; min-width: 0; flex: 1; }
.follower-advanced-toggle-copy small { color: var(--muted); font-size: .78rem; }
.follower-advanced-chevron { display: grid; color: var(--muted); transition: transform .28s cubic-bezier(.2, .75, .25, 1); }
.follower-advanced-chevron .icon { width: 17px; height: 17px; }
.follower-manager-advanced.is-open .follower-advanced-chevron { transform: rotate(180deg); }
.follower-manager-advanced-panel {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .32s cubic-bezier(.2, .75, .25, 1);
}
.follower-manager-advanced.is-open .follower-manager-advanced-panel { grid-template-rows: 1fr; }
.follower-manager-advanced-body {
  display: grid; gap: .75rem; min-height: 0; overflow: hidden; padding: 0 .9rem;
  opacity: 0; transform: translateY(-6px);
  transition: opacity .22s ease, transform .28s cubic-bezier(.2, .75, .25, 1), padding .32s cubic-bezier(.2, .75, .25, 1);
}
.follower-manager-advanced.is-open .follower-manager-advanced-body {
  padding: .15rem .9rem .9rem; opacity: 1; transform: none; transition-delay: .06s, .06s, 0s;
}
.follower-advanced-card {
  display: grid; gap: .8rem; padding: .9rem; border: 1px solid var(--border); border-radius: 11px; background: #fafafd;
}
.follower-advanced-card.is-danger { border-color: #f3d2cf; background: #fff8f7; }
.follower-advanced-card-head { display: flex; align-items: flex-start; gap: .65rem; }
.follower-advanced-icon {
  display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 9px;
  color: var(--primary); background: color-mix(in srgb, var(--primary) 11%, transparent);
}
.follower-advanced-card.is-danger .follower-advanced-icon { color: var(--red); background: var(--red-bg); }
.follower-advanced-icon .icon { width: 15px; height: 15px; }
.follower-manager-advanced-body h3 { margin: .1rem 0 .2rem; font-size: .95rem; }
.follower-manager-advanced-body p.hint { margin: 0; }
.follower-advanced-card .btn .icon { width: 14px; height: 14px; margin-right: .3rem; vertical-align: -2px; }
.follower-temporary-block { display: grid; gap: .55rem; justify-items: start; }
.follower-temporary-block .field-label { margin: 0; }
.follower-duration-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.follower-duration-chips > button {
  padding: .35rem .7rem; border: 1px solid var(--border); border-radius: 999px; background: var(--card);
  color: var(--text); font: inherit; font-size: .82rem; font-weight: 650; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.follower-duration-chips > button:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--primary) 40%, var(--border)); }
.follower-duration-chips > button.is-active {
  color: var(--primary); border-color: var(--primary); background: color-mix(in srgb, var(--primary) 9%, var(--card));
}
.follower-duration-input { display: inline-flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .82rem; }
.follower-duration-input input {
  width: 4.6rem; padding: .32rem .5rem; border: 1px solid var(--border); border-radius: 8px;
  background: var(--card); color: var(--text); font: inherit; font-size: .85rem;
}
.follower-advanced-card .btn-danger { border-color: #f3d2cf; background: var(--red-bg); }
.follower-advanced-card .btn-danger:hover { border-color: #e8b4ae; background: #fbdcd8; }
.follower-permanent-actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: .55rem;
  padding-top: .8rem; border-top: 1px dashed var(--border);
}
.follower-permanent-actions .hint { flex-basis: 100%; }
.follower-manager-delete-section { justify-items: start; }
@media (prefers-reduced-motion: reduce) {
  .follower-manager-advanced-panel, .follower-manager-advanced-body, .follower-advanced-chevron { transition: none; }
}
.follower-manager-feedback { margin: .8rem 0 0; color: #167545; font-weight: 650; }
.follower-manager-feedback.is-error { color: var(--red); }
@media (max-width: 760px) {
  .follower-menu-toggle { opacity: 1; }
}
.follower-manager-consent { margin-top: .9rem; }
.follower-add-consent { margin: .2rem 0 1rem; }

/* Tri par en-tête de colonne : le libellé devient un bouton, la flèche
   n'apparaît qu'au survol tant qu'aucun tri n'est posé. */
.table th.is-sortable { padding: 0; }
.table th.is-sortable .table-sort {
  display: inline-flex; align-items: center; gap: .3rem; width: 100%;
  padding: .7rem .75rem; border: 0; background: transparent;
  color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.table th.is-sortable .table-sort::after {
  content: '↕'; opacity: 0; font-size: .78em; transition: opacity .15s ease;
}
.table th.is-sortable .table-sort:hover,
.table th.is-sortable .table-sort:focus-visible { color: var(--primary); outline: none; }
.table th.is-sortable .table-sort:hover::after,
.table th.is-sortable .table-sort:focus-visible::after { opacity: .55; }
.table th[aria-sort] .table-sort { color: var(--primary); }
.table th[aria-sort="ascending"] .table-sort::after { content: '↑'; opacity: 1; }
.table th[aria-sort="descending"] .table-sort::after { content: '↓'; opacity: 1; }

/* Sélection multiple : colonne de cases à cocher et barre d'actions. */
.table-select-col { width: 38px; padding-left: .5rem !important; padding-right: 0 !important; }
.table-select-check { display: flex; align-items: center; justify-content: center; margin: 0; }
.table-select-check input { width: 16px; height: 16px; margin: 0; cursor: pointer; }
.table-bulk-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: .75rem;
  margin: 0 0 .85rem; padding: .6rem .85rem;
  border: 1px solid rgba(91, 86, 221, .25); border-radius: 12px;
  background: #f2f1fd;
}
.table-bulk-bar[hidden] { display: none; }
.table-bulk-count { margin: 0; font-size: .88rem; font-weight: 650; }
.table-bulk-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-left: auto; }
.table-bulk-scope {
  margin: .3rem 0 1rem; padding: .45rem .7rem; border-radius: 999px;
  width: fit-content; background: #eef0ff; color: #3b34a8;
  font-size: .8rem; font-weight: 700;
}
.table-bulk-warning {
  margin: 0 0 1rem; padding: .8rem .9rem; border-radius: 12px;
  border: 1px solid rgba(212, 121, 22, .35); background: #fff6e9; color: #8a4b06;
}
.table-bulk-warning[hidden] { display: none; }
.table-bulk-warning strong { display: flex; align-items: center; gap: .4rem; }
.table-bulk-warning p { margin: .3rem 0 0; font-size: .85rem; }
.table-bulk-choice {
  margin: 1rem 0 0; padding: .85rem .9rem; border: 1px solid var(--border); border-radius: 11px;
}
.table-bulk-choice legend { padding: 0 .35rem; font-size: .82rem; font-weight: 800; }
.table-bulk-choice .check-field { margin: .25rem 0; }
.table-bulk-choice .follower-duration-input { margin-left: .5rem; display: inline-flex; }
.table-bulk-choice .follower-duration-input input { width: 84px; }

/* Bloc « Audience » de la fiche client. */
.customer-audience {
  margin: 0 0 1.2rem; padding: .9rem; border: 1px solid var(--border); border-radius: 11px;
}
.customer-audience legend { padding: 0 .35rem; font-size: .82rem; font-weight: 800; }
.customer-audience-warning { margin: .5rem 0 0; color: #8a4b06; }
.customer-audience-actions {
  display: flex; align-items: center; justify-content: flex-end; gap: .7rem; margin-top: .8rem;
}
.customer-audience-feedback { font-size: .84rem; font-weight: 650; color: #167545; }
.customer-audience-feedback.is-error { color: var(--red); }
@media (max-width: 760px) {
  .table-bulk-actions { margin-left: 0; width: 100%; }
}

/* Single owner PIN prompt, shared by every protected dashboard action. */
.security-pin-open { overflow: hidden; }
.security-pin-overlay { background: rgba(24, 25, 44, .48); backdrop-filter: blur(5px); }
.security-pin-dialog {
  position: relative; max-width: 440px; padding: 2rem; text-align: center;
  border: 1px solid rgba(91, 86, 221, .16); border-radius: 22px;
  box-shadow: 0 28px 90px rgba(27, 27, 48, .32);
}
.security-pin-close {
  position: absolute; top: .8rem; right: .9rem; width: 34px; height: 34px;
  border: 0; border-radius: 50%; color: var(--muted); background: transparent;
  font-size: 1.45rem; line-height: 1; cursor: pointer;
}
.security-pin-close:hover { color: var(--text); background: #f1f1f7; }
/* Pop-up des exigences de sécurité de l'équipe, ouverte par le rouage. */
.team-security-overlay { z-index: 1400; }
.team-security-open { overflow: hidden; }
.modal-box.team-security-box { position: relative; max-width: 560px; }
.team-security-box .team-panel-head { margin-bottom: 1.25rem; padding-right: 2rem; }
.team-security-box h2 { margin: .3rem 0 .35rem; font-size: 1.15rem; }
.team-security-box h2 .icon { width: 17px; height: 17px; margin-right: .3rem; vertical-align: -.15em; }
.team-security-box p { margin: 0; font-size: .84rem; }
.team-security-close {
  position: absolute; top: .8rem; right: .9rem; width: 34px; height: 34px;
  border: 0; border-radius: 50%; color: var(--muted); background: transparent;
  font-size: 1.45rem; line-height: 1; cursor: pointer;
}
.team-security-close:hover { color: var(--text); background: #f1f1f7; }
.team-security-box .modal-actions { margin-top: 1.25rem; }
.security-pin-mark {
  display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 1rem;
  color: #fff; border-radius: 18px; background: linear-gradient(145deg, #6d62ef, #4841bd);
  box-shadow: 0 12px 28px rgba(81, 73, 206, .28); animation: securityPinPulse .5s ease both;
}
.security-pin-mark .icon { width: 25px; height: 25px; }
.security-pin-eyebrow {
  margin: 0 0 .3rem !important; color: #5b53ce !important; font-size: .7rem;
  font-weight: 850; letter-spacing: .11em; text-transform: uppercase;
}
.security-pin-dialog h2 { font-size: 1.45rem; }
.security-pin-dialog > div p, .security-pin-dialog > div > p { line-height: 1.5; }
.security-pin-digits { display: grid; grid-template-columns: repeat(6, 1fr); gap: .55rem; margin: 1.4rem 0 1rem; }
.security-pin-digits input {
  width: 100%; min-width: 0; aspect-ratio: 1; padding: 0; text-align: center;
  color: var(--text); border: 1.5px solid #d9d9e8; border-radius: 12px; background: #fafafe;
  font: 800 1.35rem/1 system-ui, sans-serif; caret-color: #5b53ce;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}
.security-pin-digits input:focus {
  outline: 0; border-color: #655bdd; background: #fff;
  box-shadow: 0 0 0 4px rgba(101, 91, 221, .13); transform: translateY(-2px);
}
.security-pin-digits.is-invalid { animation: securityPinShake .32s ease; }
.security-pin-digits.is-invalid input { border-color: #db4d5b; background: #fff7f8; }
.security-pin-error { margin: 0 0 .8rem !important; color: var(--red) !important; font-size: .8rem; font-weight: 650; }
.security-pin-actions { margin-top: 1rem; justify-content: center; }
.security-pin-setup[hidden], [data-security-pin-challenge][hidden] { display: none; }
@keyframes securityPinPulse {
  from { opacity: 0; transform: translateY(8px) scale(.82) rotate(-7deg); }
  to { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
}
@keyframes securityPinShake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-7px); }
  50% { transform: translateX(7px); }
  75% { transform: translateX(-4px); }
}
@media (max-width: 480px) {
  .security-pin-dialog { padding: 1.6rem 1rem 1.25rem; }
  .security-pin-digits { gap: .35rem; }
  .security-pin-digits input { border-radius: 10px; font-size: 1.1rem; }
}

/* Apparition en cascade des champs à l'ouverture d'une popup */
.modal-box form > .field,
.modal-box form > .field-row,
.modal-box form > details.advanced,
.modal-box form > .modal-actions {
  animation: fadeInUp 0.3s ease both;
}
.modal-box form > .field:nth-child(1) { animation-delay: .03s; }
.modal-box form > .field:nth-child(2),
.modal-box form > .field-row:nth-child(2) { animation-delay: .07s; }
.modal-box form > .field:nth-child(3),
.modal-box form > .field-row:nth-child(3) { animation-delay: .11s; }
.modal-box form > .field:nth-child(4),
.modal-box form > .field-row:nth-child(4) { animation-delay: .15s; }
.modal-box form > details.advanced { animation-delay: .18s; }
.modal-box form > .modal-actions { animation-delay: .22s; }

@keyframes modalOverlayIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Fermeture animée d'une pop-up : la boîte se replie, la couche s'efface. */
.modal-overlay.is-closing {
  pointer-events: none;
  animation: modalOverlayOut .2s ease both;
}
.modal-overlay.is-closing .modal-box { animation: popupSlideOut .2s cubic-bezier(.4, 0, .2, 1) both; }
.modal-overlay.is-closing .modal-box form > * { animation: none; }
@keyframes modalOverlayOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes popupSlideOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(-14px) scale(.96); }
}


@media (prefers-reduced-motion: reduce) {
  .modal-overlay, .modal-box, .modal-box form > .field, .modal-box form > .field-row,
  .modal-box form > details.advanced, .modal-box form > .modal-actions,
  .modal-overlay.is-closing, .modal-overlay.is-closing .modal-box {
    animation: none;
  }
  .security-pin-mark, .security-pin-digits.is-invalid { animation: none; }
  .promo-scope-detail.is-revealing, .date-field-pop { animation: none; }
}

/* Onglet Paiements : Stripe Connect */
.stripe-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.btn-stripe-disconnect { color: var(--red); border: 1px solid var(--border); background: none; transition: all 0.2s ease; }
.btn-stripe-disconnect:hover { background: var(--red-bg); border-color: var(--red-bright); transform: scale(1.02); }
.stripe-note { text-align: center; margin-top: .6rem; }

/* Onglet Compte : zone dangereuse + popup de suppression du compte */
.danger-zone { border: 1px solid var(--red-bright); }
.danger-zone .card-title { color: var(--red); }
.btn-delete-account { background: var(--red); color: #fff; transition: all 0.2s ease; }
.btn-delete-account:hover { background: var(--red-bright); transform: scale(1.02); }

.delete-modal-box { max-width: 460px; }
.delete-modal-box p strong { color: var(--red); }
.btn-cancel-delete {
  display: block; width: 100%; margin: 1rem 0 .5rem;
  font-size: .95rem; font-weight: 700; padding: .6rem 1rem;
  color: #fff; background: var(--red-bright);
}
.btn-cancel-delete:hover { background: var(--red); }
.btn-confirm-delete {
  display: block; width: 100%;
  background: none; border: 1px solid var(--border); color: var(--red);
  font-weight: 600; transition: all 0.2s ease;
}
.btn-confirm-delete:hover:not(:disabled) { background: var(--red-bg); border-color: var(--red-bright); transform: scale(1.02); }
.btn-confirm-delete:disabled { opacity: .55; cursor: not-allowed; }

/* Bouton Google + séparateur */
.auth-divider {
  display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0;
  color: var(--muted); font-size: .85rem;
}
.auth-divider::before, .auth-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.btn-google, .btn-microsoft {
  display: flex; align-items: center; justify-content: center; gap: .6rem;
  background: var(--card); border: 1px solid var(--border); color: var(--text); font-weight: 600;
  transition: all 0.2s ease;
}
.btn-google:hover, .btn-microsoft:hover { background: var(--bg); transform: scale(1.02); }
.btn-google svg, .btn-microsoft svg { flex: none; }
.btn-google + .btn-microsoft { margin-top: .6rem; }

@media (max-width: 640px) {
  .mfa-card-head { align-items: flex-start; flex-direction: column; }
  .mfa-setup-grid { grid-template-columns: 1fr; }
  .mfa-qr-frame { width: min(100%, 280px); margin: 0 auto; }
  .mfa-backup-codes { grid-template-columns: 1fr; }
  .mfa-inline-actions .btn { width: 100%; }
  .security-pin-settings-grid { grid-template-columns: 1fr; }
}

/* Cross-selling : encart d'offre dans le panier + pop-up de configuration */
.cross-sell-offer {
  display: flex; align-items: center; gap: .85rem;
  margin: 0 0 .85rem; padding: .75rem .85rem;
  background: var(--bg); border: 1px dashed var(--border); border-radius: 10px;
}
.cross-sell-offer .table-thumb { flex: none; }
.cross-sell-text { flex: 1; margin: 0; font-size: .92rem; }
.cross-sell-text a { font-weight: 600; }
.cross-sell-offer form { flex: none; }
.cs-modal-box, .promo-modal-box { max-width: 560px; width: 92%; text-align: left; max-height: 90vh; overflow-y: auto; }
.modal-box.subscriber-import-dialog {
  max-width: 560px; width: 92%; padding: 0; text-align: left;
  max-height: 90vh; overflow-y: auto;
}
.modal-box.subscriber-import-dialog.sales-import-dialog {
  display: grid; grid-template-rows: auto auto minmax(0, 1fr);
  width: min(1020px, calc(100vw - 3rem)); max-width: 1020px;
  max-height: min(860px, calc(100vh - 3rem)); overflow: hidden;
}
body.subscriber-import-open .dashboard-nav { z-index: 210; }
.modal-overlay.subscriber-import-modal {
  inset: var(--sales-import-overlay-top, 76px) 0 0; z-index: 200;
  background: rgba(24, 27, 47, .52); backdrop-filter: blur(2px);
}
.sales-import-dialog[data-active-step="4"] { max-height: min(740px, calc(100vh - 3rem)); }
.sales-import-dialog .subscriber-import-title { min-width: 0; }
.sales-import-dialog .subscriber-import-title p {
  margin: .25rem 0 0; color: var(--muted); font-size: .84rem; line-height: 1.4;
}
.sales-import-dialog .subscriber-import-progress {
  gap: .35rem; padding: .7rem 1.5rem; border-bottom: 1px solid var(--border); background: #fbfbfe;
}
.sales-import-dialog .subscriber-import-progress span { justify-content: center; padding: .45rem .55rem; }
.sales-import-dialog .subscriber-import-progress span.complete { color: var(--text); }
.sales-import-dialog #sales-import-form { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.sales-import-dialog .subscriber-import-step { padding-top: 1.1rem; }
.sales-import-dialog .subscriber-import-actions {
  position: sticky; bottom: 0; z-index: 4; margin: 1.25rem -1.5rem -1.5rem;
  padding: 1rem 1.5rem 1.25rem; background: rgba(255,255,255,.97); box-shadow: 0 -8px 20px rgba(36,29,89,.04);
  backdrop-filter: blur(10px);
}
.sales-import-dialog .sales-import-history-list { max-height: 220px; overflow-y: auto; }
.sales-import-dialog .subscriber-preview-wrap { max-height: 280px; }
@media (max-width: 720px) {
  .modal-box.subscriber-import-dialog {
    width: 100%; max-width: none; min-height: 100vh; max-height: 100vh; border-radius: 0;
  }
  .modal-box.subscriber-import-dialog.sales-import-dialog {
    width: 100%; max-width: none; min-height: 100vh; max-height: 100vh;
  }
  .sales-import-dialog[data-active-step="4"] { max-height: 100vh; }
  .sales-import-dialog .subscriber-import-title p { display: none; }
  .sales-import-dialog .subscriber-import-actions {
    margin-right: -1rem; margin-bottom: -1.25rem; margin-left: -1rem; padding: .85rem 1rem 1rem;
  }
  .sales-import-product-list { grid-template-columns: 1fr; max-height: none; overflow: visible; }
}

/* ===== Settings workspace ===== */
.settings-page {
  --settings-ink: #20243b;
  --settings-subtle: #72768a;
  --settings-line: #e7e8f0;
  --settings-soft: #f4f5fb;
  max-width: 1180px;
  margin: 0 auto;
}

.settings-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.settings-page-head h1 {
  margin: .15rem 0 .3rem;
  color: var(--settings-ink);
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -.045em;
}

.settings-page-head p {
  max-width: 590px;
  margin: 0;
  color: var(--settings-subtle);
  font-size: .95rem;
}

.settings-store-preview {
  flex: none;
  gap: .45rem;
  min-height: 42px;
  border-color: #dfe1eb;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(36, 42, 89, .055);
}

.settings-store-preview .icon:last-child,
.settings-section-link .icon { width: 13px; height: 13px; }

.settings-shell {
  display: grid;
  grid-template-columns: 238px minmax(0, 1fr);
  align-items: start;
  gap: clamp(2rem, 4vw, 3.5rem);
}

.settings-sidebar {
  position: sticky;
  top: 96px;
  min-width: 0;
}

.settings-sidebar .settings-search {
  max-width: none;
  margin: 0 0 1.25rem;
}

.settings-sidebar .settings-search input {
  min-height: 42px;
  padding: .62rem 2.15rem;
  border-color: #dfe1eb;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(36, 42, 89, .035);
  font-size: .86rem;
}

.settings-sidebar .settings-search-icon { left: .72rem; }
.settings-sidebar .settings-search-icon .icon { width: 16px; height: 16px; }
.settings-sidebar .settings-search-summary { max-width: none; margin: -.75rem 0 1rem; font-size: .76rem; }

.settings-tabs {
  display: grid;
  max-width: none;
  margin: 0;
  border: 0;
  gap: 1.15rem;
}

.settings-nav-group { display: grid; gap: .22rem; }
.settings-nav-label {
  padding: 0 .7rem .25rem;
  color: #9295a5;
  font-size: .62rem;
  font-weight: 820;
  letter-spacing: .105em;
  text-transform: uppercase;
}

.settings-tabs .tab-btn {
  position: relative;
  display: grid;
  grid-template-columns: 31px minmax(0, 1fr);
  align-items: center;
  gap: .7rem;
  width: 100%;
  min-height: 53px;
  margin: 0;
  padding: .55rem .65rem;
  border: 0;
  border-radius: 11px;
  color: #5f6376;
  text-align: left;
  transition: color .16s ease, background .16s ease, transform .16s ease;
}

.settings-tabs .tab-btn::before {
  content: '';
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: -8px;
  width: 3px;
  border-radius: 99px;
  background: transparent;
}

.settings-tabs .tab-btn:hover {
  color: #363d79;
  background: rgba(91, 104, 227, .055);
  text-decoration: none;
  transform: translateX(2px);
}

.settings-tabs .tab-btn.active {
  color: #303a91;
  border: 0;
  background: #eef0ff;
  font-weight: inherit;
}

.settings-tabs .tab-btn.active::before { background: var(--primary); }
.settings-tab-icon {
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border: 1px solid #e4e5ed;
  border-radius: 9px;
  color: #777b90;
  background: #fff;
}
.settings-tab-icon .icon { width: 15px; height: 15px; }
.settings-tabs .tab-btn.active .settings-tab-icon {
  color: #fff;
  border-color: var(--primary);
  background: var(--primary);
  box-shadow: 0 5px 12px rgba(91, 104, 227, .22);
}
.settings-tab-copy { display: grid; min-width: 0; gap: .05rem; line-height: 1.25; }
.settings-tab-copy strong { overflow: hidden; font-size: .8rem; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.settings-tab-copy small { overflow: hidden; color: #9295a5; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-tabs .tab-btn.active .settings-tab-copy small { color: #6f76b6; }

.settings-store-context {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 20px;
  align-items: center;
  gap: .65rem;
  margin-top: 1.35rem;
  padding: .75rem;
  border-top: 1px solid var(--settings-line);
  color: var(--settings-subtle);
}
.settings-store-context > span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  color: #4e57b9;
  background: #eef0ff;
}
.settings-store-context > span .icon { width: 15px; height: 15px; }
.settings-store-context > div { display: grid; min-width: 0; line-height: 1.25; }
.settings-store-context small { font-size: .62rem; }
.settings-store-context strong { overflow: hidden; color: var(--settings-ink); font-size: .73rem; text-overflow: ellipsis; white-space: nowrap; }
.settings-store-context > a { display: grid; place-items: center; color: #8b8e9e; }
.settings-store-context > a:hover { color: var(--primary); }
.settings-store-context > a .icon { width: 14px; height: 14px; }

.settings-workspace { min-width: 0; }
.settings-workspace > .alert { max-width: 820px; }
.settings-workspace > .settings-layout,
.settings-workspace .settings-layout { width: 100%; max-width: none; }
.settings-workspace .tab-panel[data-panel='store'],
.settings-workspace .tab-panel[data-panel='payments'],
.settings-workspace .tab-panel[data-panel='customers'],
.settings-workspace .tab-panel[data-panel='notifications'],
.settings-workspace .tab-panel[data-panel='api'],
.settings-workspace .tab-panel[data-panel='compte'] { max-width: 820px; }

.settings-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  margin: 0 0 1.35rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--settings-line);
}
.settings-section-head h2,
.integrations-directory-head h2 {
  margin: .15rem 0 .25rem;
  color: var(--settings-ink);
  font-size: clamp(1.35rem, 2vw, 1.65rem);
  line-height: 1.2;
  letter-spacing: -.025em;
}
.settings-section-head p { max-width: 620px; margin: 0; color: var(--settings-subtle); font-size: .85rem; }
.settings-section-link {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: .35rem;
  padding-bottom: .15rem;
  color: #5963c7;
  font-size: .78rem;
  font-weight: 720;
}
.settings-section-link:hover { text-decoration: none; }

.settings-workspace .settings-layout .card,
.settings-workspace > .tab-panel .card {
  margin-bottom: 1rem;
  padding: 1.25rem;
  border-color: var(--settings-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 7px 24px rgba(34, 40, 82, .045);
}
/* Les deux cartes « héros » doivent égaler la spécificité de la règle .card
   ci-dessus (trois classes), sinon leur dégradé sombre repasse en blanc. */
.settings-workspace .settings-layout .api-settings-hero,
.settings-workspace > .tab-panel .api-settings-hero {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(140deg, #111827, #312e81);
}
.settings-workspace .settings-layout .team-hero-card,
.settings-workspace > .tab-panel .team-hero-card {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, #22243b, #3e4389);
}
.settings-workspace .danger-zone { border-color: #efb9b7; box-shadow: none; }
.settings-workspace .settings-layout .integration-service-card {
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.settings-workspace .card-title { margin-bottom: .8rem; color: var(--settings-ink); font-size: 1.03rem; letter-spacing: -.012em; }
.settings-workspace .card-title > .icon { width: 17px; height: 17px; margin-right: .3rem; color: #626bc7; vertical-align: -.12em; }
.settings-workspace .field { margin-bottom: 1rem; }
.settings-workspace .field-label { color: #373b51; font-size: .82rem; }
.settings-workspace input[type='text'],
.settings-workspace input[type='email'],
.settings-workspace input[type='password'],
.settings-workspace input[type='url'],
.settings-workspace select,
.settings-workspace textarea {
  min-height: 42px;
  border-color: #dfe1e9;
  border-radius: 10px;
  background: #fff;
}
.settings-workspace .hint { color: var(--settings-subtle); }
.settings-workspace .api-settings-hero .card-title,
.settings-workspace .team-hero-card .card-title { color: #fff; }
.settings-workspace .api-settings-hero .hint,
.settings-workspace .api-settings-hero .section-kicker { color: #c7d2fe; }
.settings-workspace .toggle-field {
  border-color: #e5e6ed;
  border-radius: 12px;
  background: #fafaff;
}
.settings-workspace .toggle-field:hover { border-color: #cfd3ef; background: #f8f8ff; }

.settings-action-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: .9rem;
}
.settings-action-card .card-title { margin: 0 0 .2rem; }
.settings-action-card p { margin: 0; }
.settings-action-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #5660c4;
  background: #eef0ff;
}
.settings-action-icon .icon { width: 19px; height: 19px; }
.settings-action-card .btn { white-space: nowrap; }
.settings-action-card .btn .icon { width: 13px; height: 13px; }

.settings-security-summary {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: .4rem;
  padding: .4rem .65rem;
  border-radius: 999px;
  color: #8a5a00;
  background: #fff4cc;
  font-size: .7rem;
  font-weight: 750;
}
.settings-security-summary.is-protected { color: #17613f; background: #e3f5ec; }
.settings-security-summary .icon { width: 13px; height: 13px; }

.settings-workspace .integrations-directory-head { margin: 0 0 1.2rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--settings-line); }
.settings-workspace .integrations-directory-head h2 { margin-top: .15rem; }
.settings-workspace .integration-directory-grid { gap: .8rem; }
.settings-workspace .integration-service-summary { min-height: 245px; padding: 1.05rem; }
.settings-workspace .integration-service-logo { width: 62px; height: 62px; border-radius: 16px; }
.settings-workspace .integration-service-logo img { width: 43px; height: 43px; }

#settings-submit {
  position: sticky;
  z-index: 15;
  bottom: 1rem;
  display: block;
  min-width: 150px;
  margin: .4rem 0 0 auto;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 12px;
  box-shadow: 0 13px 30px rgba(74, 86, 194, .28);
}

.settings-searching .settings-tabs .tab-btn.active {
  color: #303a91;
  background: #eef0ff;
  font-weight: inherit;
}
.settings-searching .settings-tabs .tab-btn.active::before { background: var(--primary); }
.settings-searching .settings-result-tab { margin-top: .4rem; }

@media (max-width: 960px) {
  .settings-page-head { margin-bottom: 1.35rem; }
  .settings-shell { grid-template-columns: 1fr; gap: 1.4rem; }
  .settings-sidebar { position: static; }
  .settings-sidebar .settings-search { max-width: 520px; margin-bottom: .8rem; }
  .settings-sidebar .settings-search-summary { margin: -.3rem 0 .7rem; }
  .settings-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: .45rem;
    overflow-x: auto;
    padding: .15rem .1rem .65rem;
    scrollbar-width: thin;
  }
  .settings-nav-group { display: contents; }
  .settings-nav-label, .settings-store-context { display: none; }
  .settings-tabs .tab-btn {
    flex: 0 0 auto;
    grid-template-columns: 30px auto;
    width: auto;
    min-height: 46px;
    padding: .45rem .7rem;
    border: 1px solid #e3e4eb;
    background: #fff;
  }
  .settings-tabs .tab-btn::before { display: none; }
  .settings-tabs .tab-btn:hover { transform: none; }
  .settings-tabs .tab-btn.active { border-color: #cfd3ff; }
  .settings-tab-icon { width: 29px; height: 29px; }
  .settings-tab-copy small { display: none; }
  .settings-tab-copy strong { font-size: .76rem; }
}

@media (max-width: 640px) {
  .settings-page-head { align-items: flex-start; }
  .settings-page-head p { font-size: .84rem; }
  .settings-store-preview { width: 42px; min-width: 42px; padding: 0; font-size: 0; }
  .settings-store-preview .icon { width: 17px; height: 17px; }
  .settings-store-preview .icon:last-child { display: none; }
  .settings-section-head { align-items: flex-start; flex-direction: column; gap: .65rem; }
  .settings-section-link { padding: 0; }
  .settings-workspace .settings-layout .card,
  .settings-workspace > .tab-panel .card { padding: 1rem; border-radius: 13px; }
  .settings-action-card { grid-template-columns: 40px minmax(0, 1fr); }
  .settings-action-card .btn { grid-column: 1 / -1; width: 100%; }
  .settings-security-summary { align-self: flex-start; }
  .settings-workspace .integration-service-summary { min-height: 220px; }
  #settings-submit { width: 100%; bottom: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .settings-tabs .tab-btn { transition: none; }
  .settings-tabs .tab-btn:hover { transform: none; }
}

/* ===== Lumia AI dashboard assistant ===== */
.dashboard-lumia-open .icon { width: 17px; height: 17px; }
body.lumia-chat-open, body.lumia-quota-open { overflow: hidden; }
.lumia-overlay {
  z-index: 1300; align-items: stretch; justify-content: flex-end; padding: 18px;
  opacity: 0; background: rgba(18, 16, 36, .48); backdrop-filter: blur(5px);
  transition: opacity .22s ease;
}
.lumia-overlay.is-open { opacity: 1; }
.lumia-chat {
  display: grid; grid-template-rows: auto 4px minmax(0, 1fr) auto;
  width: min(680px, 100%); height: calc(100vh - 36px); overflow: hidden;
  border: 1px solid rgba(91, 75, 190, .18); border-radius: 24px;
  background: #fbfaff; box-shadow: 0 30px 90px rgba(20, 16, 54, .3);
  transform: translateX(32px) scale(.985); opacity: 0;
  transition: transform .28s cubic-bezier(.2, .8, .2, 1), opacity .2s ease;
}
.lumia-overlay.is-open .lumia-chat { transform: translateX(0) scale(1); opacity: 1; }
.lumia-chat-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1rem 1.1rem; color: #fff;
  background:
    radial-gradient(circle at 92% -30%, rgba(190, 151, 255, .58), transparent 42%),
    linear-gradient(125deg, #252052 0%, #4e3aa0 62%, #7654c6 100%);
}
.lumia-identity, .lumia-head-actions, .lumia-identity > span:last-child {
  display: flex; align-items: center;
}
.lumia-identity { gap: .75rem; min-width: 0; }
.lumia-identity > span:last-child { flex-direction: column; align-items: flex-start; min-width: 0; }
.lumia-identity strong { font-size: 1rem; letter-spacing: -.01em; }
.lumia-identity small { overflow: hidden; color: rgba(255,255,255,.68); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.lumia-logo-glyph {
  display: inline-grid; place-items: center; color: currentColor;
  font-size: 1em; font-weight: 400; line-height: 1;
}
.lumia-mark {
  display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px;
  border: 1px solid rgba(255,255,255,.22); border-radius: 13px;
  background: rgba(255,255,255,.13); box-shadow: inset 0 1px rgba(255,255,255,.16);
}
.lumia-mark .icon { width: 20px; height: 20px; }
.lumia-mark .lumia-logo-glyph { font-size: 1.35rem; }
.lumia-head-actions { gap: .55rem; flex: none; }
.lumia-usage-pill {
  display: flex; align-items: baseline; gap: .3rem; padding: .4rem .6rem;
  border: 1px solid rgba(255,255,255,.17); border-radius: 999px;
  color: rgba(255,255,255,.72); background: rgba(16, 12, 48, .22); font-size: .66rem;
}
.lumia-usage-pill strong { color: #fff; font-size: .77rem; }
.lumia-icon-button {
  display: grid; place-items: center; width: 36px; height: 36px; padding: 0;
  border: 0; border-radius: 11px; color: #fff; background: rgba(255,255,255,.11);
  cursor: pointer; transition: background .18s ease, transform .18s ease;
}
.lumia-icon-button:hover { background: rgba(255,255,255,.2); transform: scale(1.04); }
.lumia-icon-button .icon { width: 17px; height: 17px; }
.lumia-usage-track { overflow: hidden; background: #e8e4f5; }
.lumia-usage-track > span {
  display: block; height: 100%; border-radius: 0 999px 999px 0;
  background: linear-gradient(90deg, #6d55dc, #a77aec); transition: width .4s ease, background .2s ease;
}
.lumia-usage-track.is-low > span { background: linear-gradient(90deg, #dc9b32, #efbd5f); }
.lumia-usage-track.is-empty > span { background: var(--red); }
.lumia-messages {
  overflow-y: auto; overscroll-behavior: contain; padding: 1.2rem 1.15rem 1.5rem;
  background:
    radial-gradient(circle at 6% 3%, rgba(119, 85, 221, .06), transparent 26%),
    linear-gradient(#fbfaff, #f8f7fc);
  scrollbar-color: #cbc5df transparent;
}
.lumia-message {
  display: flex; align-items: flex-start; gap: .65rem; max-width: 88%; margin: 0 0 1rem;
  animation: lumiaMessageIn .28s cubic-bezier(.2, .8, .2, 1) both;
}
.lumia-message-user { margin-left: auto; flex-direction: row-reverse; }
.lumia-message-avatar {
  display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px;
  border-radius: 10px; color: #fff; background: linear-gradient(135deg, #5543bb, #8a62df);
  box-shadow: 0 5px 14px rgba(80, 58, 174, .18);
}
.lumia-message-avatar svg {
  width: 15px; height: 15px; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.lumia-message-avatar > span { font-size: .58rem; font-weight: 800; }
.lumia-message-avatar > .lumia-logo-glyph { font-size: 1rem; font-weight: 400; }
.lumia-message-user .lumia-message-avatar { color: #55506c; background: #e7e4ef; box-shadow: none; }
.lumia-message-content { min-width: 0; }
.lumia-message-content > p {
  margin: 0; padding: .75rem .85rem; border: 1px solid #e5e1ef; border-radius: 6px 16px 16px 16px;
  color: #302d42; background: #fff; box-shadow: 0 7px 20px rgba(34, 28, 73, .045);
  font-size: .88rem; line-height: 1.55; white-space: pre-wrap;
}
.lumia-message-user .lumia-message-content > p {
  border-color: transparent; border-radius: 16px 6px 16px 16px; color: #fff;
  background: linear-gradient(135deg, #5141ac, #7053c8); box-shadow: 0 8px 22px rgba(76, 57, 169, .16);
}
.lumia-welcome { max-width: 100%; }
.lumia-welcome .lumia-message-content {
  padding: .9rem 1rem; border: 1px solid #e3dff0; border-radius: 6px 17px 17px 17px;
  background: rgba(255,255,255,.92); box-shadow: 0 9px 26px rgba(38, 31, 80, .05);
}
.lumia-welcome .lumia-message-content > strong { display: block; margin-bottom: .25rem; font-size: .94rem; }
.lumia-welcome .lumia-message-content > p { padding: 0; border: 0; border-radius: 0; color: var(--muted); background: none; box-shadow: none; font-size: .83rem; }
.lumia-capability-list { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; }
.lumia-capability-list span, .lumia-live-badge {
  padding: .25rem .45rem; border: 1px solid #e2dcf2; border-radius: 999px;
  color: #654da6; background: #f7f4ff; font-size: .64rem; font-weight: 720;
}
.lumia-starter-prompts { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin: .2rem 0 1rem 2.55rem; }
.lumia-starter-prompts[hidden] { display: none; }
.lumia-starter-prompts button, .lumia-message-suggestions button {
  padding: .62rem .7rem; border: 1px solid #dfd9ed; border-radius: 12px;
  color: #514179; background: rgba(255,255,255,.84); font: inherit; font-size: .75rem;
  font-weight: 680; text-align: left; cursor: pointer;
  transition: border-color .18s ease, color .18s ease, background .18s ease, transform .18s ease;
}
.lumia-starter-prompts button:hover, .lumia-message-suggestions button:hover {
  border-color: #aa98d7; color: #4930a0; background: #fff; transform: translateY(-1px);
}
.lumia-live-badge { display: inline-flex; margin-top: .4rem; color: #307458; border-color: #cce7db; background: #effaf5; }
.lumia-message-suggestions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.lumia-message-suggestions button { padding: .43rem .58rem; border-radius: 9px; font-size: .68rem; }
.lumia-typing {
  display: flex; align-items: center; gap: .28rem; min-height: 39px; padding: .65rem .8rem;
  border: 1px solid #e5e1ef; border-radius: 6px 16px 16px 16px; background: #fff;
}
.lumia-typing i { width: 6px; height: 6px; border-radius: 50%; background: #8d82a8; animation: lumiaDot 1.1s infinite ease-in-out; }
.lumia-typing i:nth-child(2) { animation-delay: .14s; }
.lumia-typing i:nth-child(3) { animation-delay: .28s; }
.lumia-action-card {
  margin-top: .55rem; overflow: hidden; border: 1px solid #d9d2eb; border-radius: 14px;
  background: #fff; box-shadow: 0 8px 24px rgba(42, 33, 86, .055);
}
.lumia-action-card.is-danger { border-color: #e9c2bf; }
.lumia-action-head { display: flex; gap: .65rem; padding: .75rem .8rem; }
.lumia-action-head > span {
  display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px;
  border-radius: 9px; color: #5a47b4; background: #f0edfb;
}
.lumia-action-card.is-danger .lumia-action-head > span { color: var(--red); background: var(--red-bg); }
.lumia-action-head svg, .lumia-action-result svg {
  width: 15px; height: 15px; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.lumia-action-head strong { display: block; font-size: .75rem; }
.lumia-action-head p { margin: .16rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.lumia-action-bulk {
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  margin-top: .55rem; padding: .5rem .55rem .5rem .75rem;
  border: 1px solid #d9d2eb; border-radius: 12px; background: #f6f3ff;
}
.lumia-action-bulk span { color: #4a3d7a; font-size: .7rem; font-weight: 650; }
.lumia-action-changes { padding: .1rem .8rem .7rem; }
.lumia-action-changes-title {
  display: block; margin-bottom: .4rem; color: var(--muted);
  font-size: .64rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase;
}
.lumia-action-change {
  display: grid; grid-template-columns: 84px 1fr; gap: .5rem; align-items: baseline;
  padding: .42rem .55rem; border: 1px solid #ece8f3; border-radius: 10px; background: #fbfaff;
}
.lumia-action-change + .lumia-action-change { margin-top: .35rem; }
.lumia-action-change-label { color: var(--muted); font-size: .67rem; font-weight: 700; }
.lumia-action-change-values {
  display: flex; align-items: baseline; gap: .38rem; min-width: 0; font-size: .72rem; line-height: 1.45;
}
.lumia-action-change.is-long { grid-template-columns: 1fr; gap: .3rem; }
.lumia-action-change.is-long .lumia-action-change-values { display: block; }
.lumia-action-change.is-long .lumia-action-change-before,
.lumia-action-change.is-long .lumia-action-change-after {
  display: block; max-height: 8.7em; overflow-y: auto; white-space: normal;
}
.lumia-action-change.is-long .lumia-action-change-arrow { display: block; margin: .3rem 0; transform: rotate(90deg); transform-origin: 6.5px 50%; }
.lumia-action-change-before {
  min-width: 0; color: var(--muted); text-decoration: line-through;
  overflow-wrap: anywhere;
}
.lumia-action-change-after { min-width: 0; font-weight: 650; overflow-wrap: anywhere; }
.lumia-action-change-arrow { flex: 0 0 auto; color: #5a47b4; }
.lumia-action-change-arrow svg {
  width: 13px; height: 13px; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.lumia-action-controls { display: flex; justify-content: flex-end; gap: .45rem; padding: .6rem .75rem; border-top: 1px solid #ece8f3; background: #fbfaff; }
.lumia-action-card > small { display: block; padding: .55rem .75rem; color: var(--muted); font-size: .68rem; }
.lumia-action-card.is-dismissed { opacity: .72; }
.lumia-action-card.is-complete { border-color: #bfe0cf; background: #fbfffd; }
.lumia-action-result { display: flex; align-items: center; gap: .4rem; padding: .62rem .75rem; border-top: 1px solid #d9eee3; color: #286746; font-size: .72rem; }
.lumia-action-result a { margin-left: auto; color: #286746; font-weight: 750; }
.lumia-action-error { margin: 0; padding: .55rem .75rem; border-top: 1px solid #f0d1cf; color: var(--red); background: var(--red-bg); font-size: .7rem; }
.lumia-composer-wrap { padding: .85rem 1rem .75rem; border-top: 1px solid #e6e2ef; background: rgba(255,255,255,.96); }
.lumia-composer {
  display: flex; align-items: flex-end; gap: .55rem; padding: .42rem .42rem .42rem .75rem;
  border: 1px solid #d8d2e5; border-radius: 16px; background: #fff;
  box-shadow: 0 8px 22px rgba(38, 29, 78, .055); transition: border-color .18s ease, box-shadow .18s ease;
}
.lumia-composer:focus-within { border-color: #8975c7; box-shadow: 0 0 0 3px rgba(101, 79, 179, .1); }
.lumia-composer textarea {
  width: 100%; min-height: 38px; max-height: 132px; padding: .5rem 0; resize: none;
  border: 0; outline: 0; background: transparent; font: inherit; font-size: .86rem; line-height: 1.4;
}
.lumia-composer textarea:disabled { cursor: not-allowed; opacity: .58; }
.lumia-send {
  display: grid; place-items: center; width: 39px; height: 39px; flex: 0 0 39px; padding: 0;
  border: 0; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #5844bb, #7d5bd6);
  box-shadow: 0 6px 15px rgba(84, 62, 179, .22); cursor: pointer; transition: transform .18s ease, opacity .18s ease;
}
.lumia-send:hover:not(:disabled) { transform: translateY(-1px) scale(1.025); }
.lumia-send:disabled { cursor: not-allowed; opacity: .45; }
.lumia-send .icon { width: 17px; height: 17px; }
.lumia-composer-meta { display: flex; justify-content: space-between; gap: 1rem; margin-top: .45rem; color: #858096; font-size: .61rem; }
.lumia-composer-meta span:first-child { display: inline-flex; align-items: center; gap: .25rem; }
.lumia-composer-meta .icon { width: 11px; height: 11px; }
.lumia-quota-overlay {
  z-index: 1400; opacity: 0; backdrop-filter: blur(7px); transition: opacity .18s ease;
}
.lumia-quota-overlay.is-open { opacity: 1; }
.lumia-quota-modal {
  position: relative; max-width: 500px; padding: 1.55rem; border: 1px solid #ddd5ef; border-radius: 20px;
  background: radial-gradient(circle at 100% 0, #eee6ff, transparent 38%), #fff;
  box-shadow: 0 28px 80px rgba(29, 22, 70, .24); transform: translateY(12px) scale(.98);
  transition: transform .2s cubic-bezier(.2, .8, .2, 1);
}
.lumia-quota-overlay.is-open .lumia-quota-modal { transform: translateY(0) scale(1); }
.lumia-quota-modal .modal-x {
  position: absolute; top: .8rem; right: .8rem; display: grid; place-items: center;
  width: 34px; height: 34px; padding: 0; border: 0; border-radius: 10px;
  color: var(--muted); background: rgba(245,243,249,.9); cursor: pointer;
}
.lumia-quota-modal .modal-x .icon { width: 15px; height: 15px; }
.lumia-quota-icon {
  display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: .75rem;
  border-radius: 14px; color: #fff; background: linear-gradient(135deg, #5a45bb, #8b63de);
  box-shadow: 0 8px 20px rgba(84, 61, 180, .2);
}
.lumia-quota-icon .icon { width: 21px; height: 21px; }
.lumia-quota-icon .lumia-logo-glyph { font-size: 1.4rem; }
.lumia-quota-eyebrow { display: block; margin-bottom: .25rem; color: #7258ba; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lumia-quota-modal h2 { max-width: 400px; margin-bottom: .45rem; font-size: 1.3rem; }
.lumia-quota-modal > p { margin-bottom: 1rem; font-size: .85rem; line-height: 1.55; }
.lumia-quota-meter { height: 8px; overflow: hidden; border-radius: 999px; background: #ece8f3; }
.lumia-quota-meter > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #dc9931, #efbd5f); transition: width .35s ease; }
.lumia-quota-actions { margin-top: 1.2rem; }
.sales-refund-original { display: block; margin-top: .18rem; color: var(--muted); font-size: .68rem; }

@keyframes lumiaMessageIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes lumiaDot {
  0%, 65%, 100% { transform: translateY(0); opacity: .42; }
  32% { transform: translateY(-4px); opacity: 1; }
}
@media (max-width: 720px) {
  .lumia-overlay { padding: 0; }
  .lumia-chat { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
  .lumia-chat-head { padding: .8rem; }
  .lumia-usage-pill span { display: none; }
  .lumia-message { max-width: 94%; }
  .lumia-messages { padding: 1rem .8rem 1.3rem; }
  .lumia-starter-prompts { grid-template-columns: 1fr; margin-left: 2.2rem; }
  .lumia-composer-wrap { padding: .7rem .75rem calc(.65rem + env(safe-area-inset-bottom)); }
  .lumia-composer-meta span:last-child { display: none; }
  .lumia-quota-actions { flex-direction: column-reverse; }
  .lumia-quota-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .lumia-overlay, .lumia-chat, .lumia-message, .lumia-typing i,
  .lumia-quota-overlay, .lumia-quota-modal, .lumia-usage-track > span {
    animation: none; transition: none;
  }
}
.checkbox-field { display: flex; align-items: flex-start; gap: .6rem; }
.checkbox-field input[type="checkbox"] { margin-top: .2rem; flex: none; width: auto; }
.upsell-modal-box {
  max-height: 92vh;
  max-width: 760px;
  overflow-y: auto;
  text-align: left;
  width: min(94vw, 760px);
}
.upsell-target-picker {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin: 0 0 1.25rem;
  padding: .85rem;
}
.upsell-target-picker legend { font-weight: 700; padding: 0 .35rem; }
.upsell-target-row {
  border-top: 1px solid var(--border);
  display: grid;
  gap: .45rem;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr);
  padding: .7rem .2rem;
}
.upsell-target-row.is-selected {
  background: #fafaff;
  box-shadow: 0 0 0 .45rem #fafaff;
}
.upsell-target-row > .hint { align-self: center; }
.upsell-target-row select[multiple] { min-height: 82px; }
@media (max-width: 680px) {
  .upsell-target-row { grid-template-columns: 1fr; }
}

/* ===== Analytics ===== */
.period-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap; margin-bottom: .35rem;
}
.period-presets { display: flex; gap: .4rem; flex-wrap: wrap; }
.period-custom { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.period-custom input[type="date"] {
  width: auto; padding: .3rem .5rem; font-size: .85rem;
  border: 1px solid var(--border); border-radius: var(--radius); font-family: inherit; background: var(--card);
}
.period-range { margin: 0 0 1.25rem; }

.analytics-ai-card { margin-bottom: 1.25rem; }
.analytics-ai-card .analytics-ai-launch-row {
  margin: 0; transition: border-radius .28s ease, border-color .28s ease;
}
.analytics-ai-card.is-open .analytics-ai-launch-row {
  margin-bottom: 0; border-bottom-color: #e6e2fa; border-radius: 12px 12px 0 0;
}
.analytics-ai-response {
  overflow: hidden; border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  border-top: 0; border-radius: 0 0 12px 12px;
  background: linear-gradient(150deg, color-mix(in srgb, var(--primary) 5%, #fff), #fff 50%);
  box-shadow: 0 18px 42px rgba(42, 31, 107, .08);
  animation: analyticsAiExpand .42s cubic-bezier(.22, 1, .36, 1) both;
}
.analytics-ai-response[hidden],
.analytics-ai-thinking[hidden],
.analytics-ai-error[hidden],
.analytics-ai-content[hidden],
.analytics-ai-disclaimer[hidden],
.analytics-ai-demo-badge[hidden] { display: none; }
.analytics-ai-response-inner { padding: 1.2rem 1.25rem 1.3rem; }
.analytics-ai-assistant {
  display: flex; align-items: center; gap: .45rem; margin-bottom: 1rem;
}
.analytics-ai-avatar {
  display: grid; place-items: center; flex: 0 0 auto;
  color: var(--text); background: none; font-size: 1.05rem; line-height: 1;
}
.analytics-ai-avatar .icon { width: 18px; height: 18px; }
.analytics-ai-assistant > div { display: grid; gap: .05rem; }
.analytics-ai-title { margin: 0; color: var(--text); font-size: .92rem; font-weight: 700; letter-spacing: -.01em; }
.analytics-ai-assistant .eyebrow { margin: 0; font-size: .68rem; }
.analytics-ai-period { color: var(--muted); font-size: .76rem; }
.analytics-ai-demo-badge {
  display: inline-flex; margin-left: auto; padding: .24rem .52rem; border-radius: 999px;
  color: #755214; background: #fff4d6; font-size: .68rem; font-weight: 750;
}
.analytics-ai-thinking {
  display: flex; align-items: center; gap: .75rem; min-height: 82px;
  color: #5e5293; font-size: .9rem;
}
.analytics-ai-thinking-dots { display: inline-flex; align-items: center; gap: 4px; }
.analytics-ai-thinking-dots i {
  display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--primary);
  animation: analyticsAiDot 1.1s ease-in-out infinite;
}
.analytics-ai-thinking-dots i:nth-child(2) { animation-delay: .14s; }
.analytics-ai-thinking-dots i:nth-child(3) { animation-delay: .28s; }
.analytics-ai-error {
  margin: .2rem 0 0; padding: .85rem 1rem; border: 1px solid #f1caca;
  border-radius: 10px; background: #fff6f6;
}
.analytics-ai-message {
  max-width: 900px; opacity: 0; transform: translateY(5px);
  transition: opacity .32s ease, transform .32s ease;
}
.analytics-ai-message.is-visible { opacity: 1; transform: none; }
.analytics-ai-headline { margin: 0 0 .45rem; font-size: 1.22rem; letter-spacing: -.015em; }
.analytics-ai-summary { margin: 0; max-width: 850px; color: #4b4960; line-height: 1.65; }
.analytics-ai-insights {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem;
  margin-top: 1.15rem;
}
.analytics-ai-insight {
  position: relative; overflow: hidden; min-width: 0; padding: .95rem;
  border: 1px solid #e7e4f4; border-radius: 12px; background: rgba(255, 255, 255, .84);
  box-shadow: 0 6px 18px rgba(42, 31, 107, .045); opacity: 0; transform: translateY(8px);
  transition: opacity .3s ease, transform .3s ease, box-shadow .2s ease;
}
.analytics-ai-insight::before {
  position: absolute; inset: 0 auto 0 0; width: 3px; content: ''; background: #6f63db;
}
.analytics-ai-insight.is-attention::before { background: #e49337; }
.analytics-ai-insight.is-win::before { background: #28a278; }
.analytics-ai-insight.is-visible { opacity: 1; transform: none; }
.analytics-ai-insight:hover { box-shadow: 0 10px 24px rgba(42, 31, 107, .08); }
.analytics-ai-insight-heading { min-height: 64px; }
.analytics-ai-insight-kind {
  display: inline-flex; margin-bottom: .42rem; color: #665bc5;
  font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
}
.analytics-ai-insight.is-attention .analytics-ai-insight-kind { color: #E49337; }
.analytics-ai-insight.is-win .analytics-ai-insight-kind { color: #187f5d; }
.analytics-ai-insight h3 { margin: 0; font-size: .96rem; line-height: 1.35; }
.analytics-ai-evidence { margin: .65rem 0 0; color: #56536a; font-size: .82rem; line-height: 1.55; }
.analytics-ai-action {
  margin-top: .8rem; padding-top: .72rem; border-top: 1px solid #eeecf6;
}
.analytics-ai-action strong { display: block; margin-bottom: .22rem; color: var(--text); font-size: .73rem; }
.analytics-ai-action p { margin: 0; color: #555168; font-size: .8rem; line-height: 1.5; }
.analytics-ai-content .is-typing::after {
  display: inline-block; width: 2px; height: .95em; margin-left: 3px; border-radius: 2px;
  background: var(--primary); content: ''; vertical-align: -.08em;
  animation: analyticsAiCursor .7s steps(1) infinite;
}
.analytics-ai-disclaimer {
  margin: 1rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.45;
}
@keyframes analyticsAiExpand {
  from { opacity: 0; transform: translateY(-7px); }
  to { opacity: 1; transform: none; }
}
@keyframes analyticsAiDot {
  0%, 60%, 100% { opacity: .35; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-4px); }
}
@keyframes analyticsAiCursor { 0%, 48% { opacity: 1; } 49%, 100% { opacity: 0; } }
@media (max-width: 900px) {
  .analytics-ai-insights { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 650px) {
  .analytics-ai-launch-row { align-items: stretch; flex-direction: column; }
  .analytics-ai-launch-row .btn { justify-content: center; width: 100%; }
  .analytics-ai-response-inner { padding: 1rem; }
  .analytics-ai-insights { grid-template-columns: 1fr; }
  .analytics-ai-insight-heading { min-height: 0; }
  .analytics-ai-demo-badge { align-self: flex-start; margin-left: auto; }
}

.stats-row-5 { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }

.analytics-empty-notice {
  display: flex; align-items: center; gap: .85rem; margin-bottom: 1.25rem; padding: .9rem 1rem;
  border: 1px solid #e0e1e9; border-radius: 14px; background: #f8f8fa;
}
.analytics-empty-notice-icon {
  display: grid; flex: 0 0 38px; place-items: center; width: 38px; height: 38px;
  border-radius: 11px; color: #555863; background: #e9e9ed;
}
.analytics-empty-notice-icon .icon { width: 19px; height: 19px; }
.analytics-empty-notice h2 { margin: 0 0 .12rem; font-size: .96rem; }
.analytics-empty-notice p { margin: 0; color: var(--muted); font-size: .8rem; }
.analytics-card { margin-bottom: 1.25rem; }
.analytics-card .card-title { margin-bottom: .35rem; }
.analytics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; align-items: start; }
@media (max-width: 900px) { .analytics-grid { grid-template-columns: 1fr; } }
.analytics-grid .analytics-card { margin-bottom: 0; }
.analytics-grid { margin-bottom: 1.25rem; }

.chart-holder { position: relative; height: 220px; margin-top: 1rem; }
.chart-holder + .chart-holder { height: 140px; margin-top: .5rem; }
.pie-holder { height: 260px; }

/* Entonnoir de conversion */
.funnel { margin-top: 1rem; display: flex; flex-direction: column; gap: .55rem; }
.funnel-row { display: grid; grid-template-columns: 150px 1fr 110px; align-items: center; gap: .8rem; }
.funnel-label { font-size: .88rem; color: var(--muted); text-align: right; }
.funnel-track { background: #f1f1f8; border-radius: 4px; height: 26px; overflow: hidden; }
.funnel-bar { height: 100%; border-radius: 0 4px 4px 0; transition: width .3s ease; }
.funnel-value { font-weight: 700; font-size: .95rem; white-space: nowrap; }
.funnel-value .hint { font-weight: normal; margin-left: .25rem; }

/* ===== Analytics : animations au défilement (public/js/analytics.js) =====
   L'état caché n'existe que sous .analytics-motion, posé par le script quand
   les animations sont permises : sans JS, tout reste visible. */
.analytics-motion [data-reveal] {
  opacity: 0;
  transform: translateY(26px) scale(.98);
  transition: opacity .75s cubic-bezier(.22, 1, .36, 1), transform .9s cubic-bezier(.22, 1, .36, 1),
    box-shadow .9s ease;
  transition-delay: var(--reveal-delay, 0ms);
}
.analytics-motion [data-reveal].is-revealed { opacity: 1; transform: none; }
/* Les petites cartes de stats arrivent nettes après un léger flou. */
.analytics-motion .stat-card[data-reveal] { filter: blur(6px); transform: translateY(18px) scale(.94); }
.analytics-motion .stat-card[data-reveal].is-revealed {
  filter: blur(0); transform: none;
  transition-property: opacity, transform, filter;
}
.stat-value.is-counting { font-variant-numeric: tabular-nums; }
/* Titre et texte d'une carte suivent la carte avec un temps de retard. */
.analytics-motion .analytics-card[data-reveal] > .card-title,
.analytics-motion .analytics-card[data-reveal] > .page-head,
.analytics-motion .analytics-card[data-reveal] > .hint,
.analytics-motion .utm-panel[data-reveal] .utm-panel-heading {
  opacity: 0; transform: translateX(-12px);
  transition: opacity .6s ease, transform .7s cubic-bezier(.22, 1, .36, 1);
  transition-delay: calc(var(--reveal-delay, 0ms) + 120ms);
}
.analytics-motion .analytics-card.is-revealed > .card-title,
.analytics-motion .analytics-card.is-revealed > .page-head,
.analytics-motion .analytics-card.is-revealed > .hint,
.analytics-motion .utm-panel.is-revealed .utm-panel-heading { opacity: 1; transform: none; }
/* Blocs de graphiques : un simple fondu, sans taille ni décalage — c'est le
   graphique lui-même que Chart.js anime. */
.analytics-motion .analytics-card[data-reveal]:has(canvas) { transform: none; transition: opacity .45s ease; }
/* Lignes de listes en attente de leur entrée (jouée par le script). */
.analytics-motion .is-row-pending { opacity: 0; }
/* Entonnoir : chaque barre se remplit de gauche à droite, en cascade. */
.analytics-motion .funnel-bar {
  clip-path: inset(0 100% 0 0 round 0 4px 4px 0);
  transition: clip-path 1.2s cubic-bezier(.22, 1, .36, 1), width .3s ease;
}
.analytics-motion .is-revealed .funnel-bar { clip-path: inset(0 0 0 0 round 0 4px 4px 0); }
.analytics-motion .is-revealed .funnel-row:nth-child(1) .funnel-bar { transition-delay: calc(var(--reveal-delay, 0ms) + 250ms); }
.analytics-motion .is-revealed .funnel-row:nth-child(2) .funnel-bar { transition-delay: calc(var(--reveal-delay, 0ms) + 340ms); }
.analytics-motion .is-revealed .funnel-row:nth-child(3) .funnel-bar { transition-delay: calc(var(--reveal-delay, 0ms) + 430ms); }
.analytics-motion .is-revealed .funnel-row:nth-child(4) .funnel-bar { transition-delay: calc(var(--reveal-delay, 0ms) + 520ms); }
.analytics-motion .is-revealed .funnel-row:nth-child(n+5) .funnel-bar { transition-delay: calc(var(--reveal-delay, 0ms) + 610ms); }
/* Carte du monde : les pays gris retrouvent leur couleur un à un (délais posés par le script). */
.analytics-motion #world-map .jvm-region { transition: fill 1.8s cubic-bezier(.4, 0, .2, 1); }
@media (max-width: 600px) { .funnel-row { grid-template-columns: 105px 1fr 90px; } .funnel-label { font-size: .78rem; } }

/* Tableaux triables */
.table-sortable th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.table-sortable th[data-sort]:hover { color: var(--text); }
.table-sortable th[data-sort]::after { content: '↕'; opacity: .35; margin-left: .3rem; font-size: .75rem; }
.table-sortable th[data-sorted="desc"]::after { content: '▼'; opacity: 1; color: var(--primary); }
.table-sortable th[data-sorted="asc"]::after { content: '▲'; opacity: 1; color: var(--primary); }

/* Carte du monde */
.map-metric-select { width: auto; font-size: .88rem; padding: .35rem .6rem; }
#world-map { width: 100%; height: 380px; margin-top: .5rem; }
.analytics-map-empty { margin: .15rem 0 0; text-align: center; }
.countries-table { margin-top: 1.25rem; }
.jvm-tooltip { font-family: inherit; }
@media (max-width: 600px) { #world-map { height: 240px; } }

/* Attribution marketing approfondie */
.analytics-depth {
  margin: 1.5rem 0; overflow: hidden; border: 1px solid #d9d6f6;
  border-radius: 17px; background: linear-gradient(145deg, #f8f7ff, #fff);
  box-shadow: 0 10px 30px rgba(44, 38, 95, .07);
}
.analytics-depth > summary {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center; gap: .9rem; padding: 1.15rem 1.3rem; cursor: pointer;
  list-style: none; user-select: none;
}
.analytics-depth > summary::-webkit-details-marker { display: none; }
.analytics-depth > summary:hover { background: rgba(91, 104, 227, .035); }
.analytics-depth-summary-icon {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px;
  color: #fff; background: linear-gradient(135deg, var(--primary), #8272ed);
}
.analytics-depth-summary-copy, .analytics-depth-summary-metric { display: grid; gap: .12rem; }
.analytics-depth-summary-copy strong { font-size: 1.02rem; }
.analytics-depth-summary-copy small, .analytics-depth-summary-metric small {
  color: var(--muted); font-size: .78rem;
}
.analytics-depth-summary-metric { text-align: right; }
.analytics-depth-summary-metric strong { color: var(--primary); font-size: 1.05rem; }
.analytics-depth-chevron {
  display: grid; place-items: center; color: var(--muted);
  transition: transform .2s ease;
}
.analytics-depth[open] .analytics-depth-chevron { transform: rotate(180deg); }
.analytics-depth-body {
  padding: 1.3rem; border-top: 1px solid #e2dff8; background: #fafafe;
  animation: detailsReveal .25s ease both;
}
.analytics-depth-intro {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1.2rem;
  margin-bottom: 1.2rem;
}
.analytics-depth-intro h2, .analytics-depth-intro p { margin: 0; }
.analytics-depth-intro p { max-width: 780px; margin-top: .3rem; }
.utm-empty-state { margin: .5rem 0 0; background: #fff; }
.utm-empty-icon {
  display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto .7rem;
  border-radius: 50%; color: var(--primary); background: #efedff;
}
.utm-overview-stats { grid-template-columns: repeat(3, minmax(150px, 1fr)); margin-bottom: 1.1rem; }
.utm-overview-stats .stat-card { min-width: 0; }
.utm-overview-stats .stat-card small {
  display: block; margin-top: .35rem; color: var(--muted); font-size: .72rem;
}
.utm-panel {
  margin-bottom: 1.1rem; padding: 1.1rem; border: 1px solid var(--border);
  border-radius: 14px; background: #fff;
}
.utm-panel h3, .utm-panel p { margin: 0; }
.utm-panel p { margin-top: .25rem; }
.utm-panel-heading {
  display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem;
  margin-bottom: .9rem;
}
.utm-trend-panel { padding-bottom: .8rem; }
.utm-chart-holder { height: 240px; margin-top: 0; }
.utm-filter-bar {
  display: grid; grid-template-columns: minmax(220px, 1fr) minmax(140px, auto) minmax(140px, auto) auto;
  gap: .55rem; margin-bottom: .8rem;
}
.utm-filter-bar input, .utm-filter-bar select { min-height: 40px; }
.utm-campaign-table { min-width: 1080px; margin: 0; }
.utm-campaign-table td { vertical-align: middle; }
.utm-source-medium { display: inline-flex; align-items: baseline; gap: .2rem; white-space: nowrap; }
.utm-source-medium small { color: var(--muted); }
.utm-filter-empty { padding: 1rem; text-align: center; }
.utm-breakdown-grid { align-items: stretch; margin-bottom: 0; }
.utm-breakdown-grid .utm-panel { margin: 0; min-width: 0; }
.utm-dimension-tabs {
  display: flex; gap: .25rem; margin-bottom: .75rem; padding-bottom: .45rem;
  overflow-x: auto; border-bottom: 1px solid var(--border);
}
.utm-dimension-tabs button {
  flex: 0 0 auto; padding: .45rem .65rem; border: 0; border-radius: 8px;
  background: transparent; color: var(--muted); font: inherit; font-size: .8rem;
  font-weight: 700; cursor: pointer;
}
.utm-dimension-tabs button:hover { color: var(--primary); background: #f5f4ff; }
.utm-dimension-tabs button.active { color: #fff; background: var(--primary); }
.utm-dimension-panel[hidden] { display: none; }
.utm-compact-table { margin: 0; }
.utm-compact-table th, .utm-compact-table td { padding: .58rem .65rem; font-size: .8rem; }
.utm-compact-table code {
  display: block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
@media (max-width: 760px) {
  .analytics-depth > summary { grid-template-columns: auto minmax(0, 1fr) auto; }
  .analytics-depth-summary-metric { display: none; }
  .analytics-depth-body { padding: .85rem; }
  .analytics-depth-intro { flex-direction: column; }
  .utm-overview-stats { grid-template-columns: repeat(2, minmax(125px, 1fr)); }
  .utm-filter-bar { grid-template-columns: 1fr 1fr; }
  .utm-filter-search { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .analytics-depth > summary { padding: .9rem; }
  .analytics-depth-summary-copy small { display: none; }
  .utm-overview-stats { grid-template-columns: 1fr; }
  .utm-filter-bar { grid-template-columns: 1fr; }
  .utm-filter-search { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .analytics-depth-body, .analytics-depth-chevron, .analytics-ai-response,
  .analytics-ai-message, .analytics-ai-insight, .analytics-ai-thinking-dots i,
  .analytics-ai-content .is-typing::after { animation: none; transition: none; }
}

/* ==========================================================================
   Communication — blogs et éditeur d'articles
   ========================================================================== */
.communication-head { align-items: flex-end; }
.dashboard-tabs {
  display: flex; gap: .35rem; margin: 0 0 1.25rem; padding: .3rem;
  width: fit-content; max-width: 100%; overflow-x: auto;
  border: 1px solid var(--border); border-radius: 12px; background: var(--card);
}
.dashboard-tabs a {
  display: inline-flex; align-items: center; gap: .45rem; padding: .65rem .9rem;
  border-radius: 9px; color: var(--muted); text-decoration: none; white-space: nowrap;
  font-weight: 650; font-size: .92rem;
}
.dashboard-tabs a:hover { background: #f5f4fb; color: var(--text); }
.dashboard-tabs a.active { background: var(--primary); color: #fff; }
.dashboard-tabs .icon { width: 1rem; height: 1rem; }
.dashboard-tabs.sliding-dashboard-tabs {
  position: relative; display: flex; gap: .25rem; width: 100%; padding: 0;
  overflow-x: auto; border: 0; border-bottom: 1px solid var(--border);
  border-radius: 0; background: transparent;
}
.dashboard-tabs.sliding-dashboard-tabs a {
  position: relative; z-index: 1; flex: 0 0 auto; padding: .72rem 1rem;
  border-radius: 0; background: transparent; font-weight: 700;
  transition: color .22s ease;
}
.dashboard-tabs.sliding-dashboard-tabs a:hover { color: var(--primary); background: transparent; }
.dashboard-tabs.sliding-dashboard-tabs a.active { color: var(--primary); background: transparent; }
.sliding-tab-indicator {
  position: absolute; bottom: 0; left: 0; z-index: 2; width: 0; height: 2px;
  border-radius: 999px 999px 0 0; background: var(--primary); pointer-events: none;
}
.sliding-dashboard-tabs.is-indicator-ready .sliding-tab-indicator {
  transition: width .34s cubic-bezier(.2, .8, .2, 1), transform .34s cubic-bezier(.2, .8, .2, 1);
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-tabs.sliding-dashboard-tabs a,
  .sliding-tab-indicator { transition: none !important; }
}
.communication-panel[hidden] { display: none; }
.blog-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 1.2rem; margin-bottom: 1.2rem; }
.blog-list-card, .blog-quick-card, .blog-articles-card { margin-bottom: 0; }
.blog-quick-card {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  background: linear-gradient(145deg, #201b4f, #5c4bea); color: #fff;
}
.blog-quick-card p { color: #dedaff; line-height: 1.6; }
.blog-quick-card .btn { background: #fff; color: #312b72; border-color: #fff; }
.blog-list { display: grid; }
.blog-row { display: flex; align-items: center; gap: .9rem; padding: 1rem 0; border-top: 1px solid var(--border); }
.blog-row:first-child { border-top: 0; }
.blog-row-main { min-width: 0; display: grid; gap: .15rem; flex: 1; }
.blog-row-main > a { color: var(--primary); font-size: .86rem; overflow: hidden; text-overflow: ellipsis; }
.blog-row-actions { display: flex; align-items: center; gap: .3rem; }
.blog-articles-card { margin-top: 1.2rem; }
.article-table-title { display: flex; align-items: center; gap: .75rem; min-width: 250px; }
.article-table-title > img { width: 58px; height: 46px; object-fit: cover; border-radius: 8px; }
.article-table-title > div { display: grid; gap: .15rem; }
.table-actions { white-space: nowrap; text-align: right; }
.tag-list { display: flex; flex-wrap: wrap; gap: .35rem; }
.tag-list.mini { margin-top: .15rem; }
.blog-tag {
  display: inline-flex; padding: .25rem .55rem; border-radius: 999px;
  background: color-mix(in srgb, var(--tag-color, var(--theme-primary, var(--primary))) 13%, transparent);
  color: var(--tag-color, var(--theme-primary, var(--primary))); font-size: .74rem; font-weight: 750;
}
.tag-list.mini .blog-tag { padding: .13rem .4rem; font-size: .68rem; }
.blog-empty-state { padding: 4.5rem 2rem; }
.blog-empty-icon {
  width: 62px; height: 62px; display: grid; place-items: center; margin: 0 auto 1rem;
  border-radius: 18px; background: #ece9ff; color: var(--primary);
}
.compact-empty { padding: 2rem; }

.blog-flow-modal { padding: 1rem; }
.blog-modal-box { width: min(760px, 96vw); max-height: 92vh; overflow-y: auto; position: relative; padding: 2rem; }
.article-create-modal { width: min(560px, 96vw); }
.modal-close { position: absolute; top: .8rem; right: .8rem; }
.blog-flow-progress { display: flex; gap: .4rem; margin-bottom: 1.6rem; padding-right: 2.4rem; }
.blog-flow-progress span { height: 4px; border-radius: 99px; flex: 1; background: #e8e7ef; }
.blog-flow-progress span.active { background: var(--primary); }
.eyebrow {
  display: block; color: var(--theme-primary, var(--primary)); font-size: .75rem;
  font-weight: 800; text-transform: uppercase; letter-spacing: .11em; margin-bottom: .35rem;
}
.blog-flow-step > h2, .article-create-modal > h2 { margin: 0 0 .35rem; }
.blog-flow-step > .hint, .article-create-modal > .hint { margin: 0 0 1.4rem; }
.blog-layout-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 1.1rem 0; }
.blog-layout-choice { position: relative; display: grid; gap: .45rem; cursor: pointer; }
.blog-layout-choice input { position: absolute; opacity: 0; pointer-events: none; }
.blog-layout-choice > strong, .blog-layout-choice > small { padding: 0 .25rem; }
.blog-layout-choice > small { color: var(--muted); line-height: 1.35; }
.blog-layout-schema {
  height: 140px; padding: 15px; display: flex; flex-direction: column; gap: 8px;
  border: 2px solid var(--border); border-radius: 12px; background: #fbfbfd;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.blog-layout-choice:hover .blog-layout-schema { transform: translateY(-1px); border-color: #bab5ef; }
.blog-layout-choice input:checked + .blog-layout-schema { border-color: var(--primary); box-shadow: 0 0 0 3px #ece9ff; }
.blog-layout-schema i { display: block; border-radius: 4px; }
.schema-cover { height: 62px; background: linear-gradient(135deg, #d9d5f8, #aaa2ef); }
.schema-title { height: 11px; width: 78%; background: #26233c; }
.schema-meta { height: 7px; width: 48%; background: #9b98aa; }
.schema-lines { height: 18px; background: repeating-linear-gradient(#dedce8 0 3px, transparent 3px 7px); }
.schema-title-cover-meta .schema-title,
.schema-title-meta-cover .schema-title { order: -2; }
.schema-title-cover-meta .schema-cover { order: -1; }
.schema-cover-meta-title .schema-meta { order: 2; }
.schema-cover-meta-title .schema-title { order: 3; }
.schema-title-meta-cover .schema-meta { order: -1; }
.form-error { color: var(--danger); margin: .7rem 0; font-weight: 650; }

.article-editor-head { align-items: flex-end; }
.back-link { color: var(--muted); text-decoration: none; font-size: .88rem; }
.back-link:hover { color: var(--primary); }
.article-editor-head h1 { margin: .3rem 0; }
.article-editor-statusline { display: flex; gap: .65rem; align-items: center; }
.badge-blue { background: #e6f1ff; color: #1766aa; }
.blog-article-layout { grid-template-columns: minmax(0, 1fr) 330px; }
.article-writing-card { padding: 1.5rem 1.7rem; }
.article-ai-launch-row {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin: -.25rem 0 1.25rem; padding: .9rem 1rem; border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, #fff), #fff);
}
.article-ai-launch-row > div { display: grid; gap: .15rem; }
.article-ai-launch-row .btn { flex: 0 0 auto; }
.article-writing-card #article-title { font-size: 1.45rem; font-weight: 750; padding: .8rem 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; }
.article-writing-card #article-title:focus { box-shadow: none; border-color: var(--primary); }
.editor-help { margin: .2rem 0 .8rem; }
kbd { padding: .08rem .35rem; border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 4px; background: #f8f7fb; font: inherit; }
.article-editor-holder { min-height: 420px; border: 1px solid var(--border); border-radius: 12px; padding: .5rem 1rem; }
.article-settings-card { padding: 0; overflow: hidden; }
.article-settings-card > summary {
  list-style: none; cursor: pointer; padding: 1rem 1.2rem; display: flex;
  justify-content: space-between; align-items: center; gap: 1rem; font-weight: 750;
}
.article-settings-card > summary::-webkit-details-marker { display: none; }
.article-settings-card > summary::after { content: '⌄'; color: var(--muted); }
.article-settings-card[open] > summary::after { transform: rotate(180deg); }
.article-settings-card[open] > summary { border-bottom: 1px solid var(--border); }
.article-settings-body { padding: 1.15rem 1.2rem; }
.article-advanced-card { padding: 1.3rem; }
.article-advanced-head h2 { margin: 0 0 .2rem; font-size: 1.15rem; }
.article-advanced-head p { margin: 0; }
.article-advanced-tabs { grid-template-columns: repeat(4, 1fr); margin-top: 1.1rem; }
.article-advanced-panel { display: grid; gap: 1rem; padding: .2rem; }
.article-advanced-panel[hidden] { display: none; }
.article-visibility-field { max-width: 540px; }
.article-schedule-field[hidden],
.article-private-sharing[hidden],
.article-private-emails[hidden],
.article-cover-alt[hidden],
.article-tag-suggestion-popover[hidden],
.article-tag-menu[hidden] { display: none !important; }
.article-private-sharing {
  padding: .95rem; border: 1px solid var(--border); border-radius: 12px;
  background: color-mix(in srgb, var(--primary) 4%, var(--card));
}
.article-private-sharing > .check-field { align-items: flex-start; margin: 0; }
.article-private-sharing > .check-field > span { display: grid; gap: .15rem; }
.article-private-sharing small { color: var(--muted); }
.article-private-emails { margin: .9rem 0 0 1.7rem; padding-top: .9rem; border-top: 1px solid var(--border); }
.article-schedule-field {
  display: grid; gap: .9rem; padding: 1rem; overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  border-radius: 13px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 6%, var(--card)), var(--card));
}
.article-schedule-heading { display: flex; align-items: center; gap: .75rem; }
.article-schedule-heading > div { display: grid; gap: .15rem; }
.article-schedule-heading small { color: var(--muted); font-size: .78rem; }
.article-schedule-icon {
  width: 38px; height: 38px; display: grid; place-items: center; flex: none;
  color: var(--primary); background: color-mix(in srgb, var(--primary) 11%, transparent); border-radius: 10px;
}
.article-date-picker {
  display: grid; grid-template-columns: .65fr 1.35fr .85fr auto .65fr auto .65fr;
  align-items: end; gap: .5rem;
}
.article-date-picker label { display: grid; gap: .28rem; min-width: 0; }
.article-date-picker label > span { color: var(--muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; letter-spacing: .055em; }
.article-date-picker select { min-width: 0; height: 44px; padding: .55rem 1.7rem .55rem .65rem; font-variant-numeric: tabular-nums; }
.article-date-at, .article-date-separator { color: var(--muted); padding-bottom: .72rem; font-weight: 700; }
.article-builder-note {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1rem; border: 1px solid var(--border); border-radius: 10px;
}
.article-builder-note p { margin: .25rem 0 0; }
.article-recommendations-settings { display: grid; gap: .7rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.article-recommendations-settings > p { margin: 0; }
.field-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.article-cover-preview { aspect-ratio: 16 / 10; height: auto; }
.article-url-preview { display: grid; gap: .35rem; font-size: .78rem; color: var(--muted); }
.article-url-preview input { font-size: .9rem; color: var(--text); }
.article-cover-alt { margin-top: .8rem; }
.article-theme-settings { display: grid; gap: .9rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.article-theme-preview {
  padding: .65rem; border: 1px solid var(--border); border-radius: 14px;
  background: repeating-linear-gradient(135deg, #f6f5fa 0 8px, #efedf5 8px 16px);
}
.article-theme-preview-page {
  padding: 1.15rem; overflow: hidden; color: var(--theme-text); background: var(--theme-bg);
  border: 1px solid var(--theme-border); border-radius: 10px; font-family: var(--theme-font-body, inherit);
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.article-theme-preview-page .eyebrow { color: var(--theme-primary); }
.article-theme-preview-page h3 {
  color: var(--theme-h1); font-family: var(--theme-font-heading, inherit); font-size: 1.35rem; margin: .15rem 0 .8rem;
}
.article-theme-preview-content {
  padding: .85rem; color: var(--theme-text); background: var(--theme-bg);
  border: 1px solid var(--theme-border); border-radius: 8px; font-family: var(--theme-font-body, inherit);
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.article-theme-preview-content p { margin: 0 0 .65rem; }
.read-time-control { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; }
.read-time-control input { width: 90px; }
.article-recommendation-list { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.article-recommendation-list .check-item { display: flex; align-items: flex-start; gap: .6rem; padding: .75rem; border: 1px solid var(--border); border-radius: 9px; }
.article-recommendation-list .check-item span { display: grid; gap: .1rem; }
.article-recommendation-list small { color: var(--muted); }
.article-delete-button { width: 100%; margin-top: .4rem; }
.article-button-tool { display: flex; flex-direction: column; align-items: flex-start; margin: .7rem 0; }
.article-button-tool[data-align="center"] { align-items: center; }
.article-button-tool[data-align="right"] { align-items: flex-end; }
.article-button-tool > .btn { font: inherit; font-weight: 600; }
/* Menu « Button settings » du bloc bouton. */
.button-settings-menu .pe-settings-section:first-child { border-top: 0; }
.button-settings-stack .pe-settings-row { display: grid; grid-template-columns: 1fr; gap: .25rem; }
.button-settings-stack input[type="text"] {
  width: 100%; padding: .42rem .55rem; border: 1px solid var(--border); border-radius: 8px;
  background: var(--card); color: var(--text); font: inherit; font-size: .8rem;
}
.button-settings-advanced > summary {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  color: var(--text); font-size: .68rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase;
  cursor: pointer; list-style: none;
}
.button-settings-advanced > summary::-webkit-details-marker { display: none; }
.button-settings-advanced > summary::after {
  content: ''; width: 7px; height: 7px; margin-right: .2rem; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
  transform: rotate(45deg); transition: transform .2s ease;
}
.button-settings-advanced[open] > summary::after { transform: rotate(-135deg); }
.button-settings-advanced-body { display: grid; gap: .4rem; padding-top: .45rem; animation: fadeInUp .2s ease both; }
.article-tag-field { position: relative; }
.article-tag-composer { display: grid; grid-template-columns: minmax(0, 1fr); gap: .4rem; }
.article-tag-composer input { padding-left: .85rem; }
.article-tag-selected { display: flex; flex-wrap: wrap; gap: .45rem; min-height: 8px; margin-top: .55rem; }
.article-tag-chip {
  position: relative; display: inline-flex; align-items: center; gap: .38rem; max-width: 100%; padding: .32rem .32rem .32rem .58rem;
  border: 1px solid color-mix(in srgb, var(--tag-color) 34%, transparent);
  border-radius: 999px; background: color-mix(in srgb, var(--tag-color) 10%, #fff);
  color: var(--tag-color); font-size: .76rem; font-weight: 750;
}
.article-tag-chip > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.article-tag-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--tag-color); }
.article-tag-color-input {
  position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;
}
.article-tag-chip .article-tag-menu-toggle {
  width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: transparent;
  color: currentColor; font-size: 1.1rem; line-height: 1; cursor: pointer;
}
.article-tag-chip .article-tag-menu-toggle:hover,
.article-tag-chip .article-tag-menu-toggle[aria-expanded="true"] { background: color-mix(in srgb, var(--tag-color) 15%, transparent); }
.article-tag-suggestion-popover {
  position: absolute; z-index: 40; top: 73px; left: 0; right: 0; padding: .35rem;
  background: var(--card); border: 1px solid var(--border); border-radius: 11px;
  box-shadow: 0 12px 34px rgba(25, 22, 55, .16);
}
.article-tag-suggestions { display: grid; gap: .18rem; }
.article-tag-suggestion {
  display: flex; align-items: center; gap: .6rem; width: 100%; border: 0; border-radius: 8px;
  padding: .55rem .65rem; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer;
}
.article-tag-suggestion:hover { background: color-mix(in srgb, var(--tag-color) 9%, #f7f7fa); }
.article-tag-suggestion > i { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--tag-color); }
.article-tag-suggestion > span { display: grid; gap: .05rem; }
.article-tag-suggestion strong { font-size: .8rem; }
.article-tag-suggestion small { color: var(--muted); font-size: .68rem; }
.article-tag-menu {
  position: absolute; z-index: 60; top: calc(100% + 6px); right: 0; width: 190px;
  padding: .35rem; color: var(--text); background: var(--card); border: 1px solid var(--border);
  border-radius: 11px; box-shadow: 0 12px 34px rgba(25, 22, 55, .18);
}
.article-tag-menu-item {
  display: flex; align-items: center; gap: .6rem; width: 100%; padding: .55rem .6rem;
  border: 0; border-radius: 7px; background: transparent; color: var(--text); font: inherit;
  font-size: .78rem; font-weight: 650; text-align: left; cursor: pointer;
}
.article-tag-menu-item:hover { background: #f2f0f7; }
.article-tag-menu-item.is-danger { color: var(--danger); }
.article-tag-menu-icon { width: 20px; color: var(--muted); text-align: center; }
.article-tag-menu-form { display: grid; gap: .55rem; padding: .2rem; }
.article-tag-menu-form input { min-width: 0; padding: .5rem .55rem; font-size: .78rem; }
.article-tag-menu-form-actions { display: flex; gap: .35rem; justify-content: flex-end; }
.article-tag-delete-confirm { margin: .2rem .25rem .6rem; color: var(--text); font-size: .77rem; line-height: 1.4; }
.article-ai-modal-box { width: min(680px, 96vw); max-width: none; max-height: 92vh; overflow-y: auto; position: relative; }
.article-ai-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: .55rem; margin: .8rem 0; }
.article-ai-options .check-field { padding: .65rem; border: 1px solid var(--border); border-radius: 9px; }
.article-ai-warning { padding: .75rem; border-radius: 9px; background: #fff8e8; color: #825d0a !important; font-size: .83rem; }

/* Pages publiques du blog */
.public-blog, .public-article {
  --theme-primary: var(--primary); --theme-text: var(--text); --theme-muted: var(--muted);
  --theme-card: #fff; --theme-border: var(--border); --theme-bg: #fff;
  margin: 0 calc(50% - 50vw);
  padding: var(--blog-pad-top, 4rem) max(1rem, var(--blog-pad-right, 1rem))
    var(--blog-pad-bottom, 4rem) max(1rem, var(--blog-pad-left, 1rem));
  background: var(--theme-bg); color: var(--theme-text); font-family: var(--theme-font-body, inherit);
  background-size: cover; background-position: center;
}
.public-blog-inner { width: 100%; max-width: var(--blog-core-maxw, 1100px); margin: 0 auto; }
.public-blog h1, .public-blog h2, .public-article h1, .public-article h2 { font-family: var(--theme-font-heading, inherit); color: var(--theme-h1, var(--theme-text)); }
.public-blog-head { max-width: 760px; margin-bottom: 2rem; }
.public-blog-head :is(h1, h2, h3, h4) { font-size: clamp(2.2rem, 6vw, 4rem); margin: 0 0 .4rem; line-height: 1; }
.public-blog-grid { display: grid; grid-template-columns: repeat(var(--blog-columns, 3), minmax(0, 1fr)); gap: 1.3rem; }
.public-blog-card { background: var(--theme-card); border: 1px solid var(--theme-border); border-radius: 16px; overflow: hidden; min-width: 0; }
.public-blog-card-link { color: inherit; text-decoration: none; display: block; height: 100%; }
.public-blog-card-cover { aspect-ratio: 16 / 10; overflow: hidden; background: color-mix(in srgb, var(--theme-primary) 10%, var(--theme-bg)); }
.public-blog-card-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.public-blog-card:hover .public-blog-card-cover img { transform: scale(1.035); }
.blog-cover-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: var(--theme-primary); }
.public-blog-card-body { padding: 1.15rem; }
.public-blog-card :is(h1, h2, h3, h4) { margin: .6rem 0 .45rem; font-size: 1.28rem; line-height: 1.2; }
.public-blog-card p { color: var(--theme-muted); line-height: 1.55; margin: 0 0 .8rem; }
.article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; color: var(--theme-muted, var(--muted)); font-size: .8rem; }
.public-blog-grid.layout-list { grid-template-columns: 1fr; }
.public-blog-grid.layout-list .public-blog-card-link { display: grid; grid-template-columns: minmax(180px, 32%) 1fr; }
.public-blog-grid.layout-list .public-blog-card-cover { aspect-ratio: auto; min-height: 190px; }
.public-blog-grid.layout-magazine .public-blog-card:first-child { grid-column: span 2; }
.public-blog-grid.layout-magazine .public-blog-card:first-child :is(h1, h2, h3, h4) { font-size: 1.75rem; }
.blog-pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; }

.public-article { padding-top: 3rem; padding-bottom: 5rem; }
.public-article-inner { width: 100%; max-width: var(--blog-core-maxw, 900px); margin: 0 auto; }
.public-article-back { display: inline-flex; margin-bottom: 2rem; color: var(--theme-muted); }
.public-article-hero { display: flex; flex-direction: column; margin-bottom: 2.4rem; }
.public-article-title { order: 1; }
.public-article-title :is(h1, h2, h3, h4) { font-size: clamp(2.2rem, 6vw, 4.5rem); line-height: 1.04; margin: 0; }
.public-article-meta { order: 2; display: grid; gap: .75rem; margin: .8rem 0 1.4rem; }
.public-article-cover { order: 3; margin: 0; border-radius: 20px; overflow: hidden; }
.public-article-cover img { display: block; width: 100%; max-height: 620px; object-fit: cover; }
.public-article h1 { font-size: clamp(2.35rem, 7vw, 4.8rem); line-height: 1.02; letter-spacing: -.04em; margin: 0; }
.public-article.layout-cover-title-meta .public-article-cover { order: 0; margin-bottom: 1.8rem; }
.public-article.layout-cover-meta-title .public-article-cover { order: 0; margin-bottom: 1.2rem; }
.public-article.layout-cover-meta-title .public-article-meta { order: 1; }
.public-article.layout-cover-meta-title .public-article-title { order: 2; margin-bottom: 1rem; }
.public-article.layout-title-meta-cover .public-article-title { order: 0; }
.public-article.layout-title-meta-cover .public-article-meta { order: 1; }
.public-article.layout-title-meta-cover .public-article-cover { order: 2; }
.public-article-content {
  max-width: 800px; margin: 0 auto; padding: clamp(1rem, 3vw, 2rem);
  color: var(--theme-text); background: var(--theme-bg); border: 1px solid var(--theme-border);
  border-radius: 16px; font-family: var(--theme-font-body, inherit); font-size: 1.07rem; line-height: 1.8;
}
.public-article-content h1, .public-article-content h2, .public-article-content h3, .public-article-content h4 { color: var(--theme-h2, var(--theme-text)); line-height: 1.2; margin-top: 1.7em; }
.public-article-content .rb-image.align-left { text-align: left; }
.public-article-content .rb-image.align-center { text-align: center; }
.public-article-content .rb-image.align-right { text-align: right; }
.public-article-content .rb-image img { max-height: 680px; object-fit: contain; }
.rb-button { display: flex; margin: 1.5rem 0; }
.rb-button.align-center { justify-content: center; }
.rb-button.align-right { justify-content: flex-end; }
/* Réglages du bloc bouton : taille, arrondi et animation au survol. Ils
   l'emportent sur ceux du thème, d'où la classe .btn doublée. */
.btn.btn.rb-btn-sm { padding: .38rem .8rem; font-size: .85rem; }
.btn.btn.rb-btn-lg { padding: .85rem 1.7rem; font-size: 1.08rem; }
.btn.btn.rb-btn-radius-square { border-radius: 0; }
.btn.btn.rb-btn-radius-rounded { border-radius: 10px; }
.btn.btn.rb-btn-radius-pill { border-radius: 999px; }
.btn.btn[class*="rb-btn-anim-"] { position: relative; overflow: hidden; }
.btn.btn.rb-btn-anim-none:hover { transform: none; box-shadow: none; animation: none; filter: none; letter-spacing: normal; }
.btn.btn.rb-btn-anim-none::after { content: none; }
.btn.btn.rb-btn-anim-lift:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, .18); animation: none; }
.btn.btn.rb-btn-anim-grow:hover { transform: scale(1.05); box-shadow: none; animation: none; }
.btn.btn.rb-btn-anim-shine::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; transform: translateX(-110%) skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent);
}
.btn.btn.rb-btn-anim-shine:hover { transform: none; animation: none; }
.btn.btn.rb-btn-anim-shine:hover::after { transform: translateX(110%) skewX(-18deg); transition: transform .55s ease; }
.btn.btn.rb-btn-anim-pulse:hover { transform: none; animation: rbBtnPulse 1s ease infinite; }
@keyframes rbBtnPulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 35%, transparent); }
  70% { box-shadow: 0 0 0 10px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) {
  .btn.btn[class*="rb-btn-anim-"]:hover { transform: none; animation: none; }
  .btn.btn.rb-btn-anim-shine::after { content: none; }
}
.article-recommendations { margin-top: 4rem; padding-top: 2.5rem; border-top: 1px solid var(--theme-border); }
.article-recommendations .section-heading-row :is(h1, h2, h3, h4) { margin: 0; }
.article-recommendation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; margin-top: 1.2rem; }
.article-recommendation-card { display: grid; color: inherit; text-decoration: none; border: 1px solid var(--theme-border); border-radius: 13px; overflow: hidden; background: var(--theme-card); }
.article-recommendation-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.article-recommendation-card > span { display: grid; gap: .3rem; padding: .8rem; }
.article-recommendation-card small, .article-recommendation-card em { color: var(--theme-muted); font-size: .75rem; font-style: normal; }
.pb-blog_index .pb-contain, .pb-blog_post .pb-contain { width: 100%; }
.pb-blog-index-preview .public-blog-head :is(h1, h2, h3, h4) { font-size: clamp(2rem, 5vw, 3.5rem); }
.pb-blog-post-preview { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; }
.pb-blog-post-cover { order: 3; aspect-ratio: 16 / 8; border-radius: 16px; overflow: hidden; background: color-mix(in srgb, var(--theme-primary) 10%, var(--theme-bg)); display: grid; place-items: center; color: var(--theme-primary); }
.pb-blog-post-cover img { width: 100%; height: 100%; object-fit: cover; }
.pb-blog-post-title { order: 1; }
.pb-blog-post-title h1 { margin: 0; font-size: clamp(2rem, 6vw, 4rem); line-height: 1.03; }
.pb-blog-post-meta { order: 2; margin: .7rem 0 1.3rem; color: var(--theme-muted); }
.pb-blog-post-body {
  order: 4; max-width: 720px; margin: 2rem auto 0; padding: 1rem;
  color: var(--theme-text); background: var(--theme-bg); border: 1px solid var(--theme-border);
  border-radius: 12px; font-family: var(--theme-font-body, inherit); font-size: 1.05rem; line-height: 1.7;
}
.pb-blog-post-preview.layout-cover-title-meta .pb-blog-post-cover { order: 0; margin-bottom: 1.5rem; }
.pb-blog-post-preview.layout-cover-meta-title .pb-blog-post-cover { order: 0; margin-bottom: 1rem; }
.pb-blog-post-preview.layout-cover-meta-title .pb-blog-post-meta { order: 1; }
.pb-blog-post-preview.layout-cover-meta-title .pb-blog-post-title { order: 2; }
.pb-blog-post-preview.layout-title-meta-cover .pb-blog-post-title { order: 0; }
.pb-blog-post-preview.layout-title-meta-cover .pb-blog-post-meta { order: 1; }
.pb-blog-post-preview.layout-title-meta-cover .pb-blog-post-cover { order: 2; }

/* ---------- Galerie d'images partagée ---------- */
.gallery-picker-open { overflow: hidden; }
.gallery-picker-modal {
  position: fixed; inset: 0; z-index: 1600; display: grid; place-items: center;
  padding: 1.25rem;
}
.gallery-picker-modal[hidden] { display: none; }
.gallery-picker-backdrop { position: absolute; inset: 0; background: rgba(10, 12, 20, .72); backdrop-filter: blur(3px); }
.gallery-picker-dialog {
  position: relative; width: min(980px, 100%); max-height: min(820px, calc(100vh - 2.5rem));
  overflow: auto; background: var(--card); border: 1px solid var(--border);
  border-radius: 18px; box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
}
.gallery-picker-head {
  position: sticky; top: 0; z-index: 2; display: flex; align-items: center;
  justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem;
  background: color-mix(in srgb, var(--card) 96%, transparent); border-bottom: 1px solid var(--border);
  backdrop-filter: blur(12px);
}
.gallery-picker-head h2 { margin: .15rem 0 0; }
.gallery-picker-quota { display: grid; gap: .45rem; padding: .85rem 1.25rem; background: color-mix(in srgb, var(--card) 92%, var(--border)); }
.gallery-picker-quota > div:first-child, .gallery-storage-summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  font-size: .82rem;
}
.gallery-picker-quota > div:first-child span:last-child { color: var(--muted); }
.gallery-quota-track { height: 7px; overflow: hidden; background: var(--border); border-radius: 99px; }
.gallery-quota-track i { display: block; width: 0; height: 100%; background: var(--primary); border-radius: inherit; transition: width .2s ease; }
.gallery-picker-error { margin: 1rem 1.25rem 0; }
.gallery-picker-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1.5rem; }
.gallery-source-choice {
  min-height: 230px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .55rem; padding: 1.5rem; color: var(--text); background: color-mix(in srgb, var(--card) 92%, var(--border));
  border: 1px solid var(--border); border-radius: 15px; cursor: pointer; text-align: center;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.gallery-source-choice:hover { transform: translateY(-2px); border-color: var(--primary); box-shadow: 0 10px 30px rgba(0, 0, 0, .08); }
.gallery-source-choice strong { font-size: 1.05rem; }
.gallery-source-choice small { max-width: 260px; color: var(--muted); line-height: 1.45; }
.gallery-upload-optimization {
  align-items: flex-start; display: flex; gap: .65rem; grid-column: 1 / -1;
  margin: -.15rem .15rem 0; padding: .45rem .55rem; color: var(--text);
}
.gallery-upload-optimization input { flex: none; margin: .25rem 0 0; }
.gallery-upload-optimization span { display: grid; gap: .1rem; }
.gallery-upload-optimization strong { font-size: .84rem; font-weight: 700; }
.gallery-upload-optimization small { color: var(--muted); font-size: .76rem; line-height: 1.4; }
.gallery-source-icon {
  width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: .35rem;
  color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, transparent);
  border-radius: 14px; font-size: 1.65rem;
}
.gallery-picker-library { padding: 1.15rem 1.25rem .5rem; }
.gallery-picker-toolbar { display: grid; grid-template-columns: auto minmax(160px, 1fr) minmax(160px, auto) auto; gap: .65rem; margin-bottom: 1rem; }
.gallery-picker-toolbar input, .gallery-picker-toolbar select { min-width: 0; }
.gallery-picker-grid, .gallery-page-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .85rem;
}
.gallery-picker-card {
  position: relative; min-width: 0; padding: 0; overflow: hidden; color: var(--text);
  background: var(--card); border: 2px solid transparent; border-radius: 12px;
  box-shadow: 0 0 0 1px var(--border); cursor: pointer; text-align: left;
}
.gallery-picker-card:hover { box-shadow: 0 0 0 1px var(--primary); }
.gallery-picker-card.is-selected { border-color: var(--primary); box-shadow: none; }
.gallery-picker-thumb { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: color-mix(in srgb, var(--card) 92%, var(--border)); }
.gallery-picker-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gallery-picker-card-info { display: grid; gap: .2rem; padding: .7rem; min-width: 0; }
.gallery-picker-card-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-picker-card-info small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-picker-check, .gallery-page-select-check {
  position: absolute; top: .5rem; right: .5rem; width: 25px; height: 25px; display: none;
  place-items: center; color: white; background: var(--primary); border: 2px solid white;
  border-radius: 50%; font-size: .75rem; font-weight: 800;
}
.gallery-picker-card.is-selected .gallery-picker-check,
.gallery-page-card.is-selected .gallery-page-select-check { display: grid; }
.gallery-picker-actions {
  position: sticky; bottom: 0; display: flex; align-items: center; justify-content: flex-end;
  gap: .7rem; padding: 1rem 1.25rem; background: color-mix(in srgb, var(--card) 96%, transparent);
  border-top: 1px solid var(--border); backdrop-filter: blur(12px);
}
.gallery-picker-actions > :first-child { margin-right: auto; }
.gallery-picker-loading, .gallery-empty { grid-column: 1 / -1; padding: 2.5rem; text-align: center; color: var(--muted); }

.gallery-page-head { align-items: flex-end; }
.gallery-page-head h1 { margin: .2rem 0; }
.media-gallery-tabs {
  display: flex; gap: .35rem; margin-bottom: 1.25rem; padding: .3rem;
  border: 1px solid var(--border); border-radius: 13px; background: var(--card);
}
.media-gallery-tabs button {
  flex: 1; padding: .72rem 1rem; border: 0; border-radius: 9px;
  color: var(--muted); background: transparent; font: inherit; font-weight: 750; cursor: pointer;
}
.media-gallery-tabs button.active { color: #fff; background: var(--primary); }
.media-gallery-panel-head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1rem;
}
.media-gallery-panel-head h2, .media-gallery-panel-head p { margin: 0; }
.media-gallery-panel-head p { margin-top: .25rem; }
.videos-upsell-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  margin-bottom: 1rem; background: linear-gradient(135deg, #f4f2ff, #fff);
}
.videos-upsell-card h2 { margin: .2rem 0 .35rem; }
.videos-upsell-card p { margin: 0; color: var(--muted); }
.video-uppy-shell { margin-bottom: 1.2rem; }
.video-uppy-shell[hidden] { display: none; }
.video-uppy-shell .uppy-Dashboard-inner { width: 100% !important; border-color: var(--border); border-radius: 14px; }
.video-page-thumb { cursor: default; }
.video-page-fallback { display: grid; place-items: center; width: 100%; height: 100%; color: #fff; background: linear-gradient(135deg, #24233b, #5b4fc2); font-size: 2rem; }
.video-status {
  position: absolute; left: .55rem; bottom: .55rem; padding: .25rem .48rem;
  border-radius: 999px; color: #fff; background: rgba(16, 18, 28, .78);
  font-size: .64rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase;
}
.video-status.status-ready { background: rgba(27, 117, 76, .9); }
.video-status.status-failed { background: rgba(174, 45, 45, .9); }
.videos-billing-card { margin-top: 1.4rem; }
.videos-billing-actions { flex-wrap: wrap; }
.gallery-storage-card { display: grid; gap: .8rem; margin-bottom: 1.2rem; }
.gallery-storage-summary > div { display: grid; gap: .15rem; }
.gallery-storage-summary > div span { color: var(--muted); font-size: .85rem; }
.gallery-quota-track-lg { height: 10px; }
.gallery-page-tools { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(180px, auto); gap: .75rem; margin-bottom: 1rem; }
.gallery-page-tools label, .gallery-page-tools input, .gallery-page-tools select { width: 100%; }
.gallery-page-card {
  min-width: 0; overflow: hidden; background: var(--card); border: 2px solid transparent;
  border-radius: 14px; box-shadow: 0 0 0 1px var(--border);
}
.gallery-page-card.is-selected { border-color: var(--primary); box-shadow: none; }
.gallery-page-thumb {
  position: relative; display: block; width: 100%; padding: 0; aspect-ratio: 4 / 3;
  overflow: hidden; background: color-mix(in srgb, var(--card) 92%, var(--border)); border: 0; cursor: pointer;
}
.gallery-page-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gallery-page-card-body { display: grid; gap: .55rem; padding: .8rem; }
.gallery-page-card-body > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-page-card-body > .hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-page-card-actions { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .4rem; }
.gallery-page-empty { text-align: center; padding: 3rem; }
.gallery-selection-bar {
  position: sticky; z-index: 10; bottom: 1rem; display: flex; align-items: center; gap: 1rem;
  width: min(760px, calc(100% - 2rem)); margin: 1.5rem auto 0; padding: .85rem 1rem;
  background: var(--card); border: 1px solid var(--border); border-radius: 13px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .16);
}
.gallery-selection-bar[hidden] { display: none; }
.gallery-selection-bar .hint { flex: 1; }

.gallery-field-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-top: .65rem; }
.gallery-field-name { min-width: 0; overflow: hidden; color: var(--muted); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.gallery-image-placeholder {
  display: grid; place-items: center; min-height: 130px; padding: 1rem; color: var(--muted);
  background: color-mix(in srgb, var(--card) 92%, var(--border)); border: 1px dashed var(--border); border-radius: 10px;
}
.editor-gallery-choose { width: 100%; cursor: pointer; }
.editor-gallery-choose strong, .editor-gallery-choose span { display: block; }
.editor-gallery-choose span { margin-top: .25rem; font-size: .82rem; }
.ce-image__alt { width: 100%; margin-top: .55rem; }
.product-public-gallery {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .75rem; margin: 0 0 1.5rem;
}
.product-public-gallery img {
  width: 100%; aspect-ratio: 1; display: block; object-fit: cover;
  border: 1px solid var(--border); border-radius: 10px;
}

@media (max-width: 900px) {
  .blog-dashboard-grid, .blog-article-layout { grid-template-columns: 1fr; }
  .blog-quick-card { min-height: 230px; }
  .public-blog-grid { --blog-columns: 2 !important; }
  .article-recommendation-grid { grid-template-columns: 1fr 1fr; }
  .gallery-picker-toolbar { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .communication-head { align-items: flex-start; }
  .blog-layout-grid, .field-grid.two, .article-recommendation-list { grid-template-columns: 1fr; }
  .blog-row { align-items: flex-start; }
  .blog-row-actions { flex-direction: column; align-items: stretch; }
  .public-blog, .public-article { padding-left: 1rem; padding-right: 1rem; }
  .public-blog-grid { --blog-columns: 1 !important; }
  .public-blog-grid.layout-list .public-blog-card-link { display: block; }
  .public-blog-grid.layout-magazine .public-blog-card:first-child { grid-column: auto; }
  .article-recommendation-grid { grid-template-columns: 1fr; }
  .article-editor-head { align-items: flex-start; }
  .article-editor-head .page-head-actions { width: 100%; flex-wrap: wrap; }
  .article-ai-launch-row, .article-builder-note { align-items: stretch; flex-direction: column; }
  .article-advanced-tabs { grid-template-columns: 1fr 1fr; }
  .article-date-picker { grid-template-columns: 1fr 1fr; }
  .article-date-picker label:nth-of-type(3) { grid-column: 1 / -1; }
  .article-date-at, .article-date-separator { display: none; }
  .article-private-emails { margin-left: 0; }
  .article-tag-menu { left: 0; right: auto; }
  .article-ai-options { grid-template-columns: 1fr; }
  .gallery-picker-modal { padding: 0; }
  .gallery-picker-dialog { max-height: 100vh; height: 100vh; border-radius: 0; }
  .gallery-picker-choice { grid-template-columns: 1fr; }
  .gallery-source-choice { min-height: 170px; }
  .gallery-picker-toolbar, .gallery-page-tools { grid-template-columns: 1fr; }
  .gallery-picker-grid, .gallery-page-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-picker-actions { flex-wrap: wrap; }
  .gallery-picker-actions > :first-child { width: 100%; margin-right: 0; }
  .gallery-selection-bar { align-items: flex-start; flex-direction: column; }
  .media-gallery-panel-head, .videos-upsell-card { align-items: stretch; flex-direction: column; }
}


/* ===== Store teams and roles ===== */
.team-settings { gap: 1rem; }
.team-section-heading {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem;
}
.team-section-heading .card-title { margin: .15rem 0 .25rem; }
.team-section-heading .hint { margin: 0; }
.team-eyebrow {
  color: var(--primary); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.team-count {
  display: grid; flex: 0 0 34px; place-items: center; width: 34px; height: 34px;
  color: #fff; background: var(--primary); border-radius: 50%; font-weight: 800;
}
.team-hero-card {
  position: relative;
  color: #fff; background: linear-gradient(135deg, #22243b, #3e4389); border: 0;
}
.team-hero-main {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr); gap: 1.25rem;
}
.team-hero-card .team-eyebrow { color: #bfc5ff; }
.team-hero-card h2 { margin: .35rem 0 .45rem; color: #fff; font-size: 1.65rem; }
.team-hero-card p { margin: 0; color: #d8daf1; line-height: 1.55; }
.team-hero-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
.team-hero-actions .btn { display: inline-flex; align-items: center; gap: .4rem; }
.team-hero-actions .icon { width: 15px; height: 15px; }
/* Rouage en haut à droite de la carte : il n'entre pas dans la grille pour ne
   pas décaler le texte, et garde sa place quelle que soit la hauteur. */
.team-hero-gear {
  position: absolute; top: 1rem; right: 1rem; display: grid; place-items: center;
  width: 36px; height: 36px; padding: 0; color: #d8daf1; cursor: pointer;
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 11px; transition: background .18s ease, color .18s ease, transform .18s ease;
}
.team-hero-gear:hover { color: #fff; background: rgba(255, 255, 255, .2); transform: rotate(35deg); }
.team-hero-gear .icon { width: 18px; height: 18px; }

/* Panneaux dépliants de la carte. `grid-template-rows` s'interpole de 0fr à 1fr,
   ce qui anime une hauteur inconnue sans la mesurer en JavaScript. */
.team-hero-panel, .team-matrix-panel {
  display: grid; grid-template-rows: 0fr; opacity: 0;
  transition: grid-template-rows .3s ease, opacity .22s ease, margin-top .3s ease;
}
.team-hero-panel > *, .team-matrix-panel > * { overflow: hidden; min-height: 0; }
.team-hero-panel.is-open, .team-matrix-panel.is-open { grid-template-rows: 1fr; opacity: 1; }
.team-hero-panel[hidden], .team-matrix-panel[hidden] { display: none; }
.team-hero-panel.is-open { margin-top: 1.25rem; }
.team-hero-panel .team-hero-panel-inner {
  padding: 1.25rem; background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .16); border-radius: 14px;
}
.team-panel-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem;
}
.team-panel-head h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
.team-panel-head h3 .icon { width: 16px; height: 16px; margin-right: .3rem; vertical-align: -.15em; }
.team-panel-head p { margin: 0; font-size: .84rem; }

/* Champs posés sur le dégradé sombre : ils doivent égaler la spécificité des
   règles génériques de .settings-workspace, qui les repeindraient en blanc. */
.settings-workspace .team-hero-card .field-label,
.team-hero-card .field-label { color: #c9cdf0; }
.settings-workspace .team-hero-card input[type='text'],
.settings-workspace .team-hero-card input[type='email'],
.settings-workspace .team-hero-card select {
  color: #fff; background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .24);
}
.settings-workspace .team-hero-card input::placeholder { color: #a9aed6; }
.settings-workspace .team-hero-card select option { color: #1d1d2b; background: #fff; }
.team-hero-card .team-invite-privacy, .team-hero-card .team-panel-head p { color: #c2c6e6; }
.team-hero-card .team-permission-field {
  background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .16);
}
.team-hero-card .team-permission-field small { color: #b6bbdd; }
.team-hero-card .team-permission-field.is-locked { background: rgba(0, 0, 0, .16); opacity: .66; }
.team-hero-card .team-role-chip {
  color: #dfe1ff; background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .2);
}
.team-hero-card .team-role-chip.active { color: #22243b; background: #dfe1ff; border-color: #dfe1ff; }
.team-hero-card .btn-secondary { color: #22243b; }

/* Dépliant « View role permissions », sous la liste des membres. */
.team-matrix-toggle {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: 1rem; padding: .45rem 0;
  color: var(--primary); background: none; border: 0; cursor: pointer;
  font-size: .85rem; font-weight: 750;
}
.team-matrix-toggle:hover { text-decoration: underline; }
.team-matrix-toggle .icon { width: 15px; height: 15px; transition: transform .28s ease; }
.team-matrix-toggle.is-open .icon { transform: rotate(180deg); }
.team-matrix-panel.is-open { margin-top: .5rem; }
.team-matrix-panel .team-hero-panel-inner { padding: 0; }
.team-security-note {
  display: flex; align-items: flex-start; gap: .75rem; padding: 1rem;
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.15); border-radius: 13px;
}
/* Le rouage flotte au-dessus du coin haut droit : la note de sécurité, qui
   occupe cette colonne, descend sous lui au lieu de passer dessous. */
.team-hero-card:has(.team-hero-gear) .team-security-note { margin-top: 2.9rem; }
.team-security-note .icon { flex: none; width: 20px; height: 20px; margin-top: .1rem; }
.team-security-note span { display: grid; gap: .2rem; }
.team-security-note small { color: #d8daf1; line-height: 1.4; }
.team-invite-form {
  display: grid; grid-template-columns: minmax(230px, 1.25fr) minmax(200px, .85fr) auto;
  align-items: end; gap: .75rem;
}
.team-invite-form .field { margin: 0; }
.team-invite-privacy {
  display: flex; align-items: center; gap: .4rem; margin: .75rem 0 0; color: var(--muted); font-size: .78rem;
}
.team-invite-privacy .icon { width: 14px; height: 14px; }
.team-invitation-list, .team-member-list { display: grid; }
.team-invitation-row, .team-member-row {
  display: grid; grid-template-columns: 42px minmax(180px, 1fr) auto auto; align-items: center; gap: .8rem;
  padding: .8rem 0; border-top: 1px solid var(--border);
}
.team-invitation-row:first-child, .team-member-row:first-child { border-top: 0; }
.team-member-row.is-pending { opacity: .76; }
.team-avatar, .team-store-mark {
  display: grid; place-items: center; width: 42px; height: 42px; overflow: hidden;
  color: #525bc9; background: #e9ebff; border-radius: 12px; font-size: .78rem; font-weight: 800;
}
.team-avatar img { width: 100%; height: 100%; object-fit: cover; }
.team-store-mark .icon { width: 19px; height: 19px; }
.team-member-copy { display: grid; min-width: 0; gap: .15rem; }
.team-member-copy strong, .team-member-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.team-member-copy > span { color: var(--muted); font-size: .78rem; }
.team-member-copy .badge { margin-left: .3rem; vertical-align: middle; }
.team-row-actions { display: flex; align-items: center; gap: .45rem; }
.team-row-actions form, .team-member-row > form { margin: 0; }
.team-member-role-form { display: flex; align-items: center; gap: .45rem; }
.team-member-role-form select { min-width: 155px; padding: .45rem .6rem; }
.team-owner-label, .team-role-pill {
  display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .6rem;
  color: #315f47; background: #e6f6ed; border-radius: 999px; font-size: .74rem; font-weight: 750;
}
.team-owner-label .icon { width: 13px; height: 13px; }
.team-role-pill { color: #4d5266; background: #f0f1f5; }
.team-remove-member { color: var(--red); }
.team-security-form .check-field { margin-bottom: 1rem; }
.team-security-form .check-field span { display: grid; gap: .15rem; }
.team-security-form .check-field small { color: var(--muted); line-height: 1.45; }
.team-invite-confirm {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem;
}
.team-invite-confirm p { margin: .35rem 0 0; }
.team-invite-confirm .icon { width: 15px; height: 15px; vertical-align: -2px; }
.team-role-meta { display: grid; grid-template-columns: .75fr 1.25fr; gap: .8rem; }
.team-permission-editor {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: .5rem 0 1rem;
}
.team-permission-field {
  display: grid; grid-template-columns: minmax(0, 1fr) 130px; align-items: center; gap: .7rem;
  padding: .7rem; border: 1px solid var(--border); border-radius: 10px;
}
.team-permission-field > span { display: grid; gap: .1rem; }
.team-permission-field small { color: var(--muted); font-size: .7rem; line-height: 1.3; }
.team-permission-field select { padding: .45rem .55rem; font-size: .78rem; }
.team-permission-field.is-locked { background: #fafafa; opacity: .72; }
.team-role-actions { display: flex; align-items: center; gap: .6rem; }
.team-custom-role-links { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.team-role-chip {
  padding: .35rem .6rem; color: #4f569c; background: #f0f1ff; border: 1px solid #dfe1ff;
  border-radius: 999px; font-size: .76rem; font-weight: 700;
}
.team-role-chip.active { color: #fff; background: var(--primary); border-color: var(--primary); }
.team-matrix-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.team-matrix-wrap { max-height: 650px; overflow: auto; border: 1px solid var(--border); border-radius: 11px; }
.team-permission-matrix { min-width: 1080px; margin: 0; font-size: .78rem; }
.team-permission-matrix th, .team-permission-matrix td { padding: .65rem; text-align: center; vertical-align: middle; }
.team-permission-matrix thead th { position: sticky; z-index: 2; top: 0; background: #f7f7fb; }
.team-permission-matrix thead th:first-child { left: 0; z-index: 3; text-align: left; }
.team-permission-matrix tbody th { position: sticky; left: 0; min-width: 210px; background: #fff; text-align: left; }
.team-permission-matrix th small { display: block; margin-top: .12rem; color: var(--muted); font-size: .65rem; font-weight: 500; }
.team-access-badge {
  display: inline-flex; justify-content: center; min-width: 82px; padding: .28rem .48rem;
  border-radius: 999px; font-size: .67rem; font-weight: 800; white-space: nowrap;
}
.team-access-badge.is-full { color: #17613f; background: #dff6e9; }
.team-access-badge.is-view { color: #73520d; background: #fff0bd; }
.team-access-badge.is-none { color: #7a7d8d; background: #eceef2; }
.team-audit-card summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  cursor: pointer; list-style: none;
}
.team-audit-card summary::-webkit-details-marker { display: none; }
.team-audit-summary-end { display: flex; align-items: center; gap: .6rem; }
.team-audit-chevron {
  display: grid; flex: none; place-items: center; width: 26px; height: 26px;
  border-radius: 8px; color: var(--muted); background: var(--surface-2, transparent);
  transition: transform .28s cubic-bezier(.2, .75, .25, 1), color .18s ease;
}
.team-audit-chevron .icon { width: 16px; height: 16px; }
.team-audit-card summary:hover .team-audit-chevron { color: var(--text); }
.team-audit-card[open] .team-audit-chevron { transform: rotate(180deg); }
/* `grid-template-rows` de 0fr à 1fr anime une hauteur inconnue sans JavaScript ;
   l'attribut `open` est retiré après l'animation de fermeture (voir team-settings.js). */
.team-audit-body {
  display: grid; grid-template-rows: 0fr; opacity: 0;
  transition: grid-template-rows .3s cubic-bezier(.2, .75, .25, 1), opacity .22s ease;
}
.team-audit-body > * { overflow: hidden; min-height: 0; }
.team-audit-card[open]:not(.is-closing) .team-audit-body { grid-template-rows: 1fr; opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .team-audit-chevron, .team-audit-body { transition: none; }
}
.team-audit-list { display: grid; gap: .55rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.team-audit-list li { display: flex; justify-content: space-between; gap: 1rem; padding-top: .55rem; border-top: 1px solid var(--border); font-size: .78rem; }
.team-audit-list time { flex: none; color: var(--muted); }
.team-leave-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-color: #efcaca; }
.team-leave-card h2, .team-leave-card p { margin: 0; }

@media (max-width: 820px) {
  .team-hero-main, .team-role-meta, .team-permission-editor { grid-template-columns: 1fr; }
  .team-hero-card:has(.team-hero-gear) .team-security-note { margin-top: 0; }
  .team-hero-gear { top: .75rem; right: .75rem; }
  .team-hero-actions .btn { flex: 1 1 100%; justify-content: center; }
  .team-invite-form { grid-template-columns: 1fr 1fr; }
  .team-invite-form .btn { grid-column: 1 / -1; }
  .team-member-row, .team-invitation-row { grid-template-columns: 42px minmax(0, 1fr); }
  .team-member-row > :nth-child(n+3), .team-invitation-row > :nth-child(n+3) { grid-column: 2; justify-self: start; }
}
@media (max-width: 560px) {
  .team-invite-form { grid-template-columns: 1fr; }
  .team-invite-form .btn { grid-column: auto; }
  .team-permission-field { grid-template-columns: 1fr; }
  .team-section-heading, .team-leave-card { align-items: stretch; flex-direction: column; }
  .team-invite-confirm { grid-template-columns: minmax(0, 1fr); }
  .session-row { grid-template-columns: 38px minmax(0, 1fr); }
  .session-row > :nth-child(3) { grid-column: 2; justify-self: start; }
  .team-matrix-legend { justify-content: flex-start; }
  .team-row-actions, .team-member-role-form { flex-wrap: wrap; }
}

/* ===== Legal Pages ===== */
.legal-page {
  min-height: calc(100vh - 180px);
  padding: 2rem 1rem;
  color: var(--text);
}

.legal-section p,
.legal-section li { color: var(--text); }
.legal-section small { color: var(--muted); }

.legal-container {
  max-width: 900px;
  margin: 0 auto;
}

.legal-header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}

.legal-back {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--primary);
  font-size: .9rem;
  margin-bottom: 1rem;
}

.legal-back:hover {
  text-decoration: none;
  color: var(--primary-dark);
}

.legal-header h1 {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0;
  font-size: 1.8rem;
}

.legal-subtitle {
  color: var(--muted);
  margin: .25rem 0 0;
  font-size: .9rem;
}

.legal-intro {
  font-size: 1rem;
  line-height: 1.65;
  margin-bottom: 2rem;
  color: var(--text);
}

.legal-section {
  margin-bottom: 2.5rem;
}

.legal-section h2 {
  font-size: 1.4rem;
  margin-bottom: .75rem;
  color: var(--text);
  padding-top: .5rem;
}

.legal-section h3 {
  font-size: 1.15rem;
  margin: 1.5rem 0 .75rem;
  color: var(--text);
}

.legal-section p {
  margin-bottom: .75rem;
  line-height: 1.65;
}

.legal-section ul {
  margin-left: 1.5rem;
  padding-top: .25rem;
}

.legal-section li {
  margin-bottom: .4rem;
  line-height: 1.6;
}

.legal-section a {
  color: var(--primary);
  word-break: break-word;
}

.legal-section a:hover {
  text-decoration: underline;
}

.legal-content strong {
  font-weight: 600;
}

.legal-content code {
  background: #efeff6;
  padding: .1em .35em;
  border-radius: 4px;
  font-size: .9em;
}

/* Subprocessor tables in the privacy policy. Wide on desktop, scrollable
   rather than overflowing on a phone. */
.legal-table {
  display: block;
  width: 100%;
  margin: 1rem 0;
  overflow-x: auto;
  border-collapse: collapse;
}

.legal-table th,
.legal-table td {
  padding: .7rem .75rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
  font-size: .92rem;
  line-height: 1.5;
  vertical-align: top;
}

.legal-table th {
  background: var(--surface-2, #fafafa);
  font-weight: 600;
  color: var(--muted);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  white-space: nowrap;
}

.legal-table td:first-child { font-weight: 600; }
.legal-table tbody tr:hover { background: var(--surface-2, #fafafa); }

.legal-footer {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  text-align: center;
}

.legal-footer p {
  color: var(--muted);
  font-size: .9rem;
  margin-bottom: 1rem;
}

.legal-links {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.legal-links a {
  color: var(--primary);
  font-size: .9rem;
}

.legal-links a:hover {
  text-decoration: underline;
}

.legal-section.important-notice {
  background: #fff8e1;
  padding: 1.5rem;
  border-radius: var(--radius);
  border-left: 4px solid #ffc107;
}

.legal-section.important-notice h2 {
  margin-top: 0;
  color: #ff8f00;
}

/* ===== Footer Legal Links ===== */
.scaleedges-footer-legal,
.footer-legal {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.1);
}

.scaleedges-footer-legal {
  border-top-color: rgba(255,255,255,.1);
}

.scaleedges-footer-legal a,
.footer-legal a {
  display: flex;
  align-items: center;
  gap: .4rem;
  color: #ccc;
  font-size: .85rem;
}

.scaleedges-footer-legal a:hover,
.footer-legal a:hover {
  color: #fff;
  text-decoration: none;
}

.footer-legal {
  border-top-color: var(--border);
}

.footer-legal a {
  color: var(--muted);
}

.footer-legal a:hover {
  color: var(--primary);
}

/* ===== Developer API and automatic product licenses ===== */
.license-editor-block {
  border: 1px solid #c7d2fe;
  border-radius: 14px;
  background: linear-gradient(145deg, #f8faff, #f5f3ff);
  padding: 1rem;
  color: #172033;
}

.license-editor-heading,
.product-license-secret-head,
.api-settings-heading,
.api-key-status-head,
.rb-license-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .85rem;
}

.license-editor-heading {
  justify-content: flex-start;
  margin-bottom: 1rem;
}

.license-editor-heading > span,
.api-settings-icon {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  flex: 0 0 auto;
  border-radius: 10px;
  color: #4f46e5;
  background: #e0e7ff;
}

.license-editor-heading div,
.license-editor-heading > span + span {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}

.license-editor-heading small { color: #64748b; }

.license-editor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}

.license-editor-field {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  color: #475569;
  font-size: .82rem;
  font-weight: 650;
}

.license-editor-field-wide,
.license-editor-usage { grid-column: 1 / -1; }

.license-editor-field input,
.license-editor-field textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #0f172a;
  padding: .65rem .75rem;
  font: inherit;
  font-weight: 500;
}

.license-editor-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .9rem;
  padding: .7rem .8rem;
  border: 1px dashed #a5b4fc;
  border-radius: 9px;
  color: #6366f1;
  font-size: .78rem;
}

.license-editor-preview code,
.secret-copy-row code,
.api-settings-actions code,
.api-key-metadata code {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.product-license-secret {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.product-license-secret h3 { margin: 0 0 .25rem; }
.product-license-secret-actions,
.api-settings-actions,
.secret-copy-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .65rem;
}

.product-license-secret-actions { margin-top: .85rem; }
.secret-copy-row {
  margin-top: .85rem;
  padding: .75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f8fafc;
}

.secret-copy-row code { flex: 1 1 20rem; }
.product-secret-once { margin-top: .65rem; }

.api-settings-hero {
  background: linear-gradient(140deg, #111827, #312e81);
  color: #fff;
}

.api-settings-hero .hint,
.api-settings-hero .section-kicker { color: #c7d2fe; }
.api-settings-hero .card-title { color: #fff; }
.api-settings-heading { justify-content: flex-start; }
.api-settings-actions { margin-top: 1.15rem; justify-content: space-between; }
.api-settings-actions code {
  color: #e0e7ff;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 8px;
  padding: .6rem .75rem;
}

.api-secret-reveal { display: block; }
.api-secret-reveal > div:first-child { display: flex; flex-direction: column; gap: .2rem; }
.api-key-status-head .card-title { margin-bottom: .3rem; }
.api-key-metadata {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0;
}

.api-key-metadata div {
  min-width: 0;
  padding: .75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #f8fafc;
}

.api-key-metadata dt { color: var(--muted); font-size: .78rem; }
.api-key-metadata dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.api-key-create-form { display: flex; align-items: end; gap: .75rem; }
.api-key-create-form .field { flex: 1; margin: 0; }
.api-key-revoke-form { margin-top: .75rem; }
.api-code-sample {
  overflow-x: auto;
  padding: 1rem;
  border-radius: 10px;
  background: #111827;
  color: #e5e7eb;
}

.rb-license {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(99,102,241,.32);
  border-radius: 14px;
  background: rgba(99,102,241,.06);
}

.rb-license--preview { border-style: dashed; opacity: .82; }
.rb-license > strong { display: block; margin: .45rem 0 .65rem; }
.rb-license-kicker {
  color: var(--theme-primary, #4f46e5);
  font-size: .75rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.rb-license-status {
  padding: .2rem .5rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
}

.rb-license-status--active { background: #dcfce7; color: #166534; }
.rb-license-status--disabled { background: #fee2e2; color: #991b1b; }
.rb-license-status--limited { background: #fef3c7; color: #92400e; }
.rb-license-key { display: flex; align-items: center; gap: .65rem; }
.rb-license-key code {
  flex: 1;
  overflow-wrap: anywhere;
  padding: .7rem .8rem;
  border: 1px solid rgba(99,102,241,.25);
  border-radius: 9px;
  background: rgba(255,255,255,.85);
  font-size: clamp(.78rem, 2vw, .95rem);
  letter-spacing: .04em;
}

.rb-license > p { margin: .75rem 0 .35rem; }
.rb-license-uses { display: block; margin-top: .55rem; color: var(--muted); font-size: .8rem; }

@media (max-width: 768px) {
  .license-editor-grid,
  .api-key-metadata { grid-template-columns: 1fr; }
  .license-editor-field-wide,
  .license-editor-usage { grid-column: auto; }
  .api-key-create-form,
  .rb-license-key { align-items: stretch; flex-direction: column; }
  .api-settings-actions { align-items: flex-start; flex-direction: column; }

  .legal-page {
    padding: 1.5rem 1rem;
  }
  
  .legal-header h1 {
    font-size: 1.5rem;
  }
  
  .legal-section h2 {
    font-size: 1.25rem;
  }
  
  .legal-section h3 {
    font-size: 1.05rem;
  }
  
  .legal-links {
    flex-direction: column;
    gap: .75rem;
  }
  
  .scaleedges-footer-legal,
  .footer-legal {
    flex-direction: column;
    gap: .75rem;
  }
}

/* Avertissement de modération : bandeau rouge en tête du tableau de bord,
   affiché tant que le vendeur ne l'a pas acquitté. */
.dashboard-account-warning {
  display: grid; grid-template-columns: 42px minmax(0, 1fr) 30px; align-items: start;
  gap: .9rem; margin: 0 0 1.4rem; padding: 1rem 1.1rem;
  border: 1px solid #f3b9b5; border-left: 5px solid #d93025; border-radius: 16px;
  background: linear-gradient(135deg, #fff5f5, #fdecec);
  box-shadow: 0 10px 28px rgba(180, 32, 24, .1);
  animation: dashboardWarningIn .45s cubic-bezier(.22, .75, .3, 1) both;
}
@keyframes dashboardWarningIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
.dashboard-account-warning-icon {
  display: grid; place-items: center; width: 42px; height: 42px;
  border-radius: 12px; color: #fff; background: #d93025;
}
.dashboard-account-warning-icon .icon { width: 21px; height: 21px; }
.dashboard-account-warning-copy { min-width: 0; }
.dashboard-account-warning-copy strong { display: block; color: #8c1710; font-size: 1rem; }
.dashboard-account-warning-copy p { margin: .3rem 0 0; color: #7c2b25; font-size: .88rem; line-height: 1.45; overflow-wrap: anywhere; }
.dashboard-account-warning-help { color: #98524d !important; font-size: .8rem !important; }
.dashboard-account-warning-dismiss {
  width: 30px; height: 30px; border: 0; border-radius: 9px; background: transparent;
  color: #a33b33; font-size: 1.35rem; line-height: 1; cursor: pointer; transition: background .18s ease;
}
.dashboard-account-warning-dismiss:hover { background: rgba(217, 48, 37, .12); }
.dashboard-account-warning.is-dismissing { opacity: 0; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease; }
@media (max-width: 640px) {
  .dashboard-account-warning { grid-template-columns: 34px minmax(0, 1fr) 26px; gap: .7rem; padding: .85rem; }
  .dashboard-account-warning-icon { width: 34px; height: 34px; }
}
@media (prefers-reduced-motion: reduce) { .dashboard-account-warning { animation: none; } }

/* ===== Boîte à outils de texte partagée =====
   Une seule apparence pour la barre de sélection, ses menus et ses panneaux,
   qu'ils viennent d'un éditeur Editor.js ou d'un champ du website builder. */

:root {
  --se-surface: #ffffff;
  --se-surface-soft: #f6f6fb;
  --se-border: #e3e3ee;
  --se-text: #1d1d2b;
  --se-muted: #6b6b80;
  --se-accent: var(--primary, #5b68e3);
  --se-shadow: 0 18px 44px -18px rgba(22, 21, 48, .34), 0 2px 8px rgba(22, 21, 48, .07);
  --se-radius: 12px;
  --se-ease: cubic-bezier(.22, .78, .3, 1);
}

/* ---- Boutons de barre ---- */
.se-tool {
  display: inline-flex; align-items: center; gap: .3rem;
  min-width: 30px; height: 30px; padding: 0 .38rem; margin: 0;
  border: 1px solid transparent; border-radius: 8px;
  background: transparent; color: var(--se-text); cursor: pointer;
  font: inherit; font-size: .78rem; font-weight: 600; line-height: 1;
  transition: background .16s var(--se-ease), color .16s var(--se-ease),
    border-color .16s var(--se-ease), transform .16s var(--se-ease);
}
.se-tool:hover { background: var(--se-surface-soft); }
.se-tool:active { transform: scale(.94); }
.se-tool:focus-visible { outline: 2px solid color-mix(in srgb, var(--se-accent) 55%, transparent); outline-offset: 1px; }
.se-tool.is-active,
.se-tool.is-open {
  background: color-mix(in srgb, var(--se-accent) 12%, transparent);
  color: var(--se-accent);
}
.se-tool-icon { display: inline-flex; align-items: center; }
.se-tool-icon svg { display: block; }
.se-tool-icon .lumia-logo-glyph { font-size: 1rem; }
.se-tool-label { white-space: nowrap; }
.se-tool-caret { display: inline-flex; color: var(--se-muted); transition: transform .18s var(--se-ease); }
.se-tool.is-open .se-tool-caret { transform: rotate(180deg); }
.se-tool--lumia { padding-right: .3rem; }
.se-tool--lumia .se-tool-label { font-weight: 700; }
.se-tool--style { min-width: 104px; }
.se-tool--style .se-tool-label { flex: 1; text-align: left; }
.se-tool-separator {
  width: 1px; height: 18px; margin: 0 .18rem; flex: none;
  background: var(--se-border);
}

/* Le bouton couleur porte sa couleur : la barre sous le A dit ce qui est posé. */
.se-paint-glyph { font-size: .86rem; font-weight: 800; line-height: 1; }
.se-paint-bar {
  display: block; width: 15px; height: 3px; margin-top: 2px;
  border-radius: 2px; background: currentColor;
  transition: background .18s var(--se-ease);
}
.se-tool--paint,
.se-paint-trigger { justify-content: center; }
.se-tool--paint .se-tool-icon,
.se-paint-trigger { display: inline-flex; flex-direction: column; gap: 0; align-items: center; }

/* Champ « taille du texte » du builder : un contrôle, pas un formulaire. */
.se-tool--size {
  gap: 0; padding: 0 .3rem 0 .42rem;
  border-color: var(--se-border); color: var(--se-muted); cursor: text; font-size: .68rem;
}
.se-tool--size input {
  width: 34px; padding: 0; border: 0; background: transparent;
  color: var(--se-text); font: inherit; font-size: .76rem; font-weight: 650;
}
.se-tool--size input::-webkit-outer-spin-button,
.se-tool--size input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.se-tool--size input:focus { outline: 0; }

/* ---- Barre du builder ---- */
.se-toolbar {
  position: absolute; z-index: 80;
  display: flex; align-items: center; gap: .1rem;
  width: max-content; max-width: min(560px, calc(100% - 12px));
  padding: .28rem .34rem;
  border: 1px solid var(--se-border); border-radius: var(--se-radius);
  background: var(--se-surface); color: var(--se-text);
  box-shadow: var(--se-shadow);
  animation: se-rise .18s var(--se-ease) both;
}
.se-toolbar[hidden] { display: none; }

/* ---- Couche flottante (menus et panneaux) ---- */
.se-layer {
  position: fixed; z-index: 2600;
  opacity: 0; transform: translateY(-6px) scale(.985);
  transform-origin: top left;
  transition: opacity .15s var(--se-ease), transform .15s var(--se-ease);
  will-change: opacity, transform;
}
.se-layer.is-open { opacity: 1; transform: none; }
.se-layer.is-leaving { opacity: 0; transform: translateY(-4px) scale(.99); }

@keyframes se-rise {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: none; }
}

/* ---- Menus ---- */
.se-menu {
  display: flex; flex-direction: column; min-width: 216px; max-width: 300px;
  padding: .3rem; border: 1px solid var(--se-border); border-radius: var(--se-radius);
  background: var(--se-surface); color: var(--se-text); box-shadow: var(--se-shadow);
}
.se-menu-title {
  padding: .35rem .5rem .3rem; color: var(--se-muted);
  font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
}
.se-menu-search {
  width: 100%; margin: 0 0 .25rem; padding: .42rem .55rem;
  border: 1px solid var(--se-border); border-radius: 8px;
  background: var(--se-surface-soft); color: inherit; font: inherit; font-size: .82rem;
  transition: border-color .16s var(--se-ease), background .16s var(--se-ease);
}
.se-menu-search:focus {
  outline: 0; background: var(--se-surface);
  border-color: color-mix(in srgb, var(--se-accent) 55%, var(--se-border));
}
.se-menu-body { display: flex; flex-direction: column; max-height: min(340px, 60vh); overflow-y: auto; }
.se-menu--languages .se-menu-body { max-height: min(300px, 54vh); }
.se-menu-item {
  display: flex; align-items: center; gap: .58rem;
  padding: .45rem .5rem; border: 0; border-radius: 8px;
  background: transparent; color: inherit; cursor: pointer;
  font: inherit; font-size: .84rem; text-align: left;
  transition: background .14s var(--se-ease), color .14s var(--se-ease);
}
.se-menu-item[hidden] { display: none; }
.se-menu-item:hover,
.se-menu-item:focus-visible,
.se-menu-item.is-open { background: var(--se-surface-soft); outline: 0; }
.se-menu-item.is-active { color: var(--se-accent); }
.se-menu-item.is-danger:hover { background: var(--red-bg, #fdecea); color: var(--red, #c0392b); }
.se-menu-icon { display: inline-flex; flex: none; width: 18px; color: var(--se-muted); }
.se-menu-item.is-active .se-menu-icon,
.se-menu-item:hover .se-menu-icon { color: inherit; }
.se-menu-icon svg { display: block; width: 16px; height: 16px; }
.se-menu-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.se-menu-hint { color: var(--se-muted); font-size: .72rem; }
.se-menu-chevron,
.se-menu-check { display: inline-flex; flex: none; color: var(--se-muted); }
.se-menu-item.is-active .se-menu-check { color: var(--se-accent); }
.se-menu-separator { height: 1px; margin: .28rem .35rem; background: var(--se-border); }
.se-menu-heading {
  padding: .5rem .5rem .25rem; color: var(--se-muted);
  font-size: .67rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
}
.se-menu-empty { padding: .7rem .5rem; color: var(--se-muted); font-size: .8rem; text-align: center; }
.se-menu-empty[hidden] { display: none; }

/* ---- Panneau de conversation ---- */
.se-ai-panel {
  display: flex; flex-direction: column; gap: .55rem;
  width: min(390px, calc(100vw - 24px)); padding: .7rem;
  border: 1px solid var(--se-border); border-radius: 14px;
  background: var(--se-surface); color: var(--se-text); box-shadow: var(--se-shadow);
}
.se-ai-head { display: flex; align-items: center; gap: .5rem; }
.se-ai-badge { display: inline-flex; color: currentColor; }
.se-ai-badge .lumia-logo-glyph { font-size: 1rem; }
.se-ai-title { flex: 1; font-size: .86rem; }
.se-ai-close {
  display: inline-grid; place-items: center; width: 24px; height: 24px;
  border: 0; border-radius: 7px; background: transparent; color: var(--se-muted);
  cursor: pointer; transition: background .16s var(--se-ease), color .16s var(--se-ease);
}
.se-ai-close:hover { background: var(--se-surface-soft); color: var(--se-text); }
.se-ai-excerpt {
  padding: .45rem .6rem; border-left: 3px solid color-mix(in srgb, var(--se-accent) 45%, var(--se-border));
  border-radius: 0 8px 8px 0; background: var(--se-surface-soft);
  color: var(--se-muted); font-size: .77rem; line-height: 1.45;
}
.se-ai-stream {
  display: flex; flex-direction: column; gap: .45rem;
  max-height: min(300px, 46vh); overflow-y: auto;
}
.se-ai-stream:empty { display: none; }
.se-ai-bubble {
  padding: .5rem .65rem; border-radius: 11px;
  font-size: .84rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere;
  animation: se-bubble .22s var(--se-ease) both;
}
.se-ai-bubble--me {
  align-self: flex-end; max-width: 88%;
  background: color-mix(in srgb, var(--se-accent) 12%, transparent); color: var(--se-text);
}
.se-ai-bubble--ai { background: var(--se-surface-soft); }
@keyframes se-bubble {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.se-ai-status { color: var(--se-muted); font-size: .78rem; }
.se-ai-status.is-error { color: var(--red, #c0392b); }
.se-ai-cancel {
  align-self: flex-start; padding: .28rem .55rem;
  border: 1px solid var(--se-border); border-radius: 7px;
  background: var(--se-surface); color: var(--se-muted);
  font: inherit; font-size: .75rem; font-weight: 750; cursor: pointer;
}
.se-ai-cancel:hover { background: var(--se-surface-soft); color: var(--se-text); }
.se-ai-cancel[hidden] { display: none; }
.se-ai-panel.is-loading .se-ai-status {
  background: linear-gradient(90deg, var(--se-muted) 0%, var(--se-accent) 45%, var(--se-muted) 90%);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: se-shimmer 1.5s linear infinite;
}
@keyframes se-shimmer {
  from { background-position: 120% 0; }
  to { background-position: -60% 0; }
}
.se-ai-actions { display: flex; gap: .4rem; }
.se-ai-actions[hidden] { display: none; }
.se-ai-compose {
  display: flex; align-items: flex-end; gap: .35rem;
  padding: .3rem .3rem .3rem .55rem;
  border: 1px solid var(--se-border); border-radius: 11px; background: var(--se-surface-soft);
  transition: border-color .16s var(--se-ease), background .16s var(--se-ease);
}
.se-ai-compose:focus-within {
  background: var(--se-surface);
  border-color: color-mix(in srgb, var(--se-accent) 55%, var(--se-border));
}
.se-ai-compose[hidden] { display: none; }
.se-ai-input {
  flex: 1; min-height: 26px; max-height: 112px; padding: .25rem 0;
  border: 0; background: transparent; color: inherit; font: inherit; font-size: .84rem;
  line-height: 1.45; resize: none; outline: 0;
}
.se-ai-send {
  display: inline-grid; place-items: center; width: 28px; height: 28px; flex: none;
  border: 0; border-radius: 8px; background: var(--se-accent); color: #fff; cursor: pointer;
  transition: filter .16s var(--se-ease), transform .16s var(--se-ease);
}
.se-ai-send:hover:not(:disabled) { filter: brightness(1.08); }
.se-ai-send:active:not(:disabled) { transform: scale(.92); }
.se-ai-send:disabled { opacity: .5; cursor: default; }

/* ---- Palette couleur + surlignage ---- */
.se-paint {
  display: flex; flex-direction: column; gap: .1rem;
  width: 236px; padding: .5rem;
  border: 1px solid var(--se-border); border-radius: var(--se-radius);
  background: var(--se-surface); color: var(--se-text); box-shadow: var(--se-shadow);
}
.se-paint-section + .se-paint-section { margin-top: .5rem; padding-top: .5rem; border-top: 1px solid var(--se-border); }
.se-paint-title {
  padding: 0 .1rem .4rem; color: var(--se-muted);
  font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
}
.se-paint-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .3rem; }
.se-swatch {
  display: grid; place-items: center; width: 100%; aspect-ratio: 1;
  border: 1px solid var(--se-border); border-radius: 7px;
  background: var(--se-surface); cursor: pointer; padding: 0;
  transition: transform .16s var(--se-ease), border-color .16s var(--se-ease), box-shadow .16s var(--se-ease);
}
.se-swatch:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--se-accent) 45%, var(--se-border)); }
.se-swatch.is-active {
  border-color: var(--se-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--se-accent) 26%, transparent);
}
.se-swatch--letter span { font-size: .8rem; font-weight: 800; line-height: 1; }
.se-swatch.is-none { position: relative; background: var(--se-surface-soft); }
.se-swatch.is-none::after {
  content: ""; position: absolute; left: 15%; right: 15%; top: 50%;
  height: 1px; background: var(--red, #c0392b); transform: rotate(-45deg);
}
.se-swatch--letter.is-none::after { display: none; }
.se-paint-custom {
  display: flex; align-items: center; gap: .45rem; margin-top: .4rem;
  padding: .3rem .4rem; border: 1px solid var(--se-border); border-radius: 8px;
  color: var(--se-muted); cursor: pointer; font-size: .76rem;
  transition: border-color .16s var(--se-ease);
}
.se-paint-custom:hover { border-color: color-mix(in srgb, var(--se-accent) 45%, var(--se-border)); }
.se-paint-custom input[type="color"] {
  width: 26px; height: 22px; padding: 0; border: 0; border-radius: 5px;
  background: transparent; cursor: pointer;
}

/* ---- Panneau de lien ---- */
.se-link {
  display: flex; flex-direction: column; gap: .4rem;
  width: min(320px, calc(100vw - 24px)); padding: .5rem;
  border: 1px solid var(--se-border); border-radius: var(--se-radius);
  background: var(--se-surface); color: var(--se-text); box-shadow: var(--se-shadow);
}
.se-link-row { display: flex; gap: .35rem; }
.se-link-input {
  flex: 1; min-width: 0; padding: .45rem .6rem;
  border: 1px solid var(--se-border); border-radius: 8px;
  background: var(--se-surface-soft); color: inherit; font: inherit; font-size: .82rem;
  transition: border-color .16s var(--se-ease), background .16s var(--se-ease);
}
.se-link-input:focus {
  outline: 0; background: var(--se-surface);
  border-color: color-mix(in srgb, var(--se-accent) 55%, var(--se-border));
}
.se-link-apply {
  flex: none; padding: 0 .7rem; border: 0; border-radius: 8px;
  background: var(--se-accent); color: #fff; cursor: pointer;
  font: inherit; font-size: .8rem; font-weight: 700;
  transition: filter .16s var(--se-ease);
}
.se-link-apply:hover { filter: brightness(1.08); }
.se-link-remove {
  display: flex; align-items: center; gap: .45rem; padding: .4rem .5rem;
  border: 0; border-radius: 8px; background: transparent; color: var(--red, #c0392b);
  cursor: pointer; font: inherit; font-size: .8rem; text-align: left;
  transition: background .16s var(--se-ease);
}
.se-link-remove:hover { background: var(--red-bg, #fdecea); }

/* ---- Barre de sélection d'Editor.js ---- */
/* Les déclencheurs (style de bloc, Ask Lumia) sont des boutons larges : ils
   portent un libellé, pas seulement un pictogramme. */
.ce-inline-toolbar .se-inline-trigger {
  display: inline-flex !important; align-items: center; gap: .3rem;
  width: auto !important; padding: 0 .4rem;
  font-size: .78rem; font-weight: 650;
}
.se-inline-trigger .se-inline-glyph { display: inline-flex; }
.se-inline-trigger .se-inline-glyph svg { display: block; }
.se-inline-trigger .se-inline-label { white-space: nowrap; }
.se-inline-trigger .se-inline-caret { display: inline-flex; opacity: .55; transition: transform .18s var(--se-ease); }
.se-inline-trigger.is-open .se-inline-caret { transform: rotate(180deg); }
.se-inline-style { min-width: 108px; }
.se-inline-style .se-inline-label { flex: 1; text-align: left; }
.se-inline-lumia .se-inline-label { font-weight: 700; }
.se-inline-trigger.is-busy { opacity: .6; pointer-events: none; }
.ce-inline-toolbar .se-paint-trigger { display: inline-flex !important; flex-direction: column; gap: 0; }

/* Les trois réglages natifs (Move up, Delete, Move down) sont remplacés par le
   groupe Insert / Move up / Move down / Delete du menu de bloc maison : les
   garder afficherait deux fois les mêmes actions. */
.ce-popover-item[data-item-name="move-up"],
.ce-popover-item[data-item-name="move-down"],
.ce-popover-item[data-item-name="delete"] { display: none !important; }

/* Editor.js ajoute toujours « Convert to » en tête de la barre de sélection.
   Le premier bouton de la barre fait déjà ce travail, avec les mêmes styles
   que le website builder : on masque le doublon et le séparateur qui le suit. */
.ce-inline-toolbar .ce-popover-item[data-item-name="convert-to"],
.ce-inline-toolbar .ce-popover-item[data-item-name="convert-to"] + .ce-popover-item-separator,
.ce-inline-toolbar .ce-popover__items > .ce-popover-item-separator:first-child { display: none !important; }

/* Bloc « Reviews » dans l'éditeur : les avis étant relus au rendu, le bloc
   annonce ce qu'il affichera au lieu d'inventer un aperçu. */
.rb-reviews-tool {
  display: flex; align-items: center; gap: .7rem; margin: .5em 0; padding: .7rem .85rem;
  border: 1px dashed color-mix(in srgb, var(--se-accent) 34%, var(--se-border));
  border-radius: 12px; background: color-mix(in srgb, var(--se-accent) 5%, transparent);
}
.rb-reviews-tool-icon {
  display: grid; place-items: center; width: 32px; height: 32px; flex: none;
  border-radius: 9px; color: var(--se-accent); background: var(--se-surface);
}
.rb-reviews-tool-copy { display: grid; gap: .1rem; min-width: 0; }
.rb-reviews-tool-copy small { color: var(--se-muted); font-size: .74rem; }
.rendered-content .rb-reviews { margin: 1.4em 0; }
.rendered-content .rb-reviews .pb-reviews-list { display: grid; gap: .8rem; }

/* ---- Contrôles de ligne façon Notion ---- */
/* Editor.js centre sa colonne de texte et pose le « + » et la poignée dans la
   gouttière à sa gauche. La largeur de cette gouttière dépendait donc de celle
   du conteneur : trop étroite, les deux boutons basculaient à droite ; trop
   large, ils débordaient — et un parent qui découpe son contenu les effaçait
   complètement. On réserve la gouttière au lieu de la subir, pour que la
   description, le contenu produit et les articles se comportent à l'identique.
   La disposition mobile d'Editor.js reste la sienne. */
/* Les chaînes d'enfants directs limitent la règle à l'éditeur de premier
   niveau : un éditeur imbriqué dans une colonne n'a pas de gouttière et garde
   le placement d'Editor.js. */
@media (min-width: 651px) {
  .editor-holder { padding-left: 3.75rem; }
  .editor-holder > .codex-editor > .ce-toolbar > .ce-toolbar__content,
  .editor-holder > .codex-editor > .codex-editor__redactor > .ce-block > .ce-block__content {
    margin-left: 0; margin-right: auto;
  }
  .editor-holder > .codex-editor > .ce-toolbar > .ce-toolbar__content > .ce-toolbar__actions {
    right: 100%; left: auto;
  }
  .editor-holder > .codex-editor--narrow > .codex-editor__redactor { margin-right: 0; }
}
.editor-block-drag-handle { cursor: grab !important; }
.editor-block-drag-handle:active { cursor: grabbing !important; }
.ce-toolbar__plus,
.ce-toolbar__settings-btn {
  transition: background .16s var(--se-ease), color .16s var(--se-ease), transform .16s var(--se-ease);
}
.ce-toolbar__plus:hover,
.ce-toolbar__settings-btn:hover { transform: scale(1.06); }
.ce-block.editor-block-dragging { opacity: .38; }
.ce-block.editor-block-drop-before > .ce-block__content::before,
.ce-block.editor-block-drop-after > .ce-block__content::after {
  content: ""; position: absolute; left: 0; right: 0; z-index: 20; height: 3px;
  border-radius: 999px; background: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
.ce-block.editor-block-drop-before > .ce-block__content::before { top: -5px; }
.ce-block.editor-block-drop-after > .ce-block__content::after { bottom: -5px; }

@media (prefers-reduced-motion: reduce) {
  .se-layer, .se-toolbar, .se-ai-bubble, .se-tool, .se-menu-item, .se-swatch, .se-toast {
    transition-duration: .01ms !important; animation-duration: .01ms !important;
  }
}

/* ===== Lumia : bouton et panneau de génération partagés ===================
   Utilisés par l'emailing, le blog et la création de produit. Les couleurs
   reprennent les jetons --lumia-* d'une page qui les définit, sinon ceux-ci. */
.btn-lumia {
  border: 0; color: #fff;
  background: var(--lumia-gradient, linear-gradient(125deg, #2b2463 0%, #5140b0 58%, #8a63da 100%));
  box-shadow: 0 8px 22px rgb(81 64 176 / .28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.btn-lumia:hover { color: #fff; filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 12px 28px rgb(81 64 176 / .34); text-decoration: none; }
.btn-lumia:disabled { opacity: .6; transform: none; box-shadow: none; }
.btn-lumia > span[aria-hidden] { margin-right: .15rem; }
.btn-lumia.is-locked { color: var(--muted); background: var(--card); border: 1px solid var(--border); box-shadow: none; filter: none; }
.btn-lumia.is-locked:hover { color: var(--text); transform: none; }
.btn-lumia.is-locked .icon { width: 13px; height: 13px; }

.lumia-working {
  --lw-accent: var(--lumia, #6346d8);
  --lw-line: var(--lumia-line, color-mix(in srgb, #7b5cf2 30%, var(--border)));
  --lw-soft: var(--lumia-soft, color-mix(in srgb, #7b5cf2 8%, var(--card)));
  --lw-gradient: var(--lumia-gradient, linear-gradient(125deg, #2b2463 0%, #5140b0 58%, #8a63da 100%));
  display: grid; justify-items: center; gap: .9rem; padding: 2.4rem 1.2rem 2rem; text-align: center;
  border: 1px solid var(--lw-line); border-radius: 18px; color: var(--text);
  background: radial-gradient(circle at 50% 0, var(--lw-soft), transparent 70%), var(--card);
  animation: lumiaWorkingIn .26s cubic-bezier(.2, .8, .25, 1) both;
}
html[data-dashboard-theme="dark"] .lumia-working {
  --lw-accent: var(--lumia, #b7a2ff);
  --lw-line: var(--lumia-line, color-mix(in srgb, #9c82ff 38%, var(--border)));
  --lw-soft: var(--lumia-soft, color-mix(in srgb, #9c82ff 14%, var(--card)));
}
.lumia-working[hidden] { display: none; }
.lumia-working.is-compact { padding: 1.8rem 1rem 1.4rem; border-radius: 14px; }
.lumia-working > strong { font-size: 1.05rem; letter-spacing: -.01em; }
@keyframes lumiaWorkingIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.lumia-orb {
  position: relative; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
  color: #fff; background: var(--lw-gradient, linear-gradient(125deg, #2b2463 0%, #5140b0 58%, #8a63da 100%)); font-size: 1.55rem;
  box-shadow: 0 12px 30px rgb(81 64 176 / .35);
}
.lumia-orb::before, .lumia-orb::after {
  content: ""; position: absolute; inset: -8px; border-radius: 50%;
  border: 2px solid color-mix(in srgb, #8a63da 45%, transparent); animation: lumiaPulse 1.8s ease-out infinite;
}
.lumia-orb::after { animation-delay: .9s; }
.lumia-orb span { animation: lumiaSpin 3.2s linear infinite; }
@keyframes lumiaPulse { from { opacity: .9; transform: scale(.9); } to { opacity: 0; transform: scale(1.45); } }
@keyframes lumiaSpin { 0%, 100% { transform: rotate(0) scale(1); } 50% { transform: rotate(180deg) scale(1.12); } }
.lumia-working-steps { display: grid; gap: .45rem; min-width: min(300px, 100%); margin: .2rem 0 .3rem; padding: 0; list-style: none; text-align: left; }
.lumia-working-steps li {
  display: flex; align-items: center; gap: .6rem; color: color-mix(in srgb, var(--muted) 75%, transparent);
  font-size: .88rem; transition: color .3s ease;
}
.lumia-working-steps li::before {
  content: ""; width: 16px; height: 16px; flex: none; border-radius: 50%; border: 1.5px solid var(--border);
  transition: background .3s ease, border-color .3s ease;
}
.lumia-working-steps li.is-active { color: var(--text); font-weight: 650; }
.lumia-working-steps li.is-active::before { border-color: var(--lw-accent); border-top-color: transparent; animation: lumiaSpin360 .8s linear infinite; }
.lumia-working-steps li.is-done { color: var(--muted); }
.lumia-working-steps li.is-done::before {
  border-color: var(--lw-accent); background: var(--lw-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 10px no-repeat;
}
@keyframes lumiaSpin360 { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .lumia-working, .lumia-orb::before, .lumia-orb::after, .lumia-orb span, .lumia-working-steps li.is-active::before { animation: none; }
}

/* Blog : Lumia à côté de « New article ». */
.blog-create-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.blog-quick-card .blog-create-actions { margin-top: .2rem; }
.blog-quick-card .btn.btn-lumia {
  color: #fff; background: rgb(255 255 255 / .14); border: 1px solid rgb(255 255 255 / .34); box-shadow: none;
}
.blog-quick-card .btn.btn-lumia:hover { background: rgb(255 255 255 / .24); }
.blog-quick-card .btn.btn-lumia.is-locked { color: #dedaff; }
.blog-flow-modal.is-lumia .eyebrow { color: #6346d8; }
html[data-dashboard-theme="dark"] .blog-flow-modal.is-lumia .eyebrow { color: #b7a2ff; }
.article-create-brief[hidden] { display: none; }
.article-create-brief textarea { min-height: 120px; resize: vertical; line-height: 1.55; }
.article-create-brief .hint { display: block; margin-top: .35rem; }

/* ===== Newsletter ScaleEdges (footers de la plateforme) =================== */
.platform-newsletter {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 470px); align-items: center; gap: 18px 40px;
  margin: 0 0 30px; padding: 22px 26px; border: 1px solid rgba(255,255,255,.12); border-radius: 18px;
  color: #c9cfe6;
  background:
    radial-gradient(circle at 100% 0, rgba(125, 137, 240, .22), transparent 45%),
    rgba(255,255,255,.04);
}
.platform-newsletter-copy { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
.platform-newsletter-icon {
  display: grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 12px;
  color: #fff; background: linear-gradient(135deg, #5b68e3, #8f7cf0); box-shadow: 0 10px 24px rgba(91, 104, 227, .35);
}
.platform-newsletter-icon .icon { width: 19px; height: 19px; }
.platform-newsletter h2 { margin: 0; color: #fff; font-size: 1rem; letter-spacing: -.01em; }
.platform-newsletter-copy p { margin: 4px 0 0; color: #9ea7ca; font-size: .8rem; line-height: 1.55; }
.platform-newsletter-form { display: grid; gap: 8px; margin: 0; }
.platform-newsletter-field {
  position: relative; display: flex; gap: 6px; padding: 5px; border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px; background: rgba(9, 14, 36, .45); transition: border-color .18s ease, box-shadow .18s ease;
}
.platform-newsletter-field:focus-within { border-color: #7d89f0; box-shadow: 0 0 0 3px rgba(125, 137, 240, .28); }
.platform-newsletter-field input[type="email"] {
  flex: 1 1 auto; min-width: 0; padding: 8px 10px; border: 0; border-radius: 8px;
  color: #fff; background: transparent; font: inherit; font-size: .88rem;
}
.platform-newsletter-field input[type="email"]:focus { outline: none; }
.platform-newsletter-field input[type="email"]::placeholder { color: #7f89ac; }
html[data-dashboard-theme="dark"] body.dashboard-shell .platform-newsletter-field input[type="email"] { border-color: transparent; background-color: transparent; color: #fff; }
.platform-newsletter-submit {
  flex: none; padding: 8px 16px; border: 0; border-radius: 8px; color: #fff; background: #5b68e3;
  font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; transition: background .18s ease, transform .18s ease;
}
.platform-newsletter-submit:hover { background: #4a56c2; }
.platform-newsletter-submit:active { transform: scale(.97); }
.platform-newsletter-submit:disabled { opacity: .7; cursor: progress; }
.platform-newsletter-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.platform-newsletter-legal { margin: 0; color: #7f89ac; font-size: .68rem; line-height: 1.5; }
.platform-newsletter-legal a { color: #aeb6d3; text-decoration: underline; }
.platform-newsletter-legal a:hover { color: #fff; }
.platform-newsletter-status { margin: 0; padding: 7px 10px; border-radius: 8px; font-size: .76rem; font-weight: 600; }
.platform-newsletter-status[hidden] { display: none; }
.platform-newsletter-status.is-success { color: #b7f1d1; background: rgba(53, 160, 111, .16); }
.platform-newsletter-status.is-error { color: #ffc4cc; background: rgba(220, 70, 90, .16); }
.platform-newsletter-done {
  display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 14px; border-radius: 12px;
  color: #b7f1d1; background: rgba(53, 160, 111, .14); font-size: .8rem; line-height: 1.45;
}
.platform-newsletter-done strong { color: #fff; }
.platform-newsletter-done .icon { width: 16px; height: 16px; flex: none; }
.platform-newsletter.is-compact {
  display: block; max-width: 340px; margin: 22px 0 0; padding: 0; border: 0; border-radius: 0; background: none;
}
.platform-newsletter.is-compact .platform-newsletter-copy { display: block; }
.platform-newsletter.is-compact h2 {
  margin-bottom: 10px; font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.platform-newsletter.is-compact .platform-newsletter-legal { font-size: .66rem; }
.platform-newsletter.is-compact .platform-newsletter-done { margin-top: 10px; }
@media (max-width: 860px) {
  .platform-newsletter { grid-template-columns: minmax(0, 1fr); padding: 20px; }
}
@media (max-width: 420px) {
  .platform-newsletter-field { flex-direction: column; }
  .platform-newsletter-submit { padding: 10px; }
}

.newsletter-confirm-page { display: grid; place-items: center; min-height: 62vh; padding: 60px 16px; }
.newsletter-confirm-card {
  display: grid; justify-items: center; gap: 12px; width: min(520px, 100%); padding: 40px 32px; text-align: center;
  border: 1px solid var(--border); border-radius: 22px; background: var(--card); box-shadow: 0 20px 60px rgba(29, 29, 43, .08);
}
.newsletter-confirm-card h1 { margin: 6px 0 0; font-size: 1.6rem; letter-spacing: -.02em; }
.newsletter-confirm-card p { margin: 0; color: var(--muted); line-height: 1.6; }
.newsletter-confirm-card form { margin: 10px 0 0; }
.newsletter-confirm-card small { color: var(--muted); font-size: .78rem; }
.newsletter-confirm-icon {
  display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; color: #fff;
  background: linear-gradient(135deg, #5b68e3, #8f7cf0); box-shadow: 0 12px 28px rgba(91, 104, 227, .3);
}
.newsletter-confirm-icon.is-muted { color: var(--muted); background: var(--surface-2, #f1f1f6); box-shadow: none; }
.newsletter-confirm-icon .icon { width: 24px; height: 24px; }

/* ===== Fusée des boutons Publish (éditeur de produit, website builder) =====
   Survol : la fusée plane sur sa diagonale et sa flamme vacille.
   Clic : grondement, la flamme grossit, décollage avec traînée, retour par le bas. */
.btn .icon-rocket { overflow: visible; }
.btn .icon-rocket path { transform-box: fill-box; transform-origin: center; }
.btn .icon-rocket path:nth-of-type(1) { transform-origin: 100% 0%; }
.btn:hover:not(:disabled):not(.is-launching) .icon-rocket { animation: rocketHover 1.1s ease-in-out infinite; }
.btn:hover:not(:disabled):not(.is-launching) .icon-rocket path:nth-of-type(1) { animation: rocketFlame .22s ease-in-out infinite alternate; }
.btn.is-launching { overflow: hidden; }
.btn.is-launching .icon-rocket { animation: rocketLaunch 1s cubic-bezier(.45, 0, .3, 1) both; }
.btn.is-launching .icon-rocket path:nth-of-type(1) { animation: rocketLaunchFlame 1s ease-in both; }
.btn.is-launching .icon-rocket path:nth-of-type(3),
.btn.is-launching .icon-rocket path:nth-of-type(4) { animation: rocketLaunchFins 1s ease-in-out both; }
@keyframes rocketHover {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(1.5px, -1.5px); }
}
@keyframes rocketFlame {
  from { transform: scale(.8); opacity: .75; }
  to { transform: scale(1.15); opacity: 1; }
}
@keyframes rocketLaunch {
  0% { transform: none; opacity: 1; filter: none; }
  8% { transform: translate(-.8px, .8px); }
  14% { transform: translate(.8px, .4px); }
  20% { transform: translate(-.6px, -.4px); }
  26% { transform: translate(.6px, .8px); }
  32% { transform: translate(-.4px, .4px); }
  38% { transform: translate(-2px, 2px); filter: none; }
  58% { transform: translate(26px, -26px); opacity: 0;
        filter: drop-shadow(-4px 4px 0 rgba(255, 255, 255, .45)) drop-shadow(-9px 9px 0 rgba(255, 255, 255, .2)); }
  59% { transform: translate(-18px, 18px); opacity: 0; filter: none; }
  86% { transform: translate(1px, -1px); opacity: 1; }
  100% { transform: none; opacity: 1; filter: none; }
}
@keyframes rocketLaunchFlame {
  0% { transform: scale(1); }
  10% { transform: scale(1.3); }
  18% { transform: scale(.9); }
  26% { transform: scale(1.5); }
  34% { transform: scale(1.1); }
  42%, 58% { transform: scale(1.9); }
  59% { transform: scale(.2); }
  100% { transform: scale(1); }
}
@keyframes rocketLaunchFins {
  0%, 30%, 59%, 100% { transform: none; }
  45% { transform: translate(-1px, 1px); }
}
@media (prefers-reduced-motion: reduce) {
  .btn .icon-rocket, .btn .icon-rocket path { animation: none !important; }
}
