/* ──────────────────────────────────────────────────────────────────
 * MySportbay : Shared landing styles
 * Source of truth: admin Soft Modern DS (Plus Jakarta Sans + ocean blue).
 * Used by all sport landing pages (landing-*.html).
 * index.html loads assets/siteheader-nav.css for the shared header (see index &lt;head&gt;).
 * ──────────────────────────────────────────────────────────────────*/

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Archivo:wght@800&display=swap');
@import url('assets/contact-modal.css');
@import url('assets/siteheader-nav.css');

:root {
  --bg:              #FAFAF7;
  --surface:         #FFFFFF;
  --surface-hover:   #F7F7F4;
  --surface-subtle:  #F4F4F0;

  --border:          #ECECE8;
  --border-subtle:   #F2F2EE;
  --border-strong:   #DCDCD6;

  --ink:             #0A0A0A;
  --ink-secondary:   #525252;
  --ink-muted:       #8A8A8A;
  --ink-faint:       #B8B8B4;

  --accent:          #0066FF;
  --accent-hover:    #0052CC;
  --accent-muted:    #E6F0FF;
  --accent-border:   #CCDEFF;
  --accent-soft-ink: #67a3ff;

  --success:         #00B67A;
  --success-ink:     #00754E;
  --success-muted:   #DFF5EC;
  --success-border:  #B8E5D1;

  --warning:         #E58A00;
  --warning-muted:   #FFF4E0;
  --warning-border:  #FBE0B0;

  --error-soft-bg:   #fdecea;
  --error-soft-bd:   #f5c4be;
  --error-soft-ink:  #c62828;

  --chip-drink-bg:   #E6F0FF; --chip-drink-ink: #0052CC; --chip-drink-bd: #CCDEFF;
  --chip-rental-bg:  #DFF5EC; --chip-rental-ink:#00754E; --chip-rental-bd:#B8E5D1;
  --chip-acc-bg:     #FFF4E0; --chip-acc-ink:   #A16207; --chip-acc-bd:   #FBE0B0;
  --chip-event-bg:   #F3E8FF; --chip-event-ink: #6D28D9; --chip-event-bd: #DDD6FE;
  --chip-event-bg-deep: #EDE9FE;

  --shadow-card-xs: 0 1px 2px rgba(0,0,0,.04);
  --shadow-card:    0 4px 16px rgba(15,23,42,.06);
  --shadow-card-lg: 0 24px 60px rgba(15,23,42,.08);
  --shadow-cta:     0 6px 16px rgba(0,102,255,.18);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  --font-sans:    'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-display: 'Archivo', 'Plus Jakarta Sans', sans-serif;

  --dark-bg:        #0b1424;
  --dark-bg-alt:    #0e1a30;
  --dark-border:    #1d2a44;
  --dark-ink:       #e8edf6;
  --dark-ink-muted: #a3b2cc;

  --maxw: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }

/* ────────────── Buttons ────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; padding: 0 18px;
  border-radius: var(--radius-md);
  font-family: var(--font-sans); font-weight: 700; font-size: 14px;
  border: none; cursor: pointer; white-space: nowrap;
  transition: background 140ms ease, transform 120ms ease, border-color 140ms ease, color 140ms ease;
}
.btn-primary  { background: var(--accent); color: #fff; box-shadow: var(--shadow-cta); }
.btn-primary:hover { background: var(--accent-hover); }
.btn-primary:active { transform: scale(.98); }
.btn-secondary { background: var(--surface); color: var(--ink); border: 1px solid var(--border-strong); box-shadow: var(--shadow-card-xs); }
.btn-secondary:hover { background: var(--surface-hover); border-color: var(--ink-muted); }
.btn-ghost {
  background: transparent; color: var(--ink-secondary);
  height: 40px; padding: 0 14px;
  font-weight: 600; font-size: 14px;
}
.btn-ghost:hover { color: var(--ink); }
.btn-dark { background: var(--ink); color: #fff; box-shadow: var(--shadow-card-xs); }
.btn-dark:hover { background: #1a1a1a; }
.btn-dark:active { transform: scale(.98); }

/* ────────────── Section header pattern ────────────── */
.shead { display: flex; flex-direction: column; gap: 8px; margin-bottom: 32px; max-width: 720px; }
.shead.center { margin-left: auto; margin-right: auto; align-items: center; text-align: center; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-sans); font-weight: 700; font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent);
}
.eyebrow::before {
  content: ""; width: 6px; height: 6px; border-radius: 999px;
  background: var(--accent); flex-shrink: 0;
}
.shead h2 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(28px, 3.6vw, 44px); line-height: 1.06;
  letter-spacing: -0.02em;
  color: var(--ink); margin: 0;
  text-wrap: balance;
}
.shead p {
  font-family: var(--font-sans); font-weight: 400; font-size: 15px;
  line-height: 1.55; color: var(--ink-muted); margin: 4px 0 0;
  max-width: 620px; text-wrap: pretty;
}

/* Site header + nav: assets/siteheader-nav.css */

/* ────────────── Pricing (tarifs) page ────────────── */
.pricing-hero { padding: 56px 0 32px; text-align: center; }
.pricing-hero .eyebrow { justify-content: center; }
.pricing-hero h1 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(40px, 5vw, 64px); line-height: 1.0;
  letter-spacing: -0.028em; margin: 16px auto 18px; max-width: 800px;
  text-wrap: balance;
}
.pricing-hero h1 .accent { color: var(--accent); }
.pricing-hero p { font-size: 17px; color: var(--ink-secondary); max-width: 580px; margin: 0 auto 24px; line-height: 1.55; }
.billing-toggle {
  display: inline-flex; padding: 4px; background: var(--surface);
  border: 1px solid var(--border); border-radius: 999px;
  box-shadow: var(--shadow-card-xs);
  margin: 12px auto 0;
}
.billing-toggle button {
  border: 0; background: transparent;
  padding: 8px 18px; border-radius: 999px;
  font-family: var(--font-sans); font-weight: 700; font-size: 12.5px;
  color: var(--ink-secondary); cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
  display: inline-flex; align-items: center; gap: 6px;
}
.billing-toggle button.active { background: var(--accent); color: #fff; }
.billing-toggle button .save {
  font-size: 10px; padding: 2px 7px; background: rgba(255,255,255,.22);
  border-radius: 999px; font-weight: 800; letter-spacing: .04em;
}
.billing-toggle button:not(.active):hover { color: var(--ink); }

.tiers {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  margin-top: 24px;
}
.tier {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 32px 28px;
  display: flex; flex-direction: column; gap: 18px;
  position: relative;
  box-shadow: var(--shadow-card-xs);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.tier:hover { transform: translateY(-2px); box-shadow: var(--shadow-card); border-color: var(--border-strong); }
.tier.featured {
  background: var(--dark-bg);
  border-color: var(--dark-border);
  color: var(--dark-ink);
  box-shadow: 0 30px 60px rgba(0,102,255,.16), 0 8px 24px rgba(11,20,36,.18);
}
.tier.featured:hover { transform: translateY(-4px); }
.tier .badge {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: var(--accent); color: #fff;
  padding: 4px 12px; border-radius: 999px;
  font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  box-shadow: var(--shadow-cta);
}
.tier .name {
  font-family: var(--font-sans); font-weight: 800; font-size: 14px;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--accent);
}
.tier.featured .name { color: var(--accent-soft-ink); }
.tier .tagline { font-size: 13.5px; color: var(--ink-muted); line-height: 1.5; }
.tier.featured .tagline { color: var(--dark-ink-muted); }
.tier .price {
  display: flex; align-items: baseline; gap: 6px;
  margin: 4px 0 2px;
}
.tier .price .amt {
  font-family: var(--font-display); font-weight: 800;
  font-size: 52px; line-height: 1; letter-spacing: -0.02em;
  color: var(--ink); font-feature-settings: "tnum";
}
.tier.featured .price .amt { color: #fff; }
.tier .price .cur {
  font-family: var(--font-display); font-weight: 800; font-size: 24px;
  color: var(--ink); align-self: flex-start; margin-top: 6px;
}
.tier.featured .price .cur { color: #fff; }
.tier .price .per { font-size: 13px; color: var(--ink-muted); font-weight: 500; }
.tier.featured .price .per { color: var(--dark-ink-muted); }
.tier .price--devis .amt { font-size: clamp(28px, 4vw, 40px); letter-spacing: -0.01em; }
.tier .billed { font-size: 12px; color: var(--ink-muted); margin-top: -2px; }
.tier.featured .billed { color: var(--dark-ink-muted); }
.tier .cta { margin-top: 6px; }
.tier .cta .btn { width: 100%; }
.tier.featured .btn-secondary {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.18);
  color: #fff;
}
.tier.featured .btn-secondary:hover { background: rgba(255,255,255,.14); }
.tier .feats { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; border-top: 1px solid var(--border-subtle); }
.tier.featured .feats { border-top-color: rgba(255,255,255,.1); }
.tier .feats .group { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 4px; }
.tier.featured .feats .group { color: var(--dark-ink-muted); }
.tier .feats li {
  display: flex; gap: 10px; align-items: flex-start;
  font-size: 13.5px; line-height: 1.45;
  color: var(--ink-secondary);
}
.tier.featured .feats li { color: var(--dark-ink); }
.tier .feats ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.tier .feats li::before {
  content: ""; width: 18px; height: 18px; border-radius: 999px;
  background: var(--accent-muted); flex-shrink: 0; margin-top: 1px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230066FF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");
  background-size: 11px; background-repeat: no-repeat; background-position: center;
}
.tier.featured .feats li::before {
  background-color: rgba(103,163,255,.22);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2367a3ff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");
}

/* ────────────── Comparison table ────────────── */
.cmp-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card-xs);
}
.tiers + .cmp-wrap { margin-top: 60px; }
.cmp {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-family: var(--font-sans);
}
.cmp .cmp-col-label { width: 46%; }
.cmp .cmp-col-plan { width: 18%; }
.cmp thead th {
  font-size: 13px; font-weight: 800; color: var(--ink);
  padding: 18px 12px; text-align: center;
  background: var(--surface-subtle);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.cmp thead th:first-child {
  text-align: left;
  padding-left: 20px;
  padding-right: 20px;
  white-space: normal;
}
.cmp thead th .pop {
  display: inline-block; margin-left: 6px; padding: 2px 8px;
  background: var(--accent); color: #fff; font-size: 9.5px;
  letter-spacing: .08em; text-transform: uppercase; border-radius: 999px;
}
.cmp tbody tr td {
  min-height: 92px;
  padding: 20px 12px;
  font-size: 13.5px;
  line-height: 1.35;
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: middle;
  box-sizing: border-box;
}
.cmp tbody tr:last-child td { border-bottom: 0; }
.cmp tbody td:first-child {
  color: var(--ink);
  font-weight: 600;
  text-align: left;
  padding-left: 20px;
  padding-right: 20px;
  white-space: normal;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
.cmp tbody td:not(:first-child) {
  text-align: center;
  color: var(--ink-secondary);
  font-feature-settings: "tnum";
  white-space: nowrap;
}
.cmp .grouphead td {
  background: var(--surface-subtle);
  font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-muted);
  padding: 14px 20px 12px;
}
.cmp .check {
  width: 20px; height: 20px; border-radius: 999px;
  background: var(--accent-muted);
  color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center;
}
.cmp .dash { color: var(--ink-faint); font-size: 18px; line-height: 1; }
.cmp tbody td.featured { background: rgba(0,102,255,.025); }

/* ────────────── FAQ · split layout (homepage) ────────────── */
.faq-split {
  display: grid;
  grid-template-columns: minmax(260px, 0.38fr) minmax(0, 0.62fr);
  gap: clamp(48px, 7vw, 100px);
  align-items: center;
}
.faq-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: none;
  width: 100%;
  position: static;
}
.faq-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 22px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.faq-badge svg { color: var(--ink-secondary); flex-shrink: 0; }
.faq-intro h2 {
  margin: 0 0 20px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.04;
  letter-spacing: -0.03em;
  color: var(--ink);
  text-wrap: balance;
}
.faq-lede {
  margin: 0 0 32px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-secondary);
  text-wrap: pretty;
}
.faq-accordion {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.faq-row {
  border: none;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}
.faq-row summary {
  list-style: none;
  cursor: pointer;
  padding: 10px 0;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(15px, 1.6vw, 17px);
  line-height: 1.35;
  color: var(--ink);
}
.faq-row summary::-webkit-details-marker { display: none; }
.faq-row summary::after {
  content: "";
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  margin-left: auto;
  margin-top: 2px;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background-color: transparent;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0A0A' stroke-width='2' stroke-linecap='round'><path d='M12 5v14M5 12h14'/></svg>");
  background-size: 14px 14px;
  background-repeat: no-repeat;
  background-position: center;
  transition: border-color 140ms ease, background-color 140ms ease;
}
.faq-row[open] summary::after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0A0A' stroke-width='2' stroke-linecap='round'><path d='M5 12h14'/></svg>");
  transform: none;
}
.faq-row .a {
  padding: 0 48px 10px 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-secondary);
  text-wrap: pretty;
}

/* ────────────── FAQ · legacy card list ────────────── */
.faq-list {
  max-width: 800px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 8px;
}
.faq-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color 140ms ease;
}
.faq-item:hover { border-color: var(--border-strong); }
.faq-item summary {
  list-style: none; cursor: pointer;
  padding: 20px 24px;
  display: flex; align-items: center; gap: 16px;
  font-family: var(--font-sans); font-weight: 700; font-size: 15.5px;
  color: var(--ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: ""; width: 18px; height: 18px; flex-shrink: 0;
  margin-left: auto;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A0A0A' stroke-width='2.4' stroke-linecap='round'><line x1='6' y1='9' x2='12' y2='15'/><line x1='12' y1='15' x2='18' y2='9'/></svg>");
  background-size: contain; background-repeat: no-repeat;
  transition: transform 220ms ease;
}
.faq-item[open] summary::after { transform: rotate(180deg); }
.faq-item .a {
  padding: 0 24px 22px;
  font-size: 14px; line-height: 1.6; color: var(--ink-secondary);
}

/* ────────────── Feature page hero ────────────── */
.feat-hero {
  padding: 56px 0 64px;
  background: var(--surface);
}
.feat-hero .grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 56px; align-items: center;
}
.feat-hero--screenshot .grid,
.feat-hero--plan-events .grid,
.feat-hero--plan-board .grid {
  grid-template-columns: 1.1fr minmax(0, max-content);
}
.feat-hero--dashboard .grid {
  grid-template-columns: 1.1fr minmax(0, 1fr);
}
.feat-hero--app .grid {
  grid-template-columns: 1.1fr minmax(0, max-content);
}
.feat-hero .crumbs {
  display: flex; gap: 8px; align-items: center;
  font-size: 12px; font-weight: 600; color: var(--ink-muted);
  margin-bottom: 16px;
}
.feat-hero .crumbs a { color: var(--ink-muted); }
.feat-hero .crumbs a:hover { color: var(--ink); }
.feat-hero .crumbs .chev { color: var(--ink-faint); }
.feat-hero .crumbs .here { color: var(--ink); }
.feat-hero h1 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(36px, 4.6vw, 56px); line-height: 1.04;
  letter-spacing: -0.026em; color: var(--ink); margin: 12px 0 18px;
  text-wrap: balance;
}
.feat-hero h1 .accent { color: var(--accent); }
.feat-hero .sub {
  font-size: 16px; line-height: 1.55; color: var(--ink-secondary);
  max-width: 480px; margin: 0 0 24px;
}
.feat-hero .ctas { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.feat-hero .visual {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  aspect-ratio: 5/4;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-card-lg);
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Maquette planning (hero + cartes feature-planning) */
.planning-mock,
.plan-ui {
  --plan-free-bg: #e8f7ee;
  --plan-free-bd: #c5e8d2;
  --plan-free-ink: #1a7a42;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: 10px;
  width: 100%;
}
.plan-ui__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(15, 30, 60, 0.04);
  flex-shrink: 0;
}
.plan-ui__toolbar-left {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 0;
}
.plan-ui__arrow {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-muted);
  font-size: 14px;
  line-height: 1;
  flex-shrink: 0;
  cursor: default;
  padding: 0;
}
.plan-ui__dates {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: nowrap;
  overflow-x: auto;
  max-width: 100%;
  scrollbar-width: none;
}
.plan-ui__dates::-webkit-scrollbar { display: none; }
.plan-ui__dates button {
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  color: var(--ink-secondary);
  font-size: 10px;
  font-weight: 600;
  padding: 5px 9px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
  cursor: default;
  font-family: inherit;
}
.plan-ui__dates button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.plan-ui__dates .plan-ui__week-btn {
  background: var(--surface);
  border-color: var(--accent-border);
  color: var(--accent);
  font-weight: 700;
  box-shadow: 0 1px 0 rgba(0, 102, 255, 0.06), inset 0 -1px 0 rgba(0, 102, 255, 0.04);
  cursor: pointer;
}
.plan-ui__dates .plan-ui__week-btn:hover {
  background: var(--accent-muted);
  border-color: var(--accent);
}
.plan-ui__chip {
  font-size: 10px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-secondary);
  white-space: nowrap;
}
.plan-ui__filters {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.plan-ui__filter {
  font-size: 10px;
  font-weight: 600;
  color: var(--ink-muted);
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  white-space: nowrap;
}
.plan-ui__filter em {
  font-style: normal;
  color: var(--ink);
  font-weight: 700;
}
.plan-ui__filter.is-active {
  border-color: var(--accent-border);
  background: var(--accent-muted);
  color: var(--accent);
}
.plan-ui__stats {
  display: flex;
  gap: 6px;
  margin-left: auto;
  flex-wrap: wrap;
}
.plan-ui__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  padding: 6px 10px;
  border-radius: 10px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.plan-ui__stat span {
  font-size: 9px;
  font-weight: 600;
  color: var(--ink-muted);
  text-transform: lowercase;
}
.plan-ui__stat strong {
  font-size: 13px;
  font-weight: 800;
  color: var(--ink);
  font-feature-settings: "tnum";
  line-height: 1.1;
}
.plan-ui__board {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 30, 60, 0.04);
}
.plan-ui__head,
.plan-ui__row {
  display: grid;
  grid-template-columns: 36px repeat(var(--plan-cols, 5), minmax(0, 1fr));
  gap: 4px;
  align-items: stretch;
}
.plan-ui__head {
  padding: 8px 8px 6px;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  flex-shrink: 0;
}
.plan-ui__time-col {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  line-height: 1.2;
}
.plan-ui__zoom {
  font-size: 9px;
  font-weight: 800;
  color: var(--ink-faint);
  letter-spacing: 0;
}
.plan-ui__court {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-align: center;
  min-width: 0;
}
.plan-ui__court strong {
  font-size: 9px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.plan-ui__court small {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-faint);
  line-height: 1;
}
.plan-ui__court small svg { flex-shrink: 0; opacity: 0.7; }
.plan-ui__court--muted strong { color: var(--ink-muted); }
.plan-ui__body {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px 8px 8px;
  overflow-x: auto;
}
.plan-ui__row { min-height: 32px; flex-shrink: 0; }
.plan-ui__hour {
  font-size: 9px;
  font-weight: 700;
  color: var(--ink-muted);
  font-feature-settings: "tnum";
  display: flex;
  align-items: center;
}
.plan-ui__cell {
  border-radius: 8px;
  min-height: 28px;
  border: 1px solid var(--border-subtle);
  background: #fff;
}
.plan-ui__cell--empty {
  background: #fff;
  border-color: var(--border-subtle);
}
.plan-ui__cell--free {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--plan-free-bg);
  border-color: var(--plan-free-bd);
}
.plan-ui__cell--free span {
  font-size: 10px;
  font-weight: 800;
  color: var(--plan-free-ink);
  font-feature-settings: "tnum";
}
.plan-ui__cell--book {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  padding: 3px 4px 3px 5px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-left: 3px solid var(--accent);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
  overflow: hidden;
  min-height: 28px;
}
.plan-ui__cell--book-warn {
  border-left-color: #f97316;
}
.plan-ui__book-time {
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-faint);
  line-height: 1.1;
  white-space: nowrap;
}
.plan-ui__book-name {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.plan-ui__book-price {
  font-size: 7px;
  font-weight: 800;
  font-style: normal;
  color: var(--accent);
  font-feature-settings: "tnum";
  line-height: 1.1;
}
.plan-ui__cell--book-warn .plan-ui__book-price {
  color: #ea580c;
}
.plan-ui__event {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  padding: 4px 5px;
  min-height: 28px;
  border-radius: 6px;
  line-height: 1.15;
  overflow: hidden;
  grid-column: span 2;
}
.plan-ui__event--span-2 {
  grid-column: span 2;
}
.plan-ui__event--tour {
  background: linear-gradient(145deg, #faf5ff 0%, var(--chip-event-bg) 100%);
  border: 1px solid var(--chip-event-bd);
  color: var(--chip-event-ink);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
.plan-ui__event--live {
  background: linear-gradient(145deg, var(--chip-event-bg-deep) 0%, #ddd6fe 100%);
  border-color: #c4b5fd;
  color: var(--chip-event-ink);
}
.plan-ui__event--finale {
  background: linear-gradient(145deg, #ede9fe 0%, #ddd6fe 100%);
  border-color: #a78bfa;
  box-shadow: 0 0 0 1px rgba(109, 40, 217, 0.14);
}
.plan-ui__event-tag {
  font-size: 6px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #7c3aed;
  line-height: 1;
}
.plan-ui__event--live .plan-ui__event-tag,
.plan-ui__event--finale .plan-ui__event-tag {
  color: #6d28d9;
}
.plan-ui__event strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.plan-ui__event small {
  font-size: 6px;
  font-weight: 600;
  color: #7c3aed;
  opacity: 0.85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.plan-ui__cell--pick {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.18);
}
.plan-ui__now {
  position: absolute;
  left: 8px;
  right: 8px;
  top: 31%;
  height: 2px;
  background: #e53935;
  border-radius: 1px;
  z-index: 2;
  pointer-events: none;
}
.plan-ui__now::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -3.5px;
  border-radius: 999px;
  background: #e53935;
}
.plan-ui--compact { gap: 8px; max-width: 100%; }
.plan-ui--compact .plan-ui__toolbar--mini {
  padding: 8px 10px;
  flex-wrap: wrap;
}
.plan-ui--compact .plan-ui__toolbar--mini .plan-ui__stats { margin-left: auto; }
.plan-ui--compact .plan-ui__stat { min-width: 44px; padding: 4px 8px; }
.plan-ui--compact .plan-ui__stat strong { font-size: 11px; }
.plan-ui--compact .plan-ui__court strong { font-size: 8px; }
.plan-ui--compact .plan-ui__row { min-height: 26px; }
.plan-ui--compact .plan-ui__cell { min-height: 24px; border-radius: 6px; }
.plan-ui--compact .plan-ui__cell--free span { font-size: 9px; }
.plan-ui--stats-only { gap: 12px; }
.plan-ui--stats-only .plan-ui__stats--hero {
  margin-left: 0;
  width: 100%;
  justify-content: stretch;
}
.plan-ui--stats-only .plan-ui__stats--hero .plan-ui__stat { flex: 1; min-width: 0; }
.plan-ui__stats-hint {
  margin: 0;
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 12px;
  color: var(--ink-muted);
  line-height: 1.45;
}
.plan-ui__stats-hint strong { color: var(--ink); }
.plan-ui--filters .plan-ui__filters--focus { width: 100%; }
.plan-ui--filters .plan-ui__filter.is-active {
  box-shadow: 0 0 0 2px rgba(0, 102, 255, 0.12);
}
.plan-ui__pick-label {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
  text-align: center;
}
.plan-ui--dates {
  gap: 14px;
  padding: 4px 0;
}
.plan-ui__dates-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.plan-ui__dates--wide {
  flex: 1;
  justify-content: center;
}
.plan-ui__dates-hint {
  margin: 0;
  font-size: 12px;
  color: var(--ink-muted);
  text-align: center;
  line-height: 1.45;
}
.feat-hero .visual .plan-ui--hero {
  flex: 1;
  min-height: 0;
  gap: 0;
}
.feat-hero .visual .plan-ui--hero .plan-ui__board {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.feat-hero .visual .plan-ui--hero .plan-ui__head {
  padding: 8px 8px 6px;
  flex-shrink: 0;
}
.feat-hero .visual .plan-ui--hero .plan-ui__head,
.feat-hero .visual .plan-ui--hero .plan-ui__row {
  grid-template-columns: 34px repeat(var(--plan-cols, 6), minmax(0, 1fr));
  gap: 3px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__time-col {
  font-size: 8px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__court strong {
  font-size: 9px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__court small {
  font-size: 7px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__court small svg {
  width: 7px;
  height: 7px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 4px 8px 6px;
  gap: 2px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__row {
  flex: 1 1 0;
  min-height: 0;
}
.feat-hero .visual .plan-ui--hero .plan-ui__hour {
  font-size: clamp(7px, 0.85vw, 9px);
}
.feat-hero .visual .plan-ui--hero .plan-ui__cell {
  min-height: 0;
  border-radius: 5px;
}
.feat-hero .visual .plan-ui--hero .plan-ui__cell--free span {
  font-size: clamp(7px, 0.9vw, 9px);
}
.feat-hero .visual .plan-ui--hero .plan-ui__now {
  top: calc(100% * 2 / var(--plan-hours, 15));
}
.feat-hero .plan-ui--hero-board {
  width: 100%;
  max-width: min(100%, 540px);
  margin: 0;
  align-self: center;
  justify-self: stretch;
  gap: 8px;
  border-radius: 15px;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  padding: 10px;
}
.feat-hero .plan-ui--hero-board .plan-ui__toolbar--hero {
  padding: 6px 8px;
  border-radius: 10px;
}
.feat-hero .plan-ui--hero-board .plan-ui__dates button {
  font-size: 8px;
  padding: 4px 7px;
}
.feat-hero .plan-ui--hero-board .plan-ui__stat {
  min-width: 40px;
  padding: 4px 6px;
}
.feat-hero .plan-ui--hero-board .plan-ui__stat strong {
  font-size: 10px;
}
.feat-hero .plan-ui--hero-board .plan-ui__board {
  border-radius: 10px;
  min-height: 260px;
}
.feat-hero .plan-ui--hero-board .plan-ui__head,
.feat-hero .plan-ui--hero-board .plan-ui__row {
  grid-template-columns: 28px repeat(var(--plan-cols, 5), minmax(0, 1fr));
  gap: 3px;
}
.feat-hero .plan-ui--hero-board .plan-ui__court strong {
  font-size: 7px;
}
.feat-hero .plan-ui--hero-board .plan-ui__court small {
  font-size: 6px;
}
.feat-hero .plan-ui--hero-board .plan-ui__row {
  min-height: 30px;
}
.feat-hero .plan-ui--hero-board .plan-ui__hour {
  font-size: 7px;
}
.feat-hero .plan-ui--hero-board .plan-ui__cell--free span {
  font-size: 8px;
}
.feat-hero .plan-ui--hero-board .plan-ui__cell--book {
  min-height: 26px;
  padding: 2px 3px 2px 4px;
}
.feat-hero .plan-ui--hero-board .plan-ui__book-time {
  font-size: 5px;
}
.feat-hero .plan-ui--hero-board .plan-ui__book-name {
  font-size: 6px;
}
.feat-hero .plan-ui--hero-board .plan-ui__book-price {
  font-size: 6px;
}
.feat-hero .plan-ui--hero-board .plan-ui__event {
  min-height: 28px;
  padding: 3px 5px;
}
.feat-hero .plan-ui--hero-board .plan-ui__event strong {
  font-size: 6px;
}
.feat-hero .plan-ui--hero-board .plan-ui__event small,
.feat-hero .plan-ui--hero-board .plan-ui__event-tag {
  font-size: 5px;
}
.feat-hero .plan-ui--hero-board .plan-ui__now {
  top: 42%;
}
@media (max-width: 900px) {
  .feat-hero .visual .plan-ui--hero .plan-ui__head,
  .feat-hero .visual .plan-ui--hero .plan-ui__row {
    grid-template-columns: 36px repeat(var(--plan-cols, 6), minmax(40px, 1fr));
  }
  .feat-hero .plan-ui--hero-board .plan-ui__head,
  .feat-hero .plan-ui--hero-board .plan-ui__row {
    grid-template-columns: 28px repeat(var(--plan-cols, 5), minmax(44px, 1fr));
  }
}

/* ────────────── Responsive : dropdown ────────────── */
@media (max-width: 1100px) {
  .mega { padding: 8px; }
  .feat-hero .grid, .tiers { gap: 24px; }
}
@media (max-width: 900px) {
  .navlinks { display: none; }
  .pricing-hero, .feat-hero { padding-top: 36px; }
  .feat-hero .grid { grid-template-columns: 1fr; gap: 32px; }
  .feat-hero .visual.dash-hero-mock,
  .feat-hero--dashboard .visual.dash-hero-mock,
  .feat-hero .visual:has(.stock-ui--hero),
  .feat-hero .visual.mod-hero-mock:has(.stock-ui--hero),
  .feat-hero .visual:has(.res-ui--hero),
  .feat-hero .visual.mod-hero-mock:has(.res-ui--hero) {
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    overflow: hidden;
    padding: 14px;
    justify-self: stretch;
    max-width: 100%;
    align-self: stretch;
    min-width: 0;
    box-sizing: border-box;
  }
  .dash-hero-mock .dash-hero-board__top,
  .dash-hero-mock .dash-hero-board__bottom {
    grid-template-columns: 1fr;
  }
  .dash-hero-mock .dash-hero-fill-gauges {
    grid-template-columns: 1fr 1fr;
  }
  .dash-hero-board__bottom .dash-hero-board__cell--rank,
  .dash-hero-board__bottom .dash-hero-board__stack {
    grid-column: 1;
  }
  .tiers { grid-template-columns: 1fr; gap: 14px; }
  .tier.featured { order: -1; }
  .cmp-wrap { overflow-x: auto; }
  .cmp { min-width: 640px; }
  .cmp thead th:nth-child(3) {
    white-space: normal;
    line-height: 1.25;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .cmp thead th:nth-child(3) .pop {
    display: block;
    margin: 6px auto 0;
    width: max-content;
    max-width: 100%;
  }
}
/* ────────────── Sections ────────────── */
section.block { padding: 96px 0; }
section.block.alt { background: var(--surface-subtle); }
section.block.dark { background: var(--dark-bg); color: var(--dark-ink); }
section.block.dark .shead h2 { color: #fff; }
section.block.dark .shead p { color: var(--dark-ink-muted); }
section.block.dark .eyebrow { color: var(--accent-soft-ink); }
section.block.dark .eyebrow::before { background: var(--accent-soft-ink); }

/* ────────────── Sport hero (used by every landing-<sport>.html) ────────────── */
.sport-hero { padding: 56px 0 0; }
.sport-hero .grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 56px; align-items: center;
}
.sport-hero .crumbs {
  display: flex; gap: 8px; align-items: center;
  font-size: 12px; font-weight: 600; color: var(--ink-muted);
  margin-bottom: 20px;
}
.sport-hero .crumbs a { color: var(--ink-muted); }
.sport-hero .crumbs a:hover { color: var(--ink); }
.sport-hero .crumbs .chev { color: var(--ink-faint); }
.sport-hero .crumbs .here { color: var(--ink); }
.sport-hero h1 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(40px, 5.2vw, 64px); line-height: 1.02;
  letter-spacing: -0.028em; color: var(--ink); margin: 16px 0 20px;
  text-wrap: balance;
}
.sport-hero h1 .accent { color: var(--accent); }
.sport-hero .sub {
  font-size: 16px; line-height: 1.55; color: var(--ink-secondary);
  max-width: 480px; margin: 0 0 28px;
}
.sport-hero .ctas { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.sport-hero .micro {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  max-width: 100%;
}
.sport-hero .micro-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.sport-hero .micro-val {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.1;
  font-feature-settings: "tnum";
}
.sport-hero .micro-lbl {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-muted);
  line-height: 1.35;
}

.sport-hero .visual {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  overflow: hidden;
  box-shadow: var(--shadow-card-lg);
  background: #1f2a40;
}
.sport-hero .visual-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.sport-hero .visual .floating {
  position: absolute; bottom: 22px; left: 22px; right: 22px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: 0 24px 50px rgba(7,18,36,.3);
  padding: 14px;
  z-index: 2;
}
.sport-hero .visual .floating .head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px;
}
.sport-hero .visual .floating .head .t {
  font-size: 11px; font-weight: 800; color: var(--ink);
}
.sport-hero .visual .floating .head .pill {
  font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 999px;
  background: var(--success-muted); color: var(--success-ink); border: 1px solid var(--success-border);
}
.sport-hero .visual .floating .rows { display: flex; flex-direction: column; gap: 6px; }
.sport-hero .visual .floating .rwr {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px; border-radius: 8px;
  background: var(--surface-subtle); border: 1px solid var(--border-subtle);
}
.sport-hero .visual .floating .rwr .when { font-size: 10px; font-weight: 700; color: var(--ink); width: 38px; }
.sport-hero .visual .floating .rwr .what { font-size: 10px; color: var(--ink-secondary); flex: 1; }
.sport-hero .visual .floating .rwr .pr { font-size: 10px; font-weight: 800; color: var(--accent); font-feature-settings: "tnum"; }

/* trust strip : bandeau sous le hero sport */
.truststrip {
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  margin-top: 0;
}
.truststrip .row {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  padding: 16px 0; flex-wrap: wrap;
}
.truststrip .item {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 600; color: var(--ink-secondary);
}
.truststrip .item b { color: var(--ink); font-weight: 800; font-feature-settings: "tnum"; }
.truststrip svg { color: var(--accent); flex-shrink: 0; }

/* sport wip : section « contenu en construction » sous hero sport */
.sport-wip {
  padding: 56px 0 72px;
  background: var(--bg);
}
.sport-wip__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 36px;
  min-height: clamp(540px, 68vh, 720px);
  padding: clamp(40px, 5vw, 64px) clamp(24px, 4vw, 48px);
  text-align: center;
  background: var(--surface);
  border: 2px dotted var(--border-strong);
  border-radius: var(--radius-xl);
}
.sport-wip__illus {
  width: min(100%, 560px);
  margin: 0 auto;
}
.sport-wip__svg {
  display: block;
  width: 100%;
  height: auto;
}
.sport-wip__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  max-width: 520px;
}
.sport-wip__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
}
.sport-wip__title {
  margin: 0 0 14px;
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(30px, 4vw, 40px);
  line-height: 1.1;
  letter-spacing: -0.024em;
  color: var(--ink);
  text-wrap: balance;
}
.sport-wip__desc {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--ink-secondary);
  text-wrap: pretty;
}

/* Illustration chantier — animations cohérentes */
.sport-wip__crane-arm {
  transform-origin: 384px 81.5px;
  animation: sport-wip-crane 5.5s ease-in-out infinite;
}
.sport-wip__crane-load {
  animation: sport-wip-load 5.5s ease-in-out infinite;
}
.sport-wip__beacon {
  animation: sport-wip-beacon 1.4s ease-in-out infinite;
}
.sport-wip__cone--1 { animation: sport-wip-cone 2.8s ease-in-out infinite; }
.sport-wip__cone--2 { animation: sport-wip-cone 2.8s ease-in-out 0.6s infinite; }
.sport-wip__cloud--1 { animation: sport-wip-cloud 9s ease-in-out infinite; }
.sport-wip__cloud--2 { animation: sport-wip-cloud 11s ease-in-out 1.5s infinite reverse; }
.sport-wip__progress-bar {
  width: 60px;
  animation: sport-wip-progress 4s ease-in-out infinite;
}

@keyframes sport-wip-crane {
  0%, 100% { transform: rotate(-4deg); }
  50% { transform: rotate(5deg); }
}
@keyframes sport-wip-load {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}
@keyframes sport-wip-beacon {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
@keyframes sport-wip-cone {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes sport-wip-cloud {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(10px); }
}
@keyframes sport-wip-progress {
  0%, 100% { width: 60px; }
  50% { width: 200px; }
}

@media (prefers-reduced-motion: reduce) {
  .sport-wip__crane-arm,
  .sport-wip__crane-load,
  .sport-wip__beacon,
  .sport-wip__cone--1,
  .sport-wip__cone--2,
  .sport-wip__cloud--1,
  .sport-wip__cloud--2,
  .sport-wip__progress-bar { animation: none; }
  .sport-wip__progress-bar { width: 120px; }
}

@media (max-width: 720px) {
  .sport-wip { padding: 40px 0 56px; }
  .sport-wip__card {
    min-height: clamp(480px, 72vh, 620px);
    gap: 28px;
  }
}

/* ────────────── Landing padel · back-office (feat stack) ────────────── */
.padel-feat-stack {
  grid-template-columns: 1fr;
  gap: 14px;
}
.padel-feat-stack__item {
  flex-direction: row;
  align-items: flex-start;
  gap: 20px;
  text-decoration: none;
  color: inherit;
}
.padel-feat-stack__item .ic { flex-shrink: 0; margin-top: 2px; }
.padel-feat-stack__copy {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.padel-feat-stack__copy h3 { margin: 0; }
.padel-feat-stack__copy p { margin: 0; }

@media (max-width: 640px) {
  .padel-feat-stack__item { padding: 22px; gap: 16px; }
}

/* Back-office sport · split + illustration */
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .shead { margin-bottom: 32px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .wrap,
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-gestionnaire__split {
  overflow: visible;
}
.padel-gestionnaire__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.92fr);
  gap: clamp(32px, 4vw, 56px);
  align-items: center;
}
.padel-gestionnaire__split .padel-feat-stack {
  align-self: start;
}
.padel-gestionnaire__visual {
  position: relative;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  align-self: center;
}

.padel-bo-scene {
  position: relative;
  width: 100%;
  height: auto;
  padding: 36px 28px 32px;
  border-radius: calc(var(--radius-lg) + 4px);
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  box-shadow: none;
}
.padel-bo-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 60% at 18% 12%, rgba(0, 102, 255, 0.14), transparent 55%),
    radial-gradient(ellipse 70% 55% at 88% 78%, rgba(255, 107, 90, 0.1), transparent 52%),
    linear-gradient(165deg, #f7f9fc 0%, #eef3fa 48%, #e8eef8 100%);
  border: 1px solid rgba(0, 102, 255, 0.1);
  box-shadow:
    0 24px 64px rgba(15, 30, 60, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.padel-bo-scene__mesh,
.padel-bo-scene__court { z-index: 0; }
.padel-bo-scene__mesh {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 102, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 102, 255, 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(ellipse 85% 75% at 50% 45%, #000 20%, transparent 100%);
  pointer-events: none;
}
.padel-bo-scene__court {
  position: absolute;
  right: -24px;
  bottom: -20px;
  width: min(42%, 180px);
  height: auto;
  color: var(--accent);
  opacity: 0.55;
  pointer-events: none;
  transform: rotate(-8deg);
}

.padel-bo-device {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 440px;
  max-height: 100%;
  margin: 0 auto;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(15, 30, 60, 0.08);
  box-shadow:
    0 28px 56px rgba(15, 30, 60, 0.14),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
  transform: perspective(1200px) rotateY(-4deg) rotateX(2deg);
  transform-origin: center left;
}
.padel-bo-device__chrome {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-subtle);
  background: linear-gradient(180deg, #fafbfd 0%, #f3f6fb 100%);
  border-radius: 18px 18px 0 0;
}
.padel-bo-device__chrome span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #dde4ee;
}
.padel-bo-device__chrome span:first-child { background: #ff6b5a; }
.padel-bo-device__chrome span:nth-child(2) { background: #ffc857; }
.padel-bo-device__chrome span:nth-child(3) { background: #34c759; }
.padel-bo-device__title {
  margin: 0 0 0 auto;
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.padel-bo-device__screen {
  padding: 10px;
  background: #eef2f6;
  border-radius: 0 0 18px 18px;
  overflow: hidden;
}

:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan.plan-ui--hero-board {
  gap: 6px;
  font-size: 10px;
}
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__toolbar--hero {
  padding: 6px 8px;
  border-radius: 10px;
}
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__dates button {
  font-size: 9px;
  padding: 4px 7px;
}
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__stat {
  min-width: 42px;
  padding: 4px 6px;
}
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__stat strong { font-size: 10px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__board {
  border-radius: 10px;
  overflow: hidden;
}
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__head,
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__row {
  --plan-cols: 4;
}
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__court strong { font-size: 8px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__court small { font-size: 7px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__row { min-height: 28px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__hour { font-size: 8px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__cell--free span { font-size: 8px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__book-time { font-size: 6.5px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__book-name { font-size: 7.5px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__book-price { font-size: 7px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__event strong { font-size: 8px; }
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__event small,
:is(#padel-gestionnaire, #tennis-gestionnaire, #squash-gestionnaire, #badminton-gestionnaire, #basket-gestionnaire, #foot5-gestionnaire) .padel-bo-plan .plan-ui__event-tag { font-size: 6.5px; }

.padel-bo-float {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: 0 12px 32px rgba(15, 30, 60, 0.12);
  backdrop-filter: blur(10px);
  animation: padel-bo-float 5s ease-in-out infinite;
}
.padel-bo-float--tour {
  top: 12px;
  left: 0;
  transform: translateX(-20px);
  max-width: 190px;
  animation: padel-bo-float-tour 5s ease-in-out infinite;
  animation-delay: 0s;
}
.padel-bo-float--fill {
  top: 50%;
  right: 0;
  transform: translate(22px, -50%);
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 12px 16px;
  background: linear-gradient(145deg, #0a0a0a 0%, #1a2332 100%);
  border-color: rgba(255, 255, 255, 0.08);
  color: #fff;
  animation: padel-bo-float-fill 5s ease-in-out infinite;
  animation-delay: -1.6s;
}
.padel-bo-float--slot {
  bottom: 10%;
  left: 2%;
  animation-delay: -3.2s;
}
.padel-bo-float__ic {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-muted);
  color: var(--accent);
  border: 1px solid var(--accent-border);
}
.padel-bo-float__copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.padel-bo-float__copy strong {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.padel-bo-float__copy span {
  font-size: 10px;
  color: var(--ink-muted);
  line-height: 1.3;
}
.padel-bo-float__val {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
}
.padel-bo-float__lbl {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.padel-bo-float__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #34c759;
  box-shadow: 0 0 0 4px rgba(52, 199, 89, 0.22);
  flex-shrink: 0;
}

@keyframes padel-bo-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@keyframes padel-bo-float-tour {
  0%, 100% { transform: translateX(-20px) translateY(0); }
  50% { transform: translateX(-20px) translateY(-6px); }
}
@keyframes padel-bo-float-fill {
  0%, 100% { transform: translate(22px, -50%) translateY(0); }
  50% { transform: translate(22px, -50%) translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
  .padel-bo-float { animation: none; }
  .padel-bo-float--tour { transform: translateX(-20px); }
  .padel-bo-float--fill { transform: translate(22px, -50%); }
}

@media (max-width: 1024px) {
  .padel-gestionnaire__split {
    grid-template-columns: 1fr;
    gap: 40px;
    align-items: start;
  }
  .padel-gestionnaire__visual { order: -1; max-width: 520px; margin-inline: auto; width: 100%; align-self: auto; }
  .padel-bo-scene { height: auto; min-height: clamp(360px, 52vw, 440px); padding: 32px 20px 28px; }
  .padel-bo-device { transform: none; max-width: 100%; }
  .padel-bo-float--tour { transform: translateX(-12px); animation: none; }
  .padel-bo-float--fill { transform: translate(14px, -50%); animation: none; }
}

@media (max-width: 640px) {
  .padel-bo-scene { min-height: 380px; padding: 20px 14px 24px; }
  .padel-bo-float--tour,
  .padel-bo-float--slot { display: none; }
  .padel-bo-float--fill {
    top: auto;
    bottom: 8%;
    right: 0;
    transform: translateX(10px);
    padding: 8px 12px;
  }
  .padel-bo-float__val { font-size: 18px; }
}

/* Illustration poules + tableau final (landing padel) */
.padel-tour-visual {
  margin: 0 0 40px;
  padding: 20px 22px 22px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card-xs);
  pointer-events: none;
  user-select: none;
}
.padel-tour-visual__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border-subtle);
}
.padel-tour-visual__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}
.padel-tour-visual__pill {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
}
.padel-tour-visual__format {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-muted);
}
.padel-tour-visual__phase {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-secondary);
}
.padel-tour-visual__live {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #34c759;
  box-shadow: 0 0 0 3px rgba(52, 199, 89, 0.22);
  flex-shrink: 0;
}
.padel-tour-visual__board {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(220px, 0.85fr);
  gap: 20px;
  align-items: stretch;
}
.padel-tour-visual__poules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.padel-tour-visual__poule-title,
.padel-tour-visual__bracket-title {
  margin: 0 0 8px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.padel-tour-visual__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
  line-height: 1.35;
}
.padel-tour-visual__table thead th {
  padding: 6px 6px 5px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
  text-align: left;
  border-bottom: 1px solid var(--border-subtle);
}
.padel-tour-visual__table thead th:not(:first-child) { text-align: center; width: 28px; }
.padel-tour-visual__table thead th:nth-child(4),
.padel-tour-visual__table tbody td:nth-child(4) {
  white-space: nowrap;
  min-width: 40px;
  width: 40px;
}
.padel-tour-visual__table tbody td {
  padding: 6px;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--ink-secondary);
}
.padel-tour-visual__table tbody td:not(:first-child) {
  text-align: center;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.padel-tour-visual__table tbody td:first-child {
  font-weight: 700;
  color: var(--ink);
}
.padel-tour-visual__table tbody tr.is-qualified td:first-child {
  color: var(--accent);
}
.padel-tour-visual__table tbody tr.is-qualified {
  background: linear-gradient(90deg, var(--accent-muted), transparent 72%);
}
.padel-tour-visual__bracket {
  padding: 12px 14px;
  border-radius: var(--radius-md);
  background: linear-gradient(165deg, #f3f6fc 0%, #e8eef8 100%);
  border: 1px solid var(--border-subtle);
}
.padel-tour-visual__tree {
  display: grid;
  grid-template-columns: 1fr 0.72fr 0.55fr;
  gap: 10px;
  align-items: center;
  min-height: 200px;
}
.padel-tour-visual__round {
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: space-around;
  height: 100%;
}
.padel-tour-visual__match {
  position: relative;
  padding: 7px 8px 6px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(15, 30, 60, 0.04);
}
.padel-tour-visual__match strong {
  display: block;
  font-size: 10px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.25;
}
.padel-tour-visual__match em {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 9px;
  font-weight: 600;
  color: var(--ink-muted);
}
.padel-tour-visual__seed {
  position: absolute;
  top: 5px;
  right: 6px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--accent);
}
.padel-tour-visual__match.is-live {
  border-color: rgba(52, 199, 89, 0.45);
  box-shadow: 0 0 0 1px rgba(52, 199, 89, 0.12);
}
.padel-tour-visual__match.is-live em { color: #1a7a42; font-weight: 700; }
.padel-tour-visual__match.is-finale {
  background: linear-gradient(145deg, #0a0a0a, #1a2332);
  border-color: rgba(255, 255, 255, 0.08);
  padding-top: 18px;
}
.padel-tour-visual__match.is-finale strong { color: #fff; font-size: 11px; }
.padel-tour-visual__match.is-finale em { color: rgba(255, 255, 255, 0.72); }
.padel-tour-visual__finale-tag {
  position: absolute;
  top: 6px;
  left: 8px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-soft-ink);
}

@media (max-width: 900px) {
  .padel-tour-visual__board { grid-template-columns: 1fr; }
  .padel-tour-visual__tree {
    grid-template-columns: 1fr 1fr 1fr;
    min-height: 0;
  }
}

@media (max-width: 640px) {
  .padel-tour-visual { padding: 16px; }
  .padel-tour-visual__poules { grid-template-columns: 1fr; }
  .padel-tour-visual__tree {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .padel-tour-visual__round--qf { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
}

a.feat {
  text-decoration: none;
  color: inherit;
}

/* ────────────── Feature cards (3 or 4 column) ────────────── */
.features {
  display: grid; gap: 20px;
}
.features.cols-3 { grid-template-columns: repeat(3, 1fr); }
.features.cols-4 { grid-template-columns: repeat(4, 1fr); }

.feat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  display: flex; flex-direction: column; gap: 12px;
  box-shadow: var(--shadow-card-xs);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.feat:hover { transform: translateY(-2px); box-shadow: var(--shadow-card); border-color: var(--border-strong); }
.feat .ic {
  width: 40px; height: 40px; border-radius: 10px;
  background: var(--accent-muted); border: 1px solid var(--accent-border);
  color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center;
}
.feat h3 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: 19px; line-height: 1.2; letter-spacing: -0.015em;
  color: var(--ink); margin: 0;
}
.feat p { font-size: 14px; color: var(--ink-muted); line-height: 1.55; margin: 0; }
.feat ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.feat ul li {
  display: flex; gap: 8px; align-items: flex-start;
  font-size: 13px; line-height: 1.45; color: var(--ink-secondary);
}
.feat ul li::before {
  content: ""; width: 16px; height: 16px; border-radius: 999px;
  background: var(--accent-muted);
  flex-shrink: 0; margin-top: 2px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230066FF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");
  background-size: 10px; background-repeat: no-repeat; background-position: center;
}

/* ────────────── Use-case row (text + visual alternated) ────────────── */
.usecase-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 56px; align-items: center;
}
.usecase-row.reverse .uc-visual { order: 2; }
.usecase-row + .usecase-row { margin-top: 80px; }
.uc-copy .num {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-sans); font-weight: 700; font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 14px;
}
.uc-copy .num::before { content: ""; width: 22px; height: 1px; background: var(--accent); }
.uc-copy h3 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(22px, 2.4vw, 30px); line-height: 1.15;
  letter-spacing: -0.018em; margin: 0 0 14px;
  text-wrap: balance;
}
.uc-copy p { font-size: 15px; line-height: 1.55; color: var(--ink-muted); margin: 0; max-width: 460px; }
.uc-copy ul { margin: 16px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.uc-copy ul li {
  display: flex; gap: 10px; align-items: flex-start;
  font-size: 14px; line-height: 1.5; color: var(--ink-secondary);
}
.uc-copy ul li::before {
  content: ""; width: 18px; height: 18px; border-radius: 999px;
  background: var(--accent-muted); flex-shrink: 0; margin-top: 1px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230066FF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");
  background-size: 11px; background-repeat: no-repeat; background-position: center;
}
.uc-visual {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card-xs);
  padding: 24px;
  aspect-ratio: 5/4;
  position: relative;
  overflow: hidden;
}

/* ────────────── CTA section ────────────── */
.cta-grid {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px;
  align-items: center;
}
.cta-copy h2 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(32px, 4vw, 48px); line-height: 1.05;
  letter-spacing: -0.022em; margin: 8px 0 14px;
  text-wrap: balance;
}
.cta-copy .sub { font-size: 16px; color: var(--ink-muted); max-width: 440px; margin: 0 0 24px; }
.cta-copy .sub-inclus { color: var(--accent); font-weight: 700; }
.cta-copy .ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.cta-card {
  background: var(--accent); color: #fff;
  border-radius: var(--radius-lg); padding: 32px;
  position: relative; overflow: hidden;
  box-shadow: 0 20px 50px rgba(0,102,255,.28);
}
.cta-card::before {
  content: ""; position: absolute; right: -80px; top: -80px;
  width: 260px; height: 260px; border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,.18), transparent 70%);
  pointer-events: none;
}
.cta-card .head {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-sans); font-weight: 700; font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.85);
  margin-bottom: 16px;
}
.cta-card .head::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: #fff; }
.cta-card h3 { font-family: var(--font-sans); font-weight: 800; font-size: 22px; margin: 0 0 18px; line-height: 1.15; }
.cta-card ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cta-card li { display: flex; gap: 12px; align-items: center; font-size: 14.5px; font-weight: 500; }
.cta-card li .ck {
  width: 22px; height: 22px; border-radius: 999px;
  background: rgba(255,255,255,.18); display: inline-flex;
  align-items: center; justify-content: center; flex-shrink: 0;
}

/* ────────────── Cross-sell (other sports) ────────────── */
.cross-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
}
.cross-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
  text-align: left;
}
.cross-card:hover { transform: translateY(-2px); border-color: var(--accent-border); box-shadow: var(--shadow-card-xs); }
.cross-card .sw {
  width: 36px; height: 36px; border-radius: 9px;
  background: var(--accent-muted); border: 1px solid var(--accent-border);
  color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center;
}
.cross-card h4 { font-family: var(--font-sans); font-weight: 800; font-size: 14px; margin: 0; }
.cross-card .lnk { font-size: 12px; font-weight: 700; color: var(--accent); display: inline-flex; align-items: center; gap: 4px; }

/* ────────────── Footer ────────────── */
footer.site {
  background: var(--surface-subtle);
  border-top: 1px solid var(--border);
  padding: 64px 0 32px;
}
.foot-grid {
  display: grid; grid-template-columns: 2fr 3fr 1fr; gap: 32px;
  margin-bottom: 40px;
}
.foot-produit-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px 32px;
}
.foot-produit-cols ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.foot-brand p {
  font-size: 13px; color: var(--ink-muted); line-height: 1.55;
  max-width: 280px; margin: 12px 0 0;
}
.foot-col h5 {
  font-family: var(--font-sans); font-weight: 700; font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-muted); margin: 0 0 14px;
}
.foot-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.foot-col a { font-size: 14px; color: var(--ink-secondary); transition: color 120ms ease; }
.foot-col a:hover { color: var(--ink); }
.foot-bottom {
  border-top: 1px solid var(--border);
  padding-top: 24px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  font-size: 12px; color: var(--ink-muted);
}
.foot-bottom-legal {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.foot-bottom-legal a {
  font-size: 12px;
  color: var(--ink-muted);
  transition: color 120ms ease;
}
.foot-bottom-legal a:hover { color: var(--ink-secondary); }
/* ────────────── Legal pages ────────────── */
.legal-header .inner {
  padding: 14px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.legal-header .back {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-secondary);
}
.legal-header .back:hover { color: var(--accent); }
.legal-doc {
  padding: 48px 0 80px;
}
.legal-doc .wrap {
  max-width: 760px;
}
.legal-doc h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(32px, 4vw, 42px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  margin: 0 0 8px;
}
.legal-doc .legal-updated {
  font-size: 14px;
  color: var(--ink-muted);
  margin: 0 0 28px;
}
.legal-doc .legal-lead {
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-secondary);
  margin: 0 0 20px;
}
.legal-doc h2 {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: 20px;
  letter-spacing: -0.015em;
  margin: 40px 0 14px;
  padding-top: 8px;
}
.legal-doc h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 24px 0 10px;
  color: var(--ink);
}
.legal-doc p,
.legal-doc li {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-secondary);
}
.legal-doc p { margin: 0 0 14px; }
.legal-doc ul {
  margin: 0 0 16px;
  padding-left: 1.25rem;
}
.legal-doc li { margin-bottom: 6px; }
.legal-doc a:not(.btn) {
  color: var(--accent);
  font-weight: 600;
}
.legal-doc a:not(.btn):hover { color: var(--accent-hover); }
.legal-table-wrap {
  overflow-x: auto;
  margin: 12px 0 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}
.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.legal-table th,
.legal-table td {
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--border-subtle);
}
.legal-table th {
  font-weight: 700;
  color: var(--ink);
  background: var(--surface-subtle);
}
.legal-table tr:last-child th,
.legal-table tr:last-child td {
  border-bottom: none;
}
.legal-doc .legal-contact {
  margin-top: 8px;
  padding: 20px;
  border-radius: var(--radius-md);
  background: var(--surface-subtle);
  border: 1px solid var(--border);
}
.legal-doc .legal-note {
  margin-top: 32px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-muted);
}

/* ────────────── Blog / guides ────────────── */
.blog-article .blog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-size: 14px;
  color: var(--ink-muted);
  margin: 0 0 28px;
}
.blog-article .blog-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.blog-callout {
  margin: 20px 0;
  padding: 16px 18px;
  border-radius: var(--radius-md);
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-secondary);
}
.blog-callout strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ink);
  font-weight: 700;
}
.blog-cta {
  margin: 48px 0 0;
  padding: 28px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(0, 102, 255, 0.08), rgba(0, 102, 255, 0.02));
  border: 1px solid rgba(0, 102, 255, 0.15);
  text-align: center;
}
.blog-cta h2 {
  margin: 0 0 10px !important;
  padding-top: 0 !important;
  font-size: 22px !important;
}
.blog-cta p {
  max-width: 36rem;
  margin: 0 auto 18px !important;
}
.blog-hero {
  margin: 0 0 36px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
}
.blog-hero img {
  display: block;
  width: 100%;
  height: auto;
}
.blog-hero figcaption {
  padding: 10px 14px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-muted);
  background: var(--surface-subtle);
  border-top: 1px solid var(--border-subtle);
}
.blog-article .blog-meta a {
  color: var(--accent);
  font-weight: 600;
}
.blog-article .blog-meta a:hover { color: var(--accent-hover); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.blog-summary {
  margin: 0 0 28px;
  padding: 20px 22px;
  border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card-xs);
}
.blog-summary__label {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}
.blog-summary p {
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink);
}
.blog-summary p:last-child { margin-bottom: 0; }
.blog-summary ul {
  margin: 10px 0 0;
  padding-left: 1.2rem;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary);
}
.blog-summary li { margin-bottom: 4px; }

/* ────────────── Padel diagnostic teaser (guide) ────────────── */
.padel-diag-teaser {
  margin: 0 0 28px;
  padding: 18px 20px;
  border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card-xs);
}
.padel-diag-teaser__title {
  margin: 0 0 6px !important;
  padding-top: 0 !important;
  font-size: 17px !important;
}
.padel-diag-teaser__lead {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary);
}
.padel-diag-teaser__fieldset {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
}
.padel-diag-teaser__options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.padel-diag-teaser__option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-secondary);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.padel-diag-teaser__option:has(input:checked) {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  color: var(--ink);
}
.padel-diag-teaser__option input { accent-color: var(--accent); }

/* ────────────── Padel project diagnostic ────────────── */
.padel-diag {
  margin: 0 0 32px;
  padding: 24px 22px;
  border-radius: var(--radius-md);
  background: linear-gradient(145deg, var(--surface) 0%, var(--surface-subtle) 100%);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card-xs);
}
.padel-diag__progress {
  height: 4px;
  border-radius: 999px;
  background: var(--border-subtle);
  margin-bottom: 16px;
  overflow: hidden;
}
.padel-diag__progress-bar {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: 999px;
  transition: width 0.25s ease;
}
.padel-diag__step-label {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}
.padel-diag__step-title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
}
.padel-diag__step-intro {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary);
}
.padel-diag__fieldset {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
}
.padel-diag__fieldset legend {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 8px;
  padding: 0;
}
.padel-diag__options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.padel-diag__option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-subtle);
  background: var(--surface);
  cursor: pointer;
  font-size: 14px;
  line-height: 1.45;
  color: var(--ink-secondary);
  transition: border-color 0.15s, background 0.15s;
}
.padel-diag__option:has(input:checked) {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
  color: var(--ink);
}
.padel-diag__option input {
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--accent);
}
.padel-diag__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}
.padel-diag__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.padel-diag__field-full { grid-column: 1 / -1; }
@media (max-width: 520px) {
  .padel-diag__fields { grid-template-columns: 1fr; }
  .padel-diag__field-full { grid-column: auto; }
}
.padel-diag__results-title {
  margin: 0 0 4px;
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
}
.padel-diag__results-range {
  margin: 0 0 8px;
  font-size: 15px;
  color: var(--ink-secondary);
}
.padel-diag__results-sub {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary);
}
.padel-diag__breakdown-label {
  margin: 16px 0 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.padel-diag__scenarios {
  list-style: none;
  margin: 0 0 4px;
  padding: 0;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.padel-diag__scenarios li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 14px;
  font-size: 13px;
  border-bottom: 1px solid var(--border-subtle);
}
.padel-diag__scenarios li:last-child { border-bottom: 0; }
.padel-diag__scenarios li.is-active {
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  font-weight: 600;
}
.padel-diag__scenarios li.is-over { opacity: 0.55; }
.padel-diag__scenarios strong { white-space: nowrap; }
.padel-diag__breakdown {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.padel-diag__breakdown li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  font-size: 13px;
  border-bottom: 1px solid var(--border-subtle);
}
.padel-diag__breakdown li:last-child { border-bottom: 0; }
.padel-diag__breakdown strong {
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.padel-diag__finance-hint,
.padel-diag__forecast {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  color: var(--ink-secondary);
}
.padel-diag__finance-hint { background: var(--surface-subtle); }
.padel-diag__forecast {
  margin-top: 12px;
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
}
.padel-diag__forecast strong { color: var(--ink); }
.padel-diag__gate {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border-subtle);
}
.padel-diag__gate-title {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 700;
}
.padel-diag__gate-lead {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary);
}
.padel-diag__consent {
  margin: 12px 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ink-muted);
}
.padel-diag__error {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--danger, #dc2626);
}
.padel-diag__success {
  margin-bottom: 16px;
  padding: 16px;
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border));
}
.padel-diag__success p {
  margin: 8px 0 12px;
  font-size: 14px;
  line-height: 1.55;
}
.padel-diag__restart {
  margin-top: 16px;
  width: 100%;
  justify-content: center;
}

.blog-toc {
  margin: 0 0 32px;
  padding: 18px 20px;
  border-radius: var(--radius-md);
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
}
.blog-toc h2 {
  margin: 0 0 12px !important;
  padding-top: 0 !important;
  font-size: 16px !important;
}
.blog-toc ol {
  margin: 0;
  padding-left: 1.25rem;
  columns: 1;
  font-size: 14px;
  line-height: 1.5;
}
.blog-toc li { margin-bottom: 6px; break-inside: avoid; }
.blog-toc a {
  color: var(--ink-secondary);
  font-weight: 600;
}
.blog-toc a:hover { color: var(--accent); }
@media (min-width: 640px) {
  .blog-toc ol { columns: 2; column-gap: 24px; }
}
.blog-faq h3 {
  font-size: 16px;
  margin-top: 28px;
}

/* ────────────── Blog hub (index) ────────────── */
.blog-hub-hero {
  padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 5vw, 56px);
  background: var(--surface);
  border-bottom: 1px solid var(--border-subtle);
}
.blog-hub-hero h1 {
  max-width: 16ch;
  margin: 0 0 16px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(34px, 4.5vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--ink);
  text-wrap: balance;
}
.blog-hub-hero__lede {
  max-width: 42rem;
  margin: 0 0 28px;
  font-size: clamp(16px, 1.8vw, 18px);
  line-height: 1.65;
  color: var(--ink-secondary);
}
.blog-hub-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.blog-hub-filters {
  padding: 20px 0 8px;
  background: var(--surface);
  position: sticky;
  top: calc(var(--siteheader-h, 72px) - 1px);
  z-index: 20;
  border-bottom: 1px solid var(--border-subtle);
}
.blog-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.blog-filter {
  appearance: none;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-secondary);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
}
.blog-filter:hover {
  border-color: var(--border-strong);
  color: var(--ink);
}
.blog-filter.is-active {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.blog-hub-list {
  padding: clamp(32px, 5vw, 56px) 0 clamp(64px, 8vw, 96px);
}
.blog-featured {
  margin-bottom: clamp(28px, 4vw, 40px);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-card-sm);
}
.blog-featured__link {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  color: inherit;
  text-decoration: none;
}
.blog-featured__link:hover .blog-featured__title { color: var(--accent); }
.blog-featured__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}
.blog-featured__body {
  padding: clamp(24px, 3vw, 36px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.blog-featured__title {
  margin: 10px 0 12px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(22px, 2.5vw, 30px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ink);
  transition: color 140ms ease;
}
.blog-featured__excerpt {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-secondary);
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.5vw, 28px);
}
.blog-card {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-card-xs);
  transition: box-shadow 160ms ease, transform 160ms ease;
}
.blog-card:hover {
  box-shadow: var(--shadow-card-sm);
  transform: translateY(-2px);
}
.blog-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.blog-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--surface-subtle);
}
.blog-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blog-card__body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.blog-card__cat {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}
.blog-card__title {
  margin: 8px 0 10px;
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: 17px;
  line-height: 1.35;
  color: var(--ink);
}
.blog-card__excerpt {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary);
  flex: 1;
}
.blog-card__meta {
  margin: 0;
  font-size: 12px;
  color: var(--ink-muted);
}
.blog-empty {
  margin: 32px 0 0;
  text-align: center;
  color: var(--ink-muted);
  font-size: 15px;
}
.blog-hub-newsletter {
  padding: clamp(40px, 5vw, 56px) 0;
  background: linear-gradient(135deg, rgba(0, 102, 255, 0.1), rgba(0, 102, 255, 0.03));
  border-top: 1px solid rgba(0, 102, 255, 0.12);
}
.blog-hub-newsletter__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
}
.blog-hub-newsletter h2 {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(22px, 2.5vw, 28px);
  letter-spacing: -0.02em;
  color: var(--ink);
}
.blog-hub-newsletter p {
  margin: 0;
  max-width: 28rem;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-secondary);
}
@media (max-width: 900px) {
  .blog-featured__link { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .blog-grid { grid-template-columns: 1fr; }
  .blog-hub-newsletter__inner { flex-direction: column; align-items: flex-start; }
}

/* ────────────── Contact page ────────────── */
.contact-page .wrap {
  max-width: 560px;
}
.contact-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 32px 28px;
  box-shadow: var(--shadow-card);
}
.contact-page__form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.contact-page__form .contact-modal__field {
  margin: 0;
}
.contact-page__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
.contact-page__actions .btn {
  width: 100%;
  height: 44px;
}
.contact-page__hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ink-muted);
  text-align: center;
}
.contact-page__success {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 8px 0;
}
.contact-page__success[hidden] {
  display: none;
}
.contact-page__success .badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: var(--radius-pill);
  background: var(--success-muted);
  border: 1px solid var(--success-border);
  color: var(--success-ink);
  font-size: 12px;
  font-weight: 700;
}
.contact-page__success h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.contact-page__success p {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-secondary);
}

/* ────────────── Contact neutre (/nous-contacter) ────────────── */
.contact-neutral-page .block {
  padding: 48px 0 96px;
}
.contact-neutral-page__intro {
  max-width: 640px;
  margin-bottom: 36px;
}
.contact-neutral-page__intro h1 {
  margin: 8px 0 14px;
  font-family: var(--font-display);
  font-size: clamp(32px, 5vw, 44px);
  font-weight: 800;
  letter-spacing: -0.022em;
  line-height: 1.05;
  color: var(--ink);
}
.contact-neutral-page__lede {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-muted);
}
.contact-neutral-page__wrap {
  max-width: 640px;
}
.contact-neutral-form-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 28px 26px 32px;
  box-shadow: var(--shadow-card);
}
.contact-neutral-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.contact-neutral-form .contact-modal__field label span {
  font-weight: 600;
  color: var(--ink-muted);
}
.contact-neutral-form .contact-page__actions {
  margin-top: 8px;
}
.contact-neutral-form .contact-page__actions .btn {
  width: 100%;
}
.contact-neutral-page .contact-page__success {
  padding: 8px 0 4px;
}
@media (max-width: 540px) {
  .contact-neutral-form__row {
    grid-template-columns: 1fr;
  }
  .contact-neutral-form-card {
    padding: 22px 18px 26px;
  }
}
@media (max-width: 900px) {
  .contact-neutral-page .block {
    padding: 36px 0 72px;
  }
}

/* ────────────── Reveal animation (visible sans JS si scripts absents en prod) ────────────── */
.reveal { opacity: 1; transform: none; }
html.js .reveal { opacity: 0; transform: translateY(20px); transition: opacity 600ms ease, transform 600ms ease; }
html.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html.js .reveal { opacity: 1; transform: none; transition: none; }
}

/* ────────────── Focus ring ────────────── */
a:focus-visible, button:focus-visible, .btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--radius-md);
}

/* ────────────── Responsive ────────────── */
@media (max-width: 1100px) {
  .wrap { padding: 0 28px; }
  .sport-hero .grid, .cta-grid { gap: 36px; }
  .cta-grid { grid-template-columns: 1fr; }
  .siteheader .inner { padding: 12px 28px; gap: 20px; }
  .navlinks { gap: 22px; }
  .cross-grid { grid-template-columns: repeat(3, 1fr); }
  .features.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1099px) {
  .sol-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(220px, auto);
    margin-top: 32px;
  }
  .sol-card,
  .sol-card.span-12,
  .sol-card.span-6,
  .sol-card.span-4 {
    grid-column: span 1;
    min-height: 220px;
  }
}
@media (max-width: 1099px) and (max-height: 929px) {
  .sol-grid { grid-auto-rows: minmax(200px, auto); }
  .sol-card { min-height: 200px; }
}
@media (max-width: 900px) {
  html, body {
    overflow-x: clip;
    max-width: 100%;
  }
  section.block { padding: 64px 0; }
  .siteheader .inner { padding: 12px 20px; gap: 16px; }
  .navlinks { display: none; }
  .nav-cta .btn-ghost { display: none; }
  .burger { display: inline-flex; }

  .sport-hero { padding: 36px 0 0; }
  .sport-hero .grid { grid-template-columns: 1fr; gap: 32px; }
  .truststrip .row { gap: 14px; padding: 14px 0; }
  .sport-hero .visual { aspect-ratio: 4/5; max-width: 480px; margin: 0 auto; }

  section.block.alt.pain { padding-top: 56px; }
  .rail-controls { gap: 14px; margin-top: 18px; }
  .pain-rail .pain-item {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    overflow: hidden;
  }
  .pain-rail .pain-item__visual {
    order: -1;
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 10;
    border-radius: 0;
  }
  .pain-rail .pain-item__body { order: 1; }
  .pain-item__visual-overlay-wrap {
    width: 52%;
    min-width: 132px;
    max-width: 200px;
    right: 8px;
    bottom: 8px;
    border-radius: 12px;
  }
  .pain-item__body { padding: 18px 18px 20px; }
  .pain-item p { max-width: none; }

  .sol-grid { grid-template-columns: 1fr; }
  .sol-card,
  .sol-card.span-12,
  .sol-card.span-6,
  .sol-card.span-4 { grid-column: span 1; min-height: 0; }
  .ev-list.sol-mock {
    min-height: 0;
    height: auto;
  }
  .sol-card--events { overflow: visible; }

  .sports-rail { grid-auto-columns: minmax(260px, 78%); }
  .rail-controls { gap: 14px; margin-top: 18px; }

  .features.cols-3, .features.cols-4 { grid-template-columns: 1fr; }

  .usecase-row { grid-template-columns: 1fr; gap: 24px; }
  .usecase-row.reverse .uc-visual { order: 0; }
  .usecase-row + .usecase-row { margin-top: 48px; }

  .cta-grid { grid-template-columns: 1fr; gap: 28px; }
  .cross-grid { grid-template-columns: repeat(2, 1fr); }

  .foot-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .foot-brand { grid-column: 1 / -1; }
  .foot-col--produit { grid-column: 1 / -1; }
  .foot-produit-cols { grid-template-columns: repeat(3, 1fr); gap: 20px 24px; }

  .faq-split { grid-template-columns: 1fr; gap: 36px; }
  .faq-intro { position: static; max-width: none; }
  .faq-row .a { padding-right: 0; }

  .wrap { padding: 0 20px; }
}
@media (max-width: 540px) {
  .foot-produit-cols { grid-template-columns: 1fr; }
  .cross-grid { grid-template-columns: 1fr 1fr; }
  .truststrip .row { justify-content: flex-start; }
  .sports-rail { grid-auto-columns: minmax(240px, 85%); }
}
/* Pain : avant / après (liste éditoriale) */
section.block.alt.pain {
  background:
    radial-gradient(90% 60% at 100% 0%, rgba(0, 102, 255, 0.05), transparent 55%),
    var(--surface-subtle);
}
.pain-intro { max-width: 640px; margin-bottom: 32px; }
.pain-intro .pain-lead { max-width: 520px; }
.pain-rail-wrap {
  position: relative;
  margin-top: 0;
}
.pain-rail {
  list-style: none;
  margin: 0;
  padding: 0 0 4px;
  display: flex;
  flex-direction: row;
  gap: 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-y: none;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.pain-rail::-webkit-scrollbar { display: none; }
.pain-rail:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--accent-muted), 0 0 0 5px var(--accent);
  border-radius: var(--radius-xl);
}
.pain-rail .pain-item {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  box-sizing: border-box;
  opacity: 1;
  transform: none;
  transition: none;
}
.pain-rail .pain-item.reveal,
.pain-rail .pain-item.reveal.in {
  opacity: 1;
  transform: none;
}
.pain-rail .pain-item__visual { order: 0; }
.pain-rail .pain-item__body { order: 1; }
.pain-rail .pain-item:nth-child(even) .pain-item__visual { order: 0; }
.pain-rail .pain-item:nth-child(even) .pain-item__body { order: 1; }
.pain-item {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 40px;
  align-items: stretch;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 20px;
  box-shadow: var(--shadow-card-xs);
}
.pain-item:nth-child(even) .pain-item__visual { order: 2; }
.pain-item:nth-child(even) .pain-item__body { order: 1; }
.pain-item__visual {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #1a2438;
  min-height: 280px;
  aspect-ratio: 5 / 4;
}
.pain-item__visual svg,
.pain-item__visual > img:not(.pain-item__visual-overlay) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.pain-item__visual-overlay-wrap {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 1;
  width: 50%;
  min-width: 168px;
  max-width: 260px;
  height: auto;
  border-radius: 15px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 28px rgba(11, 20, 36, 0.28);
  isolation: isolate;
}
.pain-item__visual-overlay-wrap .pain-item__visual-overlay {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
  border-radius: 0;
}
.pain-item__chip {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  padding: 6px 10px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  background: rgba(198, 40, 40, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.pain-item__chip.is-warn { background: rgba(229, 138, 0, 0.92); }
.pain-item__chip.is-muted { background: rgba(11, 20, 36, 0.82); }
.pain-item__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  padding: 8px 4px;
}
.pain-item__tag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}
.pain-item__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: 8px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent-hover);
  font-size: 12px;
  letter-spacing: 0;
}
.pain-item h3 {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-wrap: balance;
}
.pain-item p {
  margin: 0;
  max-width: 42ch;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-secondary);
}
/* Solutions : modules connectés */
section.block.solutions {
  background:
    radial-gradient(70% 50% at 0% 0%, rgba(0, 102, 255, 0.06), transparent 55%),
    var(--surface);
}
.sol-intro { max-width: 720px; }
.sol-intro p { max-width: 58ch; }
.solutions .features { margin-top: 40px; }
.solutions .sport-specs { margin-top: 0; }
.sol-stack {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid var(--border-subtle);
}
.sol-stack__intro { max-width: 720px; margin-bottom: 8px; }
.sol-stack__eyebrow {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.sol-stack__intro h3 {
  margin: 0 0 12px;
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(24px, 2.8vw, 32px);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-wrap: balance;
}
.sol-stack__intro p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-secondary);
  max-width: 58ch;
}
.sol-stack .sol-grid { margin-top: 32px; }
.sol-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: minmax(240px, auto);
  gap: 18px;
  margin-top: 40px;
}
.sol-card {
  grid-column: span 4;
  min-height: 260px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 26px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-card-xs);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.sol-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), transparent);
  opacity: 0;
  transition: opacity 200ms ease;
}
.sol-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card);
  border-color: var(--border-strong);
}
.sol-card:hover::before { opacity: 1; }
.sol-card.is-dark {
  background: var(--dark-bg);
  color: var(--dark-ink);
  border-color: var(--dark-border);
}
.sol-card.is-dark::before {
  background: linear-gradient(90deg, var(--accent-soft-ink), transparent);
}
.sol-card.is-dark:hover { border-color: rgba(103, 163, 255, 0.35); }
.sol-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.sol-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}
.sol-card.is-dark .sol-card__tag { color: var(--accent-soft-ink); }
.sol-card__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 8px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent-hover);
  font-size: 12px;
  letter-spacing: 0;
}
.sol-card.is-dark .sol-card__n {
  background: rgba(0, 102, 255, 0.15);
  border-color: rgba(103, 163, 255, 0.35);
  color: var(--accent-soft-ink);
}
.sol-card__outcome {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 5px 10px;
  border-radius: var(--radius-pill);
  background: var(--success-muted);
  color: var(--success-ink);
  border: 1px solid var(--success-border);
  white-space: nowrap;
}
.sol-card.is-dark .sol-card__outcome {
  background: rgba(0, 182, 122, 0.12);
  color: #5beda2;
  border-color: rgba(0, 182, 122, 0.35);
}
.sol-card h3 {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(20px, 2vw, 24px);
  line-height: 1.15;
  letter-spacing: -0.018em;
  margin: 0;
  color: var(--ink);
  text-wrap: balance;
}
.sol-card.is-dark h3 { color: #fff; }
.sol-card p {
  font-size: 14px;
  color: var(--ink-secondary);
  line-height: 1.6;
  margin: 0;
  max-width: 40ch;
}
.sol-card.is-dark p { color: var(--dark-ink-muted); }
.sol-card.span-6 { grid-column: span 6; }
.sol-card.span-4 { grid-column: span 4; }

.sol-mock {
  margin-top: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  padding: 12px;
}
.sol-card.is-dark .sol-mock {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}
.sol-dash__kpi {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
  margin-bottom: 10px;
}
.sol-card.is-dark .sol-dash__kpi { color: #fff; }
.sol-dash__kpi small {
  display: block;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-bottom: 4px;
}
.sol-card.is-dark .sol-dash__kpi small { color: var(--dark-ink-muted); }
.sol-dash__bars {
  display: flex;
  align-items: flex-end;
  gap: 5px;
  height: 64px;
}
.sol-dash__bar {
  flex: 1;
  border-radius: 4px 4px 0 0;
  background: var(--accent);
  min-height: 12px;
}
.sol-dash__bar:nth-child(2) { height: 45%; opacity: 0.55; }
.sol-dash__bar:nth-child(3) { height: 72%; }
.sol-dash__bar:nth-child(4) { height: 58%; opacity: 0.75; }
.sol-dash__bar:nth-child(5) { height: 88%; }
.sol-dash__bar:nth-child(6) { height: 65%; opacity: 0.7; }
.sol-dash__bar:nth-child(7) { height: 100%; }
.sol-dash__legend {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink-muted);
}
.sol-card.is-dark .sol-dash__legend { color: var(--dark-ink-muted); }
.sol-caisse__row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.sol-caisse__pill {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--dark-ink-muted);
}
.sol-caisse__pill.on {
  background: rgba(0, 182, 122, 0.18);
  color: #5beda2;
  border-color: rgba(0, 182, 122, 0.4);
}
.sol-mock.sol-lines {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 128px;
  height: 128px;
  padding: 10px;
  box-sizing: border-box;
}
.sol-mock.sol-lines .sol-line {
  flex: 1;
  min-height: 0;
  align-items: flex-start;
  padding: 10px 12px;
}
.sol-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-secondary);
  line-height: 1.35;
}
.sol-line > span:not(.tag-file) {
  min-width: 0;
  flex: 1 1 auto;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.sol-line strong {
  color: var(--ink);
  font-weight: 700;
  flex-shrink: 0;
  white-space: nowrap;
  align-self: center;
}
.sol-line .tag-file {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 6px;
  border-radius: 4px;
  background: var(--accent-muted);
  color: var(--accent);
  border: 1px solid var(--accent-border);
}
.sol-members { display: flex; flex-direction: column; gap: 6px; }
.sol-member {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink);
}
.sol-member .av {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent-hover);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  flex-shrink: 0;
}
.sol-member .meta {
  flex: 1;
  min-width: 0;
  color: var(--ink-secondary);
  font-weight: 500;
}
.sol-member .badge {
  font-size: 9px;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--success-muted);
  color: var(--success-ink);
  border: 1px solid var(--success-border);
}

/* Planning mini inside Planning card */
.mini-planning,
.ev-list.sol-mock {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
  min-height: 128px;
  height: auto;
  overflow: visible;
  box-sizing: border-box;
}
.ev-list.sol-mock .ev-item {
  flex-shrink: 0;
  min-width: 0;
}
.ev-list.sol-mock .ev-item .pill {
  flex-shrink: 0;
  white-space: nowrap;
}
.mini-planning {
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mp-courts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  flex-shrink: 0;
  font-size: 8px;
  font-weight: 700;
  color: var(--ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-align: center;
}
.mp-grid {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-height: 0;
}
.mp-row {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  align-items: stretch;
  min-height: 0;
}
.mp-row .lbl { font-size: 9px; font-weight: 600; color: var(--ink-muted); align-self: center; }
.mp-cell {
  min-height: 8px;
  border-radius: 4px;
  background: #fff;
  border: 1px solid var(--border-subtle);
}
.mp-cell.b1 { background: var(--accent); border-color: var(--accent); }
.mp-cell.b2 { background: var(--accent-muted); border-color: var(--accent-border); }
.mp-cell.b3 { background: var(--chip-rental-bg); border-color: var(--chip-rental-bd); }
.mp-cell.b4 { background: var(--chip-acc-bg); border-color: var(--chip-acc-bd); }

/* Mini-planning — encarts tournois (page Événements) */
.mini-planning--events {
  min-height: 200px;
  gap: 6px;
  padding: 14px;
}
.mini-planning--events .mp-courts {
  grid-template-columns: 26px repeat(4, 1fr);
}
.mini-planning--events .mp-courts__pad {
  display: block;
}
.mini-planning--events .mp-row {
  grid-template-columns: 26px repeat(4, 1fr);
  min-height: 22px;
}
.mini-planning--events .mp-time {
  font-size: 7px;
  font-weight: 700;
  color: var(--ink-muted);
  align-self: center;
  text-align: right;
  padding-right: 2px;
}
.mini-planning--events .mp-cell {
  min-height: 14px;
}
.mp-event.is-tour {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  padding: 4px 5px;
  min-height: 34px;
  border-radius: 5px;
  background: linear-gradient(145deg, #faf5ff 0%, var(--chip-event-bg) 100%);
  border: 1px solid var(--chip-event-bd);
  color: var(--chip-event-ink);
  line-height: 1.15;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
.mp-event.is-tour--cont {
  background: linear-gradient(145deg, var(--chip-event-bg-deep) 0%, #ddd6fe 100%);
  border-style: dashed;
  border-color: #c4b5fd;
}
.mp-event.is-tour--live {
  background: linear-gradient(145deg, var(--chip-event-bg-deep) 0%, #ddd6fe 100%);
  border-color: #c4b5fd;
  color: var(--chip-event-ink);
}
.mp-event.is-tour--live strong,
.mp-event.is-tour--finale strong {
  color: var(--ink);
}
.mp-event.is-tour--finale {
  background: linear-gradient(145deg, #ede9fe 0%, #ddd6fe 100%);
  border-color: #a78bfa;
  box-shadow: 0 0 0 1px rgba(109, 40, 217, 0.14);
}
.mp-event--span-2 {
  grid-column: span 2;
}
.mp-event__tag {
  font-size: 5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #7c3aed;
  line-height: 1;
}
.mp-event.is-tour--live .mp-event__tag {
  color: #6d28d9;
}
.mp-event.is-tour--finale .mp-event__tag {
  color: #6d28d9;
}
.mp-event.is-tour strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mp-event.is-tour small {
  font-size: 5px;
  font-weight: 600;
  color: #7c3aed;
  opacity: 0.85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mp-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  justify-content: center;
  margin-top: 2px;
  padding-top: 8px;
  border-top: 1px solid var(--border-subtle);
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-muted);
}
.mp-legend__swatch {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  margin-right: 4px;
  vertical-align: -1px;
}
.mp-legend__swatch--tour {
  background: linear-gradient(145deg, #faf5ff, var(--chip-event-bg));
  border: 1px solid var(--chip-event-bd);
}
.mp-legend__swatch--res {
  background: var(--accent);
  border: 1px solid var(--accent);
}
.dash-feat__visual .mini-planning--events {
  max-width: 100%;
  width: 100%;
  min-height: 220px;
}
.dash-feat__visual .mini-planning--events .mp-row {
  min-height: 24px;
}
.dash-feat__visual .mini-planning--events .mp-event.is-tour {
  min-height: 38px;
}
.feat-hero .mini-planning--hero {
  width: 100%;
  max-width: min(100%, 520px);
  min-height: 300px;
  margin: 0;
  align-self: center;
  justify-self: stretch;
  background: #fff;
  border-radius: 15px;
  border: 1px solid var(--border-subtle);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  padding: 16px;
  gap: 8px;
}
.feat-hero .mini-planning--hero.mini-planning--events .mp-courts {
  grid-template-columns: 32px repeat(4, 1fr);
  font-size: 8px;
}
.feat-hero .mini-planning--hero.mini-planning--events .mp-row {
  grid-template-columns: 32px repeat(4, 1fr);
  min-height: 28px;
}
.feat-hero .mini-planning--hero .mp-time {
  font-size: 8px;
}
.feat-hero .mini-planning--hero .mp-cell {
  min-height: 16px;
}
.feat-hero .mini-planning--hero .mp-event.is-tour {
  min-height: 44px;
  padding: 5px 6px;
}
.feat-hero .mini-planning--hero .mp-event.is-tour strong {
  font-size: 8px;
}
.feat-hero .mini-planning--hero .mp-event.is-tour small {
  font-size: 6px;
}
.feat-hero .mini-planning--hero .mp-event__tag {
  font-size: 6px;
}
.feat-hero .mini-planning--hero .mp-legend {
  font-size: 7px;
  padding-top: 10px;
}

.inv-stack {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
}
.inv-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.inv-cats .c {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  border: 1px solid #E4E4DE;
  background: #F0F0EC;
  color: #525252;
  white-space: nowrap;
}
.inv-cats .c1 { background: var(--chip-drink-bg); color: var(--chip-drink-ink); border-color: var(--chip-drink-bd); }
.inv-cats .c2 { background: var(--chip-rental-bg); color: var(--chip-rental-ink); border-color: var(--chip-rental-bd); }
.inv-cats .c3 { background: var(--chip-acc-bg); color: var(--chip-acc-ink); border-color: var(--chip-acc-bd); }
.inv-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-secondary);
}
.inv-line strong {
  color: var(--ink);
  font-weight: 700;
}

/* Caisse card: ticket de vente */
.pay-rail {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  min-height: 128px;
  height: 128px;
  width: 100%;
  box-sizing: border-box;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  padding: 10px;
  overflow: hidden;
}
.pay-ticket {
  display: flex;
  flex-direction: column;
  gap: 6px;
  height: 100%;
  min-height: 0;
}
.pay-ticket__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-shrink: 0;
}
.pay-ticket__id {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--dark-ink-muted);
}
.pay-ticket__status {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(0, 182, 122, 0.18);
  color: #5beda2;
  border: 1px solid rgba(0, 182, 122, 0.4);
  white-space: nowrap;
  flex-shrink: 0;
}
.pay-ticket__items {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-height: 0;
}
.pay-ticket__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 10px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.25;
}
.pay-ticket__item span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pay-ticket__item span:last-child {
  flex-shrink: 0;
  font-feature-settings: "tnum";
  color: #fff;
}
.pay-ticket__total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 600;
  color: var(--dark-ink-muted);
}
.pay-ticket__total strong {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  font-feature-settings: "tnum";
  white-space: nowrap;
}
.pay-ticket__pay {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  flex-shrink: 0;
}
.pay-ticket__chip {
  font-size: 9px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(103, 163, 255, 0.15);
  color: var(--accent-soft-ink);
  border: 1px solid rgba(103, 163, 255, 0.35);
  white-space: nowrap;
}
.pay-ticket__nf {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dark-ink-muted);
  white-space: nowrap;
}

/* Boutique card chips */
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 600;
  border: 1px solid;
}
.chip.drink  { background: var(--chip-drink-bg);  color: var(--chip-drink-ink);  border-color: var(--chip-drink-bd); }
.chip.rental { background: var(--chip-rental-bg); color: var(--chip-rental-ink); border-color: var(--chip-rental-bd); }
.chip.acc    { background: var(--chip-acc-bg);    color: var(--chip-acc-ink);    border-color: var(--chip-acc-bd); }
.chip.misc   { background: #F0F0EC; color: #525252; border-color: #E4E4DE; }

/* Events card list */
.ev-list { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.ev-item {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px;
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
}
.ev-item .day {
  width: 32px; text-align: center;
  font-family: var(--font-display); font-weight: 800; font-size: 13px; color: var(--ink);
  line-height: 1;
}
.ev-item .day small { display: block; font-family: var(--font-sans); font-size: 8px; font-weight: 700; color: var(--ink-muted); letter-spacing: .1em; text-transform: uppercase; margin-bottom: 2px; }
.ev-item .title { font-size: 12px; font-weight: 700; color: var(--ink); flex: 1; }
.ev-item .pill { font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 7px; border-radius: 999px; background: var(--accent-muted); color: var(--accent); border: 1px solid var(--accent-border); }
.ev-item .pill.amber { background: var(--warning-muted); color: var(--warning); border-color: var(--warning-border); }

/* Fidélité card */
.levels { margin-top: auto; display: flex; gap: 8px; align-items: flex-end; }
.level {
  flex: 1; border-radius: 10px; padding: 10px 8px 12px;
  background: var(--surface-subtle); border: 1px solid var(--border-subtle);
  text-align: center;
}
.level .pts { font-family: var(--font-display); font-weight: 800; font-size: 14px; color: var(--ink); line-height: 1; }
.level .lbl { font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); margin-top: 4px; }
.level.active {
  background: var(--accent-muted); border-color: var(--accent-border);
}
.level.active .lbl { color: var(--accent); }

/* ─────────────────── App marque blanche : dark ─────────────────── */
.app-section {
  background: var(--dark-bg);
  color: var(--dark-ink);
  padding: 96px 0;
  position: relative;
  overflow: hidden;
}
.app-section::before {
  content: ""; position: absolute; pointer-events: none;
  width: 720px; height: 720px; border-radius: 999px;
  right: -160px; top: -200px;
  background: radial-gradient(circle, rgba(0,102,255,.22), transparent 70%);
}
.app-grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 56px; align-items: center;
  position: relative; z-index: 2;
}
.app-grid > * { min-width: 0; }
.app-copy { padding-bottom: 0; max-width: 100%; }
.app-copy h2 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(32px, 4vw, 48px); line-height: 1.05;
  letter-spacing: -0.022em; color: #fff; margin: 8px 0 14px;
  text-wrap: balance;
}
.app-copy h2 em { font-style: normal; color: var(--accent-soft-ink); }
.app-copy .sub { color: var(--dark-ink-muted); max-width: 460px; margin: 0 0 24px; font-size: 16px; }
.app-bullets { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.app-bullets .b {
  display: flex; gap: 12px; align-items: flex-start;
  font-size: 14.5px; line-height: 1.55; color: var(--dark-ink);
  min-width: 0;
}
.app-bullets .b > span:last-child {
  flex: 1;
  min-width: 0;
  overflow-wrap: break-word;
}
.app-bullets .check {
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px;
  background: rgba(0,102,255,.18); border: 1px solid rgba(103,163,255,.5);
  color: var(--accent-soft-ink);
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.app-stat-float {
  position: relative;
  top: auto;
  left: auto;
  z-index: 5;
  transform: none;
  margin: 0 auto 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  max-width: calc(100% - 16px);
  padding: 10px 16px 10px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 10px 36px rgba(0, 0, 0, .28);
}
.app-stat-float__ic {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: rgba(251, 191, 36, .18);
  border: 1px solid rgba(251, 191, 36, .4);
  color: #fcd34d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.app-stat-float__text {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--dark-ink);
  white-space: nowrap;
}
.app-stat-float__stars {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  margin-left: 2px;
}
.app-stat-float__stars svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.app-phones {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
  padding-bottom: 0;
}
.app-phones__stage {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: auto;
  padding: 0;
}
.phone {
  width: 240px;
  aspect-ratio: 9/19;
  border-radius: 36px;
  background: #0a1326;
  border: 1.5px solid #1d2a44;
  padding: 8px;
  box-shadow: 0 40px 80px rgba(0,0,0,.5), 0 0 0 6px #060b18, 0 0 0 7px #1d2a44;
  position: relative;
}
.phone--shot {
  margin: 0;
  width: auto;
  aspect-ratio: unset;
  padding: 7px;
  border-radius: 34px;
  background: linear-gradient(160deg, #121c2e 0%, #0a1326 100%);
  border: 1.5px solid #1d2a44;
  box-shadow: 0 32px 64px rgba(0, 0, 0, 0.42), 0 0 0 4px #060b18;
  overflow: hidden;
  display: flex;
}
.phone--shot img {
  display: block;
  height: auto;
  max-width: none;
  border-radius: 26px;
}
.phone--hero {
  position: relative;
  z-index: 3;
  flex-shrink: 0;
}
.phone--hero img { width: 204px; }
.phone--flank {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.phone--flank img { width: 150px; }
.phone--flank-left {
  transform: rotate(-11deg);
  margin-right: -28px;
}
.phone--flank-right {
  transform: rotate(11deg);
  margin-left: -28px;
}

/* App section responsive — after base block (cascade order matches index.html) */
@media (max-width: 1100px) {
  .app-grid { gap: 36px; }
  .app-grid { grid-template-columns: 1fr; }
  .app-copy { padding-bottom: 0; }
  .app-phones { max-width: min(520px, 100%); }
}
@media (max-width: 1100px) and (min-width: 901px) {
  .phone--hero img { width: 184px; }
  .phone--flank img { width: 136px; }
  .phone--flank-left { margin-right: -24px; }
  .phone--flank-right { margin-left: -24px; }
  .app-phones__stage { gap: 8px; }
}
@media (max-width: 900px) {
  .app-section { padding: 64px 0; overflow-x: clip; }
  .app-grid { grid-template-columns: 1fr; gap: 24px; width: 100%; }
  .app-copy { padding-bottom: 0; }
  .app-copy .sub { max-width: none; font-size: 15px; }
  .app-copy h2 { font-size: clamp(28px, 7.5vw, 40px); }
  .app-phones {
    max-width: 100%;
    width: 100%;
    padding: 0;
    box-sizing: border-box;
  }
  .app-stat-float { margin-bottom: 28px; }
  .app-phones__stage {
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: clamp(14px, 4vw, 22px);
    margin-top: 0;
    padding: 8px 0 12px;
  }
  .app-stat-float {
    max-width: calc(100% - 8px);
    padding: 8px 12px 8px 10px;
    gap: 8px;
  }
  .app-stat-float__ic { width: 26px; height: 26px; }
  .app-stat-float__ic svg { width: 14px; height: 14px; }
  .app-stat-float__text {
    font-size: 12px;
    white-space: normal;
    text-wrap: balance;
  }
  .app-stat-float__stars svg { width: 12px; height: 12px; }
  .phone--flank-left {
    margin-right: -6px;
    transform: rotate(-8deg);
  }
  .phone--flank-right {
    margin-left: -6px;
    transform: rotate(8deg);
  }
  .phone--hero img { width: min(118px, 32vw); }
  .phone--flank img { width: min(96px, 27vw); }
  .app-phones__stage {
    gap: clamp(8px, 2vw, 14px);
    max-width: 100%;
  }
}
@media (max-width: 540px) {
  .app-phones__stage { gap: 10px; }
  .phone--flank-left { margin-right: 0; }
  .phone--flank-right { margin-left: 0; }
  .phone--hero img { width: min(104px, 30vw); }
  .phone--flank img { width: min(88px, 25vw); }
  .app-bullets .b { font-size: 14px; }
}

.phone .notch {
  position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
  width: 84px; height: 22px; border-radius: 14px; background: #060b18; z-index: 3;
}
.phone .screen {
  width: 100%; height: 100%;
  border-radius: 28px;
  background: linear-gradient(180deg, #fff 0%, #f6f6f2 100%);
  overflow: hidden;
  position: relative;
}

/* Phone 1 : Home screen */
.ps-home { padding: 38px 14px 14px; display: flex; flex-direction: column; gap: 10px; height: 100%; }
.ps-status { display: flex; justify-content: space-between; font-size: 10px; font-weight: 700; color: #111; }
.ps-club {
  display: flex; align-items: center; gap: 8px; margin-top: 4px;
}
.ps-club .logo {
  width: 28px; height: 28px; border-radius: 8px;
  flex-shrink: 0;
  background: url("assets/logo/logo-transparent.png") center / cover no-repeat;
}
.ps-club .name { font-size: 13px; font-weight: 800; }
.ps-club .name small { display: block; font-size: 9px; font-weight: 500; color: var(--ink-muted); }
.ps-hero {
  margin-top: 4px;
  border-radius: 12px; padding: 12px;
  background: linear-gradient(135deg, var(--accent) 0%, #003d99 100%);
  color: #fff; position: relative; overflow: hidden;
}
.ps-hero h4 { font-size: 11px; margin: 0 0 4px; opacity: .85; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.ps-hero .t { font-family: var(--font-sans); font-weight: 800; font-size: 16px; line-height: 1.15; margin: 0; }
.ps-hero .btn-mini {
  display: inline-flex; margin-top: 10px;
  background: #fff; color: var(--accent); font-size: 10px; font-weight: 700;
  padding: 6px 10px; border-radius: 999px;
}
.ps-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ps-tile {
  background: var(--surface-subtle); border-radius: 10px; padding: 8px;
  border: 1px solid var(--border-subtle);
}
.ps-tile .lbl { font-size: 9px; font-weight: 700; color: var(--ink-muted); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 4px; }
.ps-tile .v { font-family: var(--font-sans); font-weight: 800; font-size: 14px; color: var(--ink); }
.ps-list { display: flex; flex-direction: column; gap: 6px; }
.ps-rsv {
  background: #fff; border: 1px solid var(--border); border-radius: 10px;
  padding: 8px 10px;
  display: flex; align-items: center; gap: 8px;
}
.ps-rsv .when { font-size: 10px; font-weight: 700; color: var(--ink); width: 38px; }
.ps-rsv .what { font-size: 10px; color: var(--ink-secondary); flex: 1; }
.ps-rsv .court { font-size: 9px; font-weight: 700; color: var(--accent); }

/* Phone 2 : Booking */
.ps-book { padding: 38px 14px 14px; display: flex; flex-direction: column; gap: 8px; height: 100%; }
.ps-book .head {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 800;
}
.ps-book .head .back { width: 24px; height: 24px; border-radius: 999px; background: var(--surface-subtle); display: inline-flex; align-items: center; justify-content: center; color: var(--ink-secondary); }
.ps-book .days { display: grid; grid-template-columns: repeat(5,1fr); gap: 4px; margin-top: 4px; }
.ps-book .day {
  text-align: center; padding: 6px 0; border-radius: 8px; font-size: 10px; font-weight: 700; color: var(--ink-secondary);
  background: var(--surface-subtle); border: 1px solid var(--border-subtle);
}
.ps-book .day small { display: block; font-weight: 500; color: var(--ink-muted); font-size: 8px; margin-bottom: 2px; }
.ps-book .day.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.ps-book .day.active small { color: rgba(255,255,255,.8); }
.ps-book .slot-list { display: flex; flex-direction: column; gap: 5px; margin-top: 4px; }
.ps-slot {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; border-radius: 10px;
  background: #fff; border: 1px solid var(--border);
  font-size: 11px; font-weight: 700;
}
.ps-slot .time { color: var(--ink); }
.ps-slot .court { color: var(--ink-muted); font-size: 9px; font-weight: 600; }
.ps-slot.busy { background: var(--surface-subtle); color: var(--ink-faint); }
.ps-slot.busy .court { color: var(--ink-faint); }
.ps-slot.sel {
  background: var(--accent); border-color: var(--accent); color: #fff;
}
.ps-slot.sel .court { color: rgba(255,255,255,.85); }
.ps-book .cta {
  margin-top: auto;
  background: var(--accent); color: #fff;
  text-align: center; padding: 10px;
  border-radius: 12px;
  font-size: 11px; font-weight: 700;
  box-shadow: 0 6px 14px rgba(0,102,255,.35);
}

/* ─────────────────── Déploiement 24 h ─────────────────── */
/* Architecture Owanted-style : pas de scrolljack, pas de JS d'animation.
   La bar fill et les step reveals sont pilotés par CSS Scroll-Driven
   Animations (animation-timeline: view()), donc 100% compositor thread.
   Zéro lag, fluidité parfaite avec l'inertie scroll macOS/Windows.
   Référence: owanted.com/formations/bootcamp-laforge-site */
:is(#onboarding, #padel-deploiement, #tennis-deploiement, #squash-deploiement, #badminton-deploiement, #basket-deploiement, #foot5-deploiement).deploy-72.block {
  padding-top: 96px;
  padding-bottom: 96px;
}
:is(#onboarding, #padel-deploiement, #tennis-deploiement, #squash-deploiement, #badminton-deploiement, #basket-deploiement, #foot5-deploiement).deploy-72 {
  position: relative;
  background: var(--surface);
}
.deploy-stage {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.deploy-hero {
  text-align: center;
  max-width: 680px;
  margin: 0 auto;
  padding: 0 8px;
}
.deploy-hero__eyebrow {
  margin: 0 0 14px;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}
.deploy-hero__title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  color: var(--ink);
  text-wrap: balance;
}
.deploy-hero__title em {
  font-style: normal;
  color: var(--ink-secondary);
}
.deploy-hero__lede {
  margin: 18px auto 0;
  max-width: 560px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-muted);
  text-wrap: pretty;
}
.deploy-hero__meta {
  margin: 20px 0 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ink-faint);
}
.deploy-hero__meta span + span::before {
  content: "·";
  margin: 0 0.45em;
}

.deploy-rail {
  position: relative;
  width: 100%;
  max-width: 640px;
  margin: 80px auto 0;
}
.deploy-rail__line {
  position: absolute;
  left: 5px;
  top: 10px;
  bottom: 10px;
  width: 2px;
  pointer-events: none;
  z-index: 0;
}
.deploy-rail__line-bg {
  position: absolute;
  inset: 0;
  background: rgba(0, 102, 255, 0.14);
  border-radius: 2px;
}
.deploy-rail__line-fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, var(--accent) 0%, #3d8bff 100%);
  border-radius: 2px;
  transform: scaleY(0);
  transform-origin: top;
}

/* ─── Bar fill : CSS scroll-driven natif (zero JS, 100% compositor) ─── */
/* Identique à la mécanique Owanted. animation-timeline: view() crée une
   timeline auto-générée basée sur la position de la barre elle-même dans
   le viewport. Le compositor écrit le transform sans round-trip JS — la
   barre suit le scroll natif au pixel près, y compris pendant l'inertie. */
@supports (animation-timeline: view()) {
  .deploy-rail__line-fill {
    animation: deploy-rail-fill linear both;
    animation-timeline: view();
    animation-range: cover 5% cover 80%;
  }
}
@supports not (animation-timeline: view()) {
  /* Safari & vieux navigateurs : barre toujours pleine (pas d'animation,
     pas de dégradation fonctionnelle non plus). */
  .deploy-rail__line-fill { transform: scaleY(1); }
}
@keyframes deploy-rail-fill {
  from { transform: scaleY(0); }
  to { transform: scaleY(1); }
}
.deploy-rail__steps {
  list-style: none;
  margin: 0;
  padding: 0 0 0 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  z-index: 1;
}
.deploy-step {
  position: relative;
  display: block;
  text-align: left;
  padding: 0 0 64px;
  min-width: 0;
}
.deploy-step:last-child { padding-bottom: 0; }
/* Step reveal : géré par l'IntersectionObserver global .reveal (comme Owanted).
   Chaque étape porte la classe .reveal et se révèle quand elle entre dans le
   viewport. Plus robuste que le scroll-driven par élément (pas de risque que
   la dernière étape reste masquée faute de scroll runway). */
.deploy-step__dot {
  position: absolute;
  left: -40px;
  top: 10px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--accent);
  box-sizing: border-box;
  box-shadow: 0 0 0 4px var(--accent-muted);
}
.deploy-step__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-bottom: 14px;
}
.deploy-step__num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(34px, 4.5vw, 46px);
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--accent);
}
.deploy-step__day {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}
.deploy-step__title {
  margin: 12px 0 10px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(22px, 3.2vw, 30px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.deploy-step__desc {
  margin: 0;
  max-width: 52ch;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-muted);
}
.deploy-step__foot {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 18px;
  padding: 11px 16px;
  border-radius: var(--radius-pill);
  background: var(--surface-subtle);
  border: 1px solid var(--border);
}
.deploy-step__foot-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  flex-shrink: 0;
}
.deploy-step__foot-text {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--ink);
}
.deploy-step__follow {
  margin: 14px 0 0;
  max-width: 52ch;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-muted);
  font-weight: 400;
}
.deploy-step__cta-btn {
  margin-top: 20px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: flex-start;
}
.deploy-step__cta-btn span {
  display: inline-block;
  transition: transform 0.2s ease;
}
.deploy-step__cta-btn:hover span {
  transform: translateX(3px);
}

@media (max-width: 900px) {
  .deploy-rail { margin-top: 48px; }
  .deploy-step { padding-bottom: 48px; }
  .deploy-step__title { font-size: clamp(20px, 5.5vw, 26px); }
}
@media (prefers-reduced-motion: reduce) {
  .deploy-rail__line-fill {
    animation: none;
    transform: scaleY(1);
  }
}

/* ─── Engagement client · pied de section déploiement ─── */
.deploy-commit {
  position: relative;
  z-index: 2;
  margin: 48px auto 0;
  max-width: 640px;
  padding: 24px 26px;
  border-radius: 20px;
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  box-shadow: 0 20px 40px -32px rgba(10, 10, 10, 0.12);
}
.deploy-commit__eyebrow {
  margin: 0 0 10px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}
.deploy-commit__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-muted);
  text-wrap: pretty;
}
:is(#onboarding, #padel-deploiement, #tennis-deploiement, #squash-deploiement, #badminton-deploiement, #basket-deploiement, #foot5-deploiement) .wrap:has(.deploy-commit) {
  position: relative;
  z-index: 1;
}

/* ─── Bandeau Migration & transferts contrôlés (sous les 4 étapes) ─── */
.deploy-cta {
  position: relative;
  z-index: 2;
  margin: 64px auto 0;
  max-width: 920px;
  background: var(--ink);
  color: #fff;
  border-radius: 20px;
  padding: 26px 30px;
  display: flex;
  align-items: center;
  gap: 28px;
  justify-content: space-between;
  flex-wrap: wrap;
  box-shadow: 0 24px 48px -28px rgba(10, 10, 10, 0.45);
}
.deploy-cta__copy {
  flex: 1 1 460px;
  min-width: 0;
}
.deploy-cta__eyebrow {
  margin: 0 0 8px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-soft-ink);
}
.deploy-cta__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.82);
  text-wrap: pretty;
}
.deploy-cta__btn {
  flex: 0 0 auto;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.deploy-cta__btn span {
  display: inline-block;
  transition: transform 0.2s ease;
}
.deploy-cta__btn:hover span {
  transform: translateX(3px);
}
@media (max-width: 720px) {
  .deploy-cta {
    flex-direction: column;
    align-items: stretch;
    padding: 22px 20px;
    gap: 18px;
    margin-top: 48px;
  }
  .deploy-cta__btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* ─────────────────── Shift · avant / après ─────────────────── */
.shift-intro { max-width: 640px; }
.shift-intro .lede {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-muted);
  text-wrap: pretty;
}
.shift-table {
  --shift-pad-x: 28px;
  --shift-bar: 3px;
  --shift-mid: 52px;
  margin-top: 40px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.shift-table__head {
  display: grid;
  grid-template-columns: 1fr var(--shift-mid) 1fr;
  gap: 0;
  padding: 18px 0;
  background: var(--surface-subtle);
  border-bottom: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.shift-table__head > span:first-child {
  padding: 0 var(--shift-pad-x);
}
.shift-table__head > span:last-child {
  padding: 0 var(--shift-pad-x);
  border-left: var(--shift-bar) solid var(--accent);
  color: var(--accent);
}
.shift-table__head .shift-table__mid {
  text-align: center;
  color: var(--ink-faint);
  letter-spacing: 0;
  font-size: 18px;
  line-height: 1;
}
.shift-rows { list-style: none; margin: 0; padding: 0; }
.shift-row {
  display: grid;
  grid-template-columns: 1fr var(--shift-mid) 1fr;
  gap: 0;
  align-items: stretch;
  border-bottom: 1px solid var(--border-subtle);
}
.shift-row:last-child { border-bottom: none; }
.shift-row__col {
  padding: 22px var(--shift-pad-x);
  font-size: 15px;
  line-height: 1.5;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.shift-row__col--before {
  color: var(--ink-muted);
  background: linear-gradient(90deg, rgba(10, 10, 10, 0.02), transparent);
}
.shift-row__col--after {
  color: var(--ink);
  font-weight: 600;
  background: linear-gradient(90deg, transparent, rgba(0, 102, 255, 0.04));
  border-left: var(--shift-bar) solid var(--accent);
}
.shift-row__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.shift-row__col--after .shift-row__label { color: var(--accent); }
.shift-row__mid {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--border-strong);
  font-size: 20px;
  font-weight: 300;
  background: var(--surface);
}
.shift-foot {
  margin-top: 20px;
  font-size: 13px;
  color: var(--ink-faint);
  max-width: 520px;
}

/* Shift table responsive — after base block (cascade order matches index.html) */
@media (max-width: 900px) {
  .shift-table {
    margin-top: 28px;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }
  .shift-table__head { display: none; }
  .shift-rows {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .shift-row {
    display: flex;
    flex-direction: column;
    border: 2px solid var(--dark-bg);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--surface);
    box-shadow: 0 8px 28px rgba(11, 20, 36, 0.12), 0 2px 8px rgba(11, 20, 36, 0.08);
  }
  .shift-row__col {
    padding: 16px 18px;
    gap: 8px;
  }
  .shift-row__col--before {
    padding-bottom: 18px;
    background: var(--surface-subtle);
    border-bottom: none;
  }
  .shift-row__col--before::before,
  .shift-row__col--after::before {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-bottom: 10px;
    padding: 6px 12px;
    border-radius: var(--radius-pill);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1.2;
  }
  .shift-row__col--before::before {
    content: "Sans MySportbay";
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--ink-muted);
  }
  .shift-row__col--after {
    border-left: none;
    border-top: none;
    padding-top: 18px;
    color: var(--dark-ink);
    font-weight: 600;
    background: linear-gradient(165deg, var(--dark-bg-alt) 0%, var(--dark-bg) 58%, #091222 100%);
  }
  .shift-row__col--after::before {
    content: "Avec MySportbay";
    background: rgba(0, 102, 255, 0.2);
    border: 1px solid rgba(103, 163, 255, 0.45);
    color: var(--accent-soft-ink);
  }
  .shift-row__col--after .shift-row__label {
    color: var(--accent-soft-ink);
  }
  .shift-row__mid {
    display: flex;
    align-items: center;
    justify-content: center;
    order: 0;
    flex: 0 0 auto;
    min-height: 44px;
    margin: 0;
    padding: 0;
    background: var(--surface);
    border-top: 1px dashed var(--border-strong);
    border-bottom: 1px dashed var(--border-strong);
    color: var(--accent);
    font-size: 0;
    line-height: 1;
  }
  .shift-row__mid::before {
    content: "↓";
    font-size: 22px;
    font-weight: 700;
    color: var(--accent);
    line-height: 1;
  }
  .shift-row__label {
    font-size: 11px;
    margin-top: 2px;
  }
}

/* ─────────────────── Sports : horizontal scroll rail ─────────────────── */
section.block.alt.sports-section,
section.sports-section {
  background: var(--surface);
}
.sports-section .shead { margin-bottom: 32px; }
.rail-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 28px;
}
.rail-controls > button {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 140ms ease, border-color 140ms ease, color 140ms ease, opacity 140ms ease;
  box-shadow: var(--shadow-card-xs);
}
.rail-controls > button:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.rail-controls > button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.rail-controls > button:disabled:hover {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--border-strong);
}
.rail-controls > button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--accent-muted);
}
.rail-controls .rail-dots { margin-top: 0; }

.sports-rail-wrap { position: relative; overflow-y: hidden; }
.sports-rail-wrap::before,
.sports-rail-wrap::after {
  content: ""; position: absolute; top: 0; bottom: 16px;
  width: 56px; pointer-events: none; z-index: 2;
  transition: opacity 200ms ease;
}
.sports-rail-wrap::before {
  left: 0; background: linear-gradient(90deg, var(--surface-subtle), transparent);
}
.sports-rail-wrap::after {
  right: 0; background: linear-gradient(-90deg, var(--surface-subtle), transparent);
}
.sports-rail-wrap[data-at-start="true"]::before { opacity: 0; }
.sports-rail-wrap[data-at-end="true"]::after { opacity: 0; }

.sports-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, calc((100% - 48px) / 4));
  gap: 16px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-y: none;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  padding-bottom: 4px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.sports-rail::-webkit-scrollbar { display: none; }

.sport {
  scroll-snap-align: start;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: var(--shadow-card-xs);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.sport:hover { box-shadow: var(--shadow-card); border-color: var(--border-strong); }
.sport .photo {
  aspect-ratio: 4/3;
  background: #1f2a40;
  position: relative; overflow: hidden;
}
.sport .photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.sport .body { padding: 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.sport .body h3 { font-family: var(--font-sans); font-weight: 800; font-size: 18px; letter-spacing: -0.01em; margin: 0; }
.sport .body p { font-size: 13px; color: var(--ink-muted); margin: 0; line-height: 1.5; }
.sport .body .lnk {
  margin-top: auto; padding-top: 12px;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: var(--accent);
}
.sport:hover .lnk { gap: 10px; }

.rail-dots {
  display: flex; gap: 8px; justify-content: center;
  margin-top: 0;
}
.rail-dots button {
  width: 8px; height: 8px; border-radius: 999px;
  background: var(--border-strong);
  border: 0; padding: 0; cursor: pointer;
  transition: background 200ms ease, width 200ms ease, transform 200ms ease;
}
.rail-dots button:hover { background: var(--ink-muted); }
.rail-dots button.active {
  background: var(--accent);
  width: 22px;
}

/* ─────────────────── Features rail (feature pages) ─────────────────── */
.features-section {
  background: var(--surface);
}
.features-section .shead {
  margin-bottom: 32px;
}
/* Même gabarit qu’un .sol-card span-4 dans .sol-grid @ 1200px (≈367px) ; span 1 dans le rail */
.features-section .sports-rail {
  gap: 18px;
  grid-auto-columns: minmax(340px, calc(((100% - 11 * 18px) / 12) * 4 + 3 * 18px));
}
.features-section .sports-rail > .sol-card {
  grid-column: span 1;
  grid-row: span 1;
  scroll-snap-align: start;
}
.features-section .sol-card .app-rail-phones {
  margin-top: auto;
}
.features-section .sports-rail-wrap::before {
  background: linear-gradient(90deg, var(--surface), transparent);
}
.features-section .sports-rail-wrap::after {
  background: linear-gradient(-90deg, var(--surface), transparent);
}
@media (max-width: 768px) {
  .features-section .sports-rail {
    grid-auto-columns: minmax(300px, 82vw);
  }
}
@media (max-width: 540px) {
  .features-section .sports-rail {
    grid-auto-columns: minmax(280px, 88vw);
  }
}

/* ─────────────────── Module page · Dashboard spotlight ─────────────────── */
.dash-spotlight {
  padding: 80px 0 96px;
  background: var(--surface-subtle);
}
.dash-spotlight .shead {
  max-width: 780px;
  margin-bottom: 56px;
}
.dash-spotlight .shead p {
  font-size: 17px;
  line-height: 1.6;
}
.dash-bento {
  display: grid;
  gap: 16px;
  margin-bottom: 56px;
}
.dash-bento__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.dash-kpi {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px 16px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-card-xs);
}
.dash-kpi::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--accent);
  opacity: 1;
}
.dash-kpi small {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-bottom: 6px;
}
.dash-kpi strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(20px, 2.2vw, 26px);
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.1;
}
.dash-kpi span.dash-kpi__hint {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--accent);
}
.dash-bento__main {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: 16px;
  align-items: stretch;
}
.dash-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 20px;
  box-shadow: var(--shadow-card-xs);
  min-height: 220px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.dash-panel__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.dash-chart {
  flex: 1;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  padding-top: 8px;
  min-height: 120px;
}
.dash-chart__bar {
  flex: 1;
  border-radius: 4px 4px 0 0;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  min-height: 28px;
}
.dash-chart__bar.is-high {
  background: var(--accent);
  border-color: var(--accent);
  min-height: 72px;
}
.dash-chart__legend {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink-faint);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.dash-side {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.dash-mini-cal {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink-faint);
  text-align: center;
}
.dash-mini-cal__dow {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.dash-mini-cal span.is-today {
  background: var(--accent-muted);
  color: var(--accent);
  border-radius: 6px;
  font-weight: 700;
}
.dash-mini-cal--month {
  width: 100%;
}
.dash-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dash-actions .btn {
  width: 100%;
  justify-content: center;
  font-size: 13px;
  height: 38px;
}
.dash-bento__lists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.dash-list-panel h4 {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 800;
  color: var(--ink);
}
.dash-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dash-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 12px;
  align-items: center;
  font-size: 12px;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
}
.dash-list li span.meta {
  grid-column: 1 / -1;
  font-size: 11px;
  color: var(--ink-muted);
}
.dash-pill {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  background: var(--success-muted);
  color: var(--success-ink);
  border: 1px solid var(--success-border);
}
.dash-pill.is-warn {
  background: var(--warning-muted);
  color: var(--warning);
  border-color: var(--warning-border);
}
.dash-features {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  max-width: var(--maxw);
  margin: 0 auto;
}
.dash-feat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 0;
  box-shadow: var(--shadow-card-xs);
  overflow: hidden;
  position: relative;
  z-index: 0;
}
.dash-feat:has(.dash-feat__details[open]) {
  z-index: 1;
}
.dash-feat__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 0;
  align-items: stretch;
  min-height: 0;
}
.dash-feat__main {
  padding: 32px 36px 36px;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 260px;
  min-width: 0;
}
.dash-feat__visual {
  background: linear-gradient(165deg, #f3f6fc 0%, #e8eef8 55%, #dfe8f6 100%);
  border-left: 1px solid var(--border-subtle);
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 260px;
}
/* Cartes paires : illustration à gauche, texte à droite */
.dash-features > .dash-feat:nth-child(even) .dash-feat__layout {
  grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
}
.dash-features > .dash-feat:nth-child(even) .dash-feat__main {
  order: 2;
}
.dash-features > .dash-feat:nth-child(even) .dash-feat__visual {
  order: 1;
  border-left: 0;
  border-right: 1px solid var(--border-subtle);
}
.dash-feat-visual-inner {
  width: 100%;
  max-width: 340px;
  margin: 0 auto;
}
.dash-feat-visual-inner--dark {
  max-width: 300px;
}
.dash-feat__visual .dash-feat-visual-inner,
.dash-feat__visual .res-ui,
.dash-feat__visual .crm-ui,
.dash-feat__visual .stock-ui,
.dash-feat__visual .pos-ui,
.dash-feat__visual .acct-ui,
.dash-feat__visual .tour-ui--edit-sheet,
.dash-feat__visual .tour-ui,
.dash-feat__visual .plan-ui,
.dash-feat__visual .mini-planning,
.dash-feat__visual .sol-mock,
.dash-feat__visual .ev-list.sol-mock,
.dash-feat__visual .pay-rail,
.dash-feat__visual .dash-panel,
.dash-feat__visual .app-feat-shot,
.dash-feat__visual .app-store-mock,
.dash-feat__visual .app-feat-matches,
.dash-feat__visual .app-feat-perks {
  margin-top: 0;
  min-height: 0;
}
.dash-feat__visual .dash-bento {
  margin-top: 0;
  min-height: 0;
  height: auto;
  max-height: 100%;
}

/* Indicateurs du jour (illustration carte feature) */
.dash-day-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}
.dash-day-kpi {
  position: relative;
  border-radius: 14px;
  padding: 14px 12px 12px;
  min-height: 108px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 2px;
  color: #fff;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15, 30, 60, 0.14);
}
.dash-day-kpi__icon {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.95;
}
.dash-day-kpi__value {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-feature-settings: "tnum";
}
.dash-day-kpi__label {
  display: block;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.25;
  opacity: 0.95;
}
.dash-day-kpi--ca {
  background: linear-gradient(145deg, #4f8ef7 0%, #2f6fe8 55%, #1e5ad4 100%);
}
.dash-day-kpi--res {
  background: linear-gradient(145deg, #f06bab 0%, #e84a9a 55%, #d63384 100%);
}
.dash-day-kpi--ev {
  background: linear-gradient(145deg, #ffb347 0%, #f59e2e 55%, #e8891a 100%);
}
.dash-day-kpi--users {
  background: linear-gradient(145deg, #5ee9b5 0%, #2fd39a 55%, #12b886 100%);
}
.dash-feat__visual .plan-ui {
  max-width: 100%;
  margin-top: 0;
}
.dash-feat__visual .plan-ui--compact .plan-ui__board,
.dash-feat__visual .plan-ui--filters .plan-ui__board,
.dash-feat__visual .plan-ui--pick .plan-ui__board {
  min-height: 140px;
}
.dash-feat__visual .plan-ui--dates {
  padding: 8px 4px;
}
.dash-feat__visual .plan-ui--stats-only .plan-ui__stat strong {
  font-size: clamp(14px, 4vw, 18px);
}

.dash-feat__visual .dash-day-kpis {
  max-width: 100%;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.dash-feat__visual .dash-day-kpi {
  min-height: 104px;
  padding: 12px 8px 10px;
}
.dash-feat__visual .dash-day-kpi__value {
  font-size: clamp(16px, 4vw, 22px);
}
.dash-feat__visual .dash-day-kpi__label {
  font-size: 7px;
  letter-spacing: 0.06em;
}
.dash-feat__visual .dash-day-kpi__icon {
  width: 28px;
  height: 28px;
  top: 8px;
  right: 8px;
}
.dash-feat__visual .dash-day-kpi__icon svg {
  width: 14px;
  height: 14px;
}

/* Statistiques & analytiques (illustration courbes CA) */
.dash-analytics {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 16px;
  padding: 14px 12px 10px;
  box-shadow: 0 10px 28px rgba(15, 30, 60, 0.08);
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
.dash-analytics__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.2;
}
.dash-analytics__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.dash-analytics__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.dash-analytics__pills span {
  font-size: 9px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  line-height: 1;
}
.dash-analytics__pills span.is-active {
  background: #e8f0fe;
  color: #2563eb;
}
.dash-analytics__date {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 9px;
  font-weight: 600;
  color: #334155;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 4px 8px;
  line-height: 1;
}
.dash-analytics__date svg {
  flex-shrink: 0;
  color: #64748b;
}
.dash-analytics__chev {
  margin-left: 2px;
}
.dash-analytics__body {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: stretch;
  border-top: 1px solid #f1f5f9;
  padding-top: 8px;
}
.dash-analytics__chart-wrap {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.dash-analytics__lines {
  width: 100%;
  height: 72px;
  display: block;
}
.dash-analytics__grid {
  stroke: #e8edf3;
  stroke-width: 1;
}
.dash-analytics__line {
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.dash-analytics__line--ca {
  stroke: #3b82f6;
}
.dash-analytics__line--res {
  stroke: #ef476f;
}
.dash-analytics__days {
  display: flex;
  justify-content: space-between;
  gap: 0;
}
.dash-analytics__days span {
  flex: 1;
  text-align: center;
  font-size: 6px;
  font-weight: 600;
  color: #94a3b8;
  line-height: 1;
}
.dash-analytics__aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding-left: 8px;
  border-left: 1px solid #f1f5f9;
  min-width: 88px;
}
.dash-analytics__metric {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 6px;
  row-gap: 2px;
  align-items: start;
}
.dash-analytics__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  margin-top: 3px;
  grid-row: 1 / span 2;
}
.dash-analytics__dot--ca {
  background: #3b82f6;
}
.dash-analytics__dot--res {
  background: #ef476f;
}
.dash-analytics__metric small {
  grid-column: 2;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
  line-height: 1.2;
}
.dash-analytics__metric strong {
  grid-column: 2;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0f172a;
  line-height: 1.1;
  font-feature-settings: "tnum";
}
.dash-feat__visual .dash-analytics {
  padding: 10px 8px 8px;
  gap: 8px;
  border-radius: 14px;
}
.dash-feat__visual .dash-analytics__title {
  font-size: 11px;
}
.dash-feat__visual .dash-analytics__pills span {
  font-size: 7px;
  padding: 3px 6px;
}
.dash-feat__visual .dash-analytics__date {
  font-size: 7px;
  padding: 3px 6px;
}
.dash-feat__visual .dash-analytics__lines {
  height: 58px;
}
.dash-feat__visual .dash-analytics__aside {
  min-width: 72px;
  padding-left: 6px;
  gap: 8px;
}
.dash-feat__visual .dash-analytics__metric strong {
  font-size: 9px;
}
.dash-feat__visual .dash-analytics__metric small {
  font-size: 6px;
}
.dash-feat__visual .dash-analytics__days span {
  font-size: 5px;
}

/* Maquette Réservations (hero + cartes feature-reservations) */
.res-ui {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  min-height: 0;
}
.res-ui__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.res-ui__kpi {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 10px 8px;
  display: flex;
  gap: 8px;
  align-items: flex-start;
  min-width: 0;
}
.res-ui__kpi-ic {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.res-ui__kpi--open .res-ui__kpi-ic {
  background: var(--warning-muted);
  color: var(--warning);
}
.res-ui__kpi--closed .res-ui__kpi-ic {
  background: var(--accent-muted);
  color: var(--accent);
}
.res-ui__kpi--due .res-ui__kpi-ic {
  background: #fee8e8;
  color: #dc2626;
}
.res-ui__kpi--paid .res-ui__kpi-ic {
  background: var(--success-muted);
  color: var(--success);
}
.res-ui__kpi small {
  display: block;
  font-size: 9px;
  font-weight: 600;
  color: var(--ink-muted);
  line-height: 1.2;
}
.res-ui__kpi strong {
  display: block;
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
  font-feature-settings: "tnum";
}
.res-ui__kpi-meta {
  display: block;
  font-size: 8px;
  color: var(--ink-faint);
  margin-top: 2px;
}
.res-ui__panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.res-ui__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border-subtle);
}
.res-ui__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.res-ui__tabs button {
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  color: var(--ink-secondary);
  font-size: 10px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 999px;
  font-family: inherit;
  cursor: default;
  white-space: nowrap;
}
.res-ui__tabs button em {
  font-style: normal;
  font-weight: 800;
  margin-left: 3px;
}
.res-ui__tabs button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.res-ui__tabs button.is-active em {
  color: #fff;
}
.res-ui__actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
.res-ui__icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.res-ui__icon-btn--active {
  border-color: var(--accent-border);
  background: var(--accent-muted);
  color: var(--accent);
  box-shadow: 0 0 0 2px rgba(0, 102, 255, 0.12);
}
button.res-ui__icon-btn {
  padding: 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.res-ui__filter-btn {
  box-shadow:
    0 1px 3px rgba(11, 20, 36, 0.1),
    0 0 0 2px rgba(0, 102, 255, 0.14);
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}
.res-ui__filter-btn:hover {
  background: #e8f1ff;
  box-shadow:
    0 2px 6px rgba(0, 102, 255, 0.18),
    0 0 0 2px rgba(0, 102, 255, 0.2);
}
.res-ui__filter-btn:active {
  transform: scale(0.94);
}
.res-ui__add {
  font-size: 11px;
  font-weight: 700;
  padding: 7px 12px;
  border-radius: 8px;
  background: var(--accent);
  color: #fff;
  white-space: nowrap;
}
.res-ui__export-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--accent);
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
}
.res-ui__table-wrap {
  overflow: hidden;
  flex: 1;
  min-height: 0;
}
.res-ui__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.res-ui__table thead th {
  padding: 8px 6px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-faint);
  text-align: left;
  background: var(--surface-subtle);
  border-bottom: 1px solid var(--border-subtle);
}
.res-ui__table tbody td {
  padding: 7px 6px;
  font-size: 9px;
  font-weight: 600;
  color: var(--ink-secondary);
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: middle;
}
.res-ui__table tbody tr:nth-child(even) td {
  background: #fafafa;
}
.res-ui__table tbody tr.is-selected td {
  background: var(--accent-muted);
}
.res-ui__date-ic {
  display: inline-block;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  position: relative;
}
.res-ui__date-ic::before,
.res-ui__date-ic::after {
  content: "";
  position: absolute;
  left: 5px;
  right: 5px;
  height: 2px;
  border-radius: 1px;
  background: var(--accent);
  opacity: 0.5;
}
.res-ui__date-ic::before { top: 7px; }
.res-ui__date-ic::after { top: 11px; width: 60%; }
.res-ui__date-cell {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.res-ui__date-cell time {
  font-size: inherit;
  font-weight: 600;
  color: var(--ink);
}
.res-ui__dur {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--accent-muted);
  color: var(--accent);
  font-size: 9px;
  font-weight: 700;
}
.res-ui__member strong {
  display: block;
  font-size: 9px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.res-ui__member small {
  display: block;
  font-size: 8px;
  font-weight: 500;
  color: var(--ink-faint);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.res-ui__pill {
  display: inline-block;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  font-size: 8px;
  font-weight: 600;
  color: var(--ink-muted);
  white-space: nowrap;
}
.res-ui__table .is-muted {
  color: var(--ink-faint);
}
.res-ui__detail {
  padding: 12px;
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.res-ui__detail-title {
  margin: 0 0 8px;
  font-size: 10px;
  font-weight: 800;
  color: var(--ink);
}
.res-ui__detail ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.res-ui__detail li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 9px;
}
.res-ui__detail li span {
  color: var(--ink-muted);
  font-weight: 600;
}
.res-ui__detail li strong {
  color: var(--ink);
  font-weight: 700;
  text-align: right;
}
.res-ui--hero {
  flex: 1;
  min-height: 0;
  gap: 8px;
  background: #f4f6f9;
  border-radius: 10px;
  padding: 8px;
}
.feat-hero .visual .res-ui--hero {
  background: transparent;
  padding: 0;
}
.feat-hero .visual .res-ui--hero .res-ui__kpi strong {
  font-size: 15px;
}
.feat-hero .visual .res-ui--hero .res-ui__kpi-meta {
  display: none;
}
.feat-hero .visual .res-ui--hero .res-ui__toolbar {
  flex-wrap: nowrap;
  gap: 4px;
  padding: 6px 8px;
}
.feat-hero .visual .res-ui--hero .res-ui__tabs {
  flex: 1 1 auto;
  flex-wrap: nowrap;
  min-width: 0;
  gap: 2px;
}
.feat-hero .visual .res-ui--hero .res-ui__tabs button {
  font-size: 8px;
  padding: 3px 6px;
  flex-shrink: 1;
  min-width: 0;
}
.feat-hero .visual .res-ui--hero .res-ui__tabs button em {
  margin-left: 2px;
}
.feat-hero .visual .res-ui--hero .res-ui__actions {
  flex-shrink: 0;
  gap: 3px;
}
.feat-hero .visual .res-ui--hero .res-ui__icon-btn {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  flex-shrink: 0;
}
.feat-hero .visual .res-ui--hero .res-ui__icon-btn svg {
  width: 12px;
  height: 12px;
}
.feat-hero .visual .res-ui--hero .res-ui__add {
  font-size: 9px;
  padding: 4px 8px;
  border-radius: 6px;
}
.feat-hero .visual.mod-hero-mock:has(.res-ui--hero) {
  aspect-ratio: auto;
  height: auto;
  overflow: visible;
  align-self: stretch;
}
.mod-hero-mock:has(.res-ui--hero) .res-ui--hero {
  flex: 0 0 auto;
  min-height: auto;
}
.feat-hero .visual .res-ui--hero .res-ui__panel {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}
.feat-hero .visual .res-ui--hero .res-ui__table-wrap {
  overflow: visible;
  flex: 0 0 auto;
  min-height: auto;
}
.feat-hero .visual .res-ui--hero .res-ui__table {
  height: auto;
}
.feat-hero .visual .res-ui--hero .res-ui__table tbody td {
  padding-top: 9px;
  padding-bottom: 9px;
}
.feat-hero .visual .res-ui--hero .res-ui__table thead th:nth-child(n+6),
.feat-hero .visual .res-ui--hero .res-ui__table tbody td:nth-child(n+6) {
  display: none;
}
.res-ui--compact { gap: 8px; max-width: 100%; }
.res-ui--compact .res-ui__kpis--mini .res-ui__kpi {
  padding: 8px;
  gap: 6px;
}
.res-ui--compact .res-ui__kpis--mini .res-ui__kpi-ic {
  width: 20px;
  height: 20px;
}
.res-ui--compact .res-ui__kpis--mini .res-ui__kpi strong {
  font-size: 14px;
}
.res-ui--compact .res-ui__kpis--mini small {
  font-size: 8px;
}
.res-ui--compact .res-ui__toolbar {
  padding: 8px 10px;
}
.res-ui--toolbar .res-ui__toolbar--focus {
  flex-direction: column;
  align-items: stretch;
}
.res-ui--toolbar .res-ui__actions {
  width: 100%;
  justify-content: flex-start;
}
/* Filtre calendrier (carte feature réservations) */
.res-ui--dates {
  gap: 0;
  width: 100%;
}
.res-ui__panel--dates {
  padding: 12px;
  gap: 10px;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.res-ui__date-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.res-ui__date-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.res-ui__date-chips button {
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  color: var(--ink-secondary);
  font-size: 9px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 999px;
  font-family: inherit;
  cursor: default;
  white-space: nowrap;
}
.res-ui__date-chips button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0, 102, 255, 0.22);
}
.res-ui__date-shift {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.res-ui__date-arrow {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-muted);
  font-size: 14px;
  line-height: 1;
  padding: 0;
  cursor: default;
  font-family: inherit;
}
.res-ui__date-shift-label {
  font-size: 9px;
  font-weight: 700;
  color: var(--ink-secondary);
  white-space: nowrap;
  padding: 0 2px;
}
.res-ui__date-body {
  display: grid;
  grid-template-columns: minmax(0, 132px) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
  flex: 1;
  min-height: 0;
}
.res-ui__date-trigger {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 10px;
  border-radius: 10px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  text-align: left;
  font-family: inherit;
  cursor: default;
  align-self: start;
}
.res-ui__date-trigger.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  box-shadow: 0 4px 14px rgba(0, 102, 255, 0.22);
}
.res-ui__date-trigger-ic {
  color: var(--accent);
  display: inline-flex;
  flex-shrink: 0;
}
.res-ui__date-trigger.is-active .res-ui__date-trigger-ic {
  color: #fff;
}
.res-ui__date-trigger-col {
  display: flex;
  flex-direction: column;
  gap: 3px;
  line-height: 1.2;
  min-width: 0;
}
.res-ui__date-trigger-col small {
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.res-ui__date-trigger.is-active .res-ui__date-trigger-col small,
.res-ui__date-trigger.is-active .res-ui__date-trigger-col strong {
  color: #fff;
}
.res-ui__date-trigger-col strong {
  font-size: 10px;
  font-weight: 800;
  color: var(--ink);
}
.res-ui__cal {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 10px 8px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
}
.res-ui__cal-title {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink);
}
.res-ui__cal-hint {
  margin: 0;
  font-size: 8px;
  font-weight: 600;
  color: var(--accent);
  line-height: 1.3;
}
.res-ui__cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.res-ui__cal-month {
  font-size: 10px;
  font-weight: 700;
  color: var(--ink);
  text-transform: capitalize;
}
.res-ui__cal-arrow {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: default;
}
.res-ui__cal-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.res-ui__cal-week span {
  text-align: center;
  font-size: 7px;
  font-weight: 700;
  color: var(--ink-faint);
  padding: 2px 0;
}
.res-ui__cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
  flex: 1;
  min-height: 0;
}
.res-ui__cal-cell {
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  font-size: 9px;
  font-weight: 700;
  color: var(--ink);
  background: transparent;
}
.res-ui__cal-cell.is-muted {
  color: var(--ink-faint);
  opacity: 0.38;
}
.res-ui__cal-cell.is-range {
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent);
}
.res-ui__cal-cell.is-pending {
  border: 2px solid var(--accent);
  background: var(--surface-subtle);
  color: var(--accent);
}
.res-ui__cal-cell.is-today {
  border: 1px solid var(--border-strong);
  box-shadow: inset 0 0 0 1px rgba(0, 102, 255, 0.08);
}
.res-ui__cal-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 2px;
  padding-top: 6px;
  border-top: 1px solid var(--border-subtle);
}
.res-ui__cal-count {
  font-size: 8px;
  font-weight: 700;
  color: var(--ink-muted);
}
.res-ui__cal-clear {
  font-size: 8px;
  font-weight: 700;
  color: var(--ink-secondary);
  padding: 4px 8px;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  font-family: inherit;
  cursor: default;
}
.res-ui--cal-only {
  width: 100%;
}
.res-ui--cal-only .res-ui__panel--dates {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.res-ui--cal-only .res-ui__cal {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.dash-feat__visual .res-ui--dates {
  min-height: 200px;
}
.dash-feat__visual .res-ui--cal-only {
  min-height: 0;
}
.dash-feat__visual .res-ui__panel--dates {
  min-height: 200px;
}
.dash-feat__visual .res-ui--cal-only .res-ui__panel--dates {
  min-height: 0;
}
.dash-feat__visual .res-ui__date-body {
  grid-template-columns: minmax(0, 118px) minmax(0, 1fr);
}
.dash-feat__visual .res-ui__cal-cell {
  min-height: 22px;
  font-size: 8px;
}
.dash-feat__visual .res-ui--cal-only .res-ui__cal {
  max-width: 100%;
}
.dash-feat__visual .res-ui--cal-only .res-ui__cal-title {
  font-size: 12px;
}
.dash-feat__visual .res-ui--cal-only .res-ui__cal-hint {
  font-size: 9px;
}
.dash-feat__visual .res-ui--cal-only .res-ui__cal-cell {
  min-height: 28px;
  font-size: 10px;
}
.res-ui--export .res-ui__actions--focus {
  width: 100%;
  justify-content: flex-end;
}
.res-ui--detail .res-ui__panel {
  gap: 0;
}
/* Fiche détail réservation (aperçu carte feature) */
.res-ui--detail-sheet {
  width: 100%;
}
.res-detail-sheet {
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  overflow: hidden;
}
.res-detail-sheet__head {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.res-detail-sheet__title {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.res-detail-sheet__sub {
  margin: 0;
  font-size: 8px;
  font-weight: 500;
  color: var(--ink-muted);
  line-height: 1.3;
}
.res-detail-sheet__kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
}
.res-detail-sheet__kpi {
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 5px 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
  min-width: 0;
}
.res-detail-sheet__kpi-ic {
  color: var(--accent);
  display: inline-flex;
}
.res-detail-sheet__kpi small {
  font-size: 6px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.res-detail-sheet__kpi strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
}
.res-detail-sheet__body {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
  min-height: 0;
}
.res-detail-sheet__block {
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 6px 8px;
}
.res-detail-sheet__eyebrow {
  margin: 0;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.res-detail-sheet__eyebrow::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--accent);
  margin-right: 4px;
  vertical-align: middle;
}
.res-detail-sheet__block-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.res-detail-sheet__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
}
.res-detail-sheet__row-txt {
  font-size: 8px;
  font-weight: 600;
  color: var(--ink-secondary);
  line-height: 1.25;
}
.res-detail-sheet__toggle {
  width: 28px;
  height: 16px;
  border-radius: 999px;
  background: var(--border);
  flex-shrink: 0;
  position: relative;
}
.res-detail-sheet__toggle::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
}
.res-detail-sheet__badge {
  font-size: 7px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 999px;
  background: #fff8e6;
  border: 1px solid #f5d78e;
  color: #9a6b00;
}
.res-detail-sheet__player {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0 0;
}
.res-detail-sheet__avatar {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent);
  font-size: 7px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.res-detail-sheet__player-meta {
  flex: 1;
  min-width: 0;
}
.res-detail-sheet__player-meta strong {
  display: block;
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.res-detail-sheet__player-meta small {
  display: block;
  font-size: 7px;
  color: var(--ink-faint);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.res-detail-sheet__paid-ic {
  color: var(--accent);
  display: inline-flex;
  flex-shrink: 0;
}
.res-detail-sheet__total {
  font-size: 8px;
  font-weight: 800;
  padding: 3px 7px;
  border-radius: 6px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent);
}
.res-detail-sheet__sum-line,
.res-detail-sheet__sum-pending {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 8px;
  margin-top: 3px;
}
.res-detail-sheet__sum-line span,
.res-detail-sheet__sum-pending span {
  color: var(--ink-muted);
  font-weight: 600;
}
.res-detail-sheet__sum-line strong,
.res-detail-sheet__sum-pending strong {
  color: var(--ink);
  font-weight: 800;
}
.res-detail-sheet__foot {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  flex-wrap: wrap;
}
.res-detail-sheet__btn {
  font-size: 7px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 7px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.res-detail-sheet__btn--ok {
  color: #0d7a4a;
  border-color: #9ed9b8;
  background: #ecfdf3;
}
.res-detail-sheet__btn--save {
  color: var(--accent);
  border-color: var(--accent-border);
  background: var(--accent-muted);
}
.res-detail-sheet__btn--cancel {
  color: #c53030;
  border-color: #f5b5b5;
  background: #fff5f5;
}
.dash-feat__visual .res-ui--detail-sheet {
  min-height: 0;
}
.dash-feat__visual .res-detail-sheet {
  width: 100%;
  max-height: 100%;
}
.dash-feat__visual .res-detail-sheet__title {
  font-size: 12px;
}
.dash-feat__visual .res-detail-sheet__sub {
  font-size: 9px;
}
.dash-feat__visual .res-detail-sheet__kpi strong {
  font-size: 9px;
}
.dash-feat__visual .res-detail-sheet__row-txt {
  font-size: 9px;
}
.dash-feat__visual .res-detail-sheet__btn {
  font-size: 8px;
  padding: 5px 9px;
}

/* Fiche édition tournoi (aperçu carte feature) */
.tour-ui--edit-sheet {
  width: 100%;
}
.tour-edit-sheet {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-height: 0;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
.tour-edit-sheet--compact {
  gap: 5px;
  padding: 8px 8px 9px;
  overflow: visible;
}
.tour-edit-sheet__head {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.tour-edit-sheet__title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
}
.tour-edit-sheet__title {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.tour-edit-sheet__chips {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
}
.tour-edit-sheet__chips span {
  font-size: 6px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
}
.tour-edit-sheet__chips .is-on {
  background: var(--accent-muted);
  border-color: var(--accent-border);
  color: var(--accent);
}
.tour-edit-sheet__chips .is-priv {
  background: #eef2ff;
  border-color: #c7d2fe;
  color: #4338ca;
}
.tour-edit-sheet__sub {
  margin: 0;
  font-size: 7px;
  font-weight: 500;
  color: var(--ink-muted);
  line-height: 1.35;
}
.tour-edit-sheet__cta {
  display: block;
  text-align: center;
  font-size: 7px;
  font-weight: 800;
  padding: 5px 8px;
  border-radius: 8px;
  background: var(--accent);
  color: #fff;
  border: 1px solid var(--accent);
}
.tour-edit-sheet__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
}
.tour-edit-sheet__kpi {
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 5px 3px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
  min-width: 0;
}
.tour-edit-sheet__kpi-ic {
  color: var(--accent);
  display: inline-flex;
}
.tour-edit-sheet__kpi small {
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.tour-edit-sheet__kpi strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
}
.tour-edit-sheet__kpi--status strong {
  color: var(--success);
}
.tour-edit-sheet__acc {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tour-edit-sheet__acc-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.tour-edit-sheet__acc-item > div {
  flex: 1;
  min-width: 0;
}
.tour-edit-sheet__acc-item strong {
  display: block;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--accent);
}
.tour-edit-sheet__acc-item small {
  display: block;
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-muted);
  margin-top: 1px;
}
.tour-edit-sheet__dot {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--accent);
  flex-shrink: 0;
}
.tour-edit-sheet__chev {
  font-size: 10px;
  font-weight: 700;
  color: var(--ink-faint);
  line-height: 1;
}
.tour-edit-sheet__pill {
  font-size: 6px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
  color: #4338ca;
}
.tour-edit-sheet__section {
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 6px 7px;
  background: var(--surface-subtle);
}
.tour-edit-sheet__section-head {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-bottom: 5px;
}
.tour-edit-sheet__section-head strong {
  display: block;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--accent);
}
.tour-edit-sheet__section-head small {
  display: block;
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-muted);
}
.tour-edit-sheet__inline {
  display: flex;
  gap: 4px;
  margin-bottom: 5px;
}
.tour-edit-sheet__fake-select,
.tour-edit-sheet__field {
  flex: 1;
  min-width: 0;
  padding: 4px 6px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--surface);
}
.tour-edit-sheet__fake-select {
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-secondary);
}
.tour-edit-sheet__field {
  display: flex;
  flex-direction: column;
  gap: 1px;
  max-width: 52px;
}
.tour-edit-sheet__field small {
  font-size: 5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.tour-edit-sheet__field strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
}
.tour-edit-sheet__participants-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.tour-edit-sheet__participants-head strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.tour-edit-sheet__participants-head em {
  font-size: 7px;
  font-weight: 800;
  font-style: normal;
  color: var(--accent);
}
.tour-edit-sheet__participants-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin-bottom: 4px;
}
.tour-edit-sheet__participants-actions span {
  font-size: 6px;
  font-weight: 700;
  padding: 3px 5px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-secondary);
}
.tour-edit-sheet__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 7px;
}
.tour-edit-sheet__table th {
  text-align: left;
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding: 3px 4px;
  border-bottom: 1px solid var(--border-subtle);
}
.tour-edit-sheet__table td {
  padding: 4px;
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: middle;
}
.tour-edit-sheet__table tr:last-child td {
  border-bottom: 0;
}
.tour-edit-sheet__client {
  display: flex;
  align-items: center;
  gap: 4px;
}
.tour-edit-sheet__avatar {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent);
  font-size: 6px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.tour-edit-sheet__client strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.tour-edit-sheet__table small {
  font-size: 6px;
  color: var(--ink-faint);
}
.tour-edit-sheet__paid {
  color: var(--accent);
  display: inline-flex;
}
.tour-edit-sheet__recap {
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 6px 7px;
  background: var(--surface);
}
.tour-edit-sheet__recap-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.tour-edit-sheet__recap-head strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.tour-edit-sheet__recap-pill {
  font-size: 6px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent);
}
.tour-edit-sheet__recap-list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tour-edit-sheet__recap-list > div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 7px;
}
.tour-edit-sheet__recap-list dt {
  margin: 0;
  font-weight: 600;
  color: var(--ink-muted);
}
.tour-edit-sheet__recap-list dd {
  margin: 0;
  font-weight: 700;
  color: var(--ink);
  text-align: right;
}
.tour-edit-sheet__recap-list dd strong {
  color: var(--accent);
}
.tour-edit-sheet__foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}
.tour-edit-sheet__btn {
  text-align: center;
  font-size: 7px;
  font-weight: 800;
  padding: 5px 6px;
  border-radius: 8px;
  border: 1px solid transparent;
}
.tour-edit-sheet__btn--save {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.tour-edit-sheet__btn--danger {
  background: #fff5f5;
  color: #c53030;
  border-color: #f5b5b5;
}
.tour-edit-sheet--compact .tour-edit-sheet__head {
  gap: 4px;
}
.tour-edit-sheet--compact .tour-edit-sheet__sub {
  display: none;
}
.tour-edit-sheet--compact .tour-edit-sheet__cta {
  font-size: 6px;
  padding: 4px 6px;
  border-radius: 6px;
}
.tour-edit-sheet--compact .tour-edit-sheet__kpis {
  gap: 3px;
}
.tour-edit-sheet--compact .tour-edit-sheet__kpi {
  padding: 4px 2px;
}
.tour-edit-sheet--compact .tour-edit-sheet__kpi-ic {
  display: none;
}
.tour-edit-sheet--compact .tour-edit-sheet__kpi small {
  font-size: 5px;
}
.tour-edit-sheet--compact .tour-edit-sheet__kpi strong {
  font-size: 6px;
}
.tour-edit-sheet__lanes {
  display: flex;
  gap: 3px;
}
.tour-edit-sheet__lanes span {
  flex: 1;
  text-align: center;
  font-size: 6px;
  font-weight: 700;
  padding: 3px 2px;
  border-radius: 5px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
}
.tour-edit-sheet__lanes span:first-child {
  color: var(--accent);
  border-color: var(--accent-border);
  background: var(--accent-muted);
}
.tour-edit-sheet__peek {
  border: 1px solid var(--border-subtle);
  border-radius: 7px;
  padding: 5px 6px;
  background: var(--surface-subtle);
}
.tour-edit-sheet__peek-head {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 4px;
}
.tour-edit-sheet__peek-head strong {
  font-size: 6px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
}
.tour-edit-sheet__peek-head em {
  font-size: 6px;
  font-weight: 800;
  font-style: normal;
  color: var(--accent);
  margin-left: 4px;
}
.tour-edit-sheet__peek-head span {
  margin-left: auto;
  font-size: 5px;
  font-weight: 600;
  color: var(--ink-faint);
}
.tour-edit-sheet__player {
  display: flex;
  align-items: center;
  gap: 5px;
}
.tour-edit-sheet__player-meta {
  flex: 1;
  min-width: 0;
}
.tour-edit-sheet__player-meta strong {
  display: block;
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.tour-edit-sheet__player-meta small {
  display: block;
  font-size: 5px;
  font-weight: 600;
  color: var(--ink-faint);
}
.tour-edit-sheet--compact .tour-edit-sheet__avatar {
  width: 16px;
  height: 16px;
  font-size: 5px;
}
.tour-edit-sheet--compact .tour-edit-sheet__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  grid-template-columns: none;
}
.tour-edit-sheet__recap-line {
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-muted);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tour-edit-sheet--compact .tour-edit-sheet__btn--save {
  flex-shrink: 0;
  font-size: 6px;
  padding: 4px 8px;
}
.tour-edit-sheet--compact .tour-edit-sheet__btn--danger {
  display: none;
}
.dash-feat__visual:has(.tour-ui--edit-sheet) {
  align-items: flex-start;
  padding-top: 16px;
  padding-bottom: 16px;
}
.dash-feat__visual .tour-ui--edit-sheet {
  max-width: 100%;
  width: 100%;
  min-height: 0;
}
.dash-feat__visual .tour-edit-sheet {
  width: 100%;
}
.dash-feat__visual .tour-edit-sheet--compact {
  max-height: none;
}
.dash-feat__visual .tour-edit-sheet--compact .tour-edit-sheet__kpi small {
  font-size: 6px;
}
.dash-feat__visual .tour-edit-sheet--compact .tour-edit-sheet__kpi strong {
  font-size: 7px;
}
.dash-feat__visual .tour-edit-sheet__title {
  font-size: 11px;
}
.dash-feat__visual .tour-edit-sheet__cta {
  font-size: 7px;
  padding: 5px 8px;
}
.dash-feat__visual .tour-edit-sheet__lanes span {
  font-size: 6px;
}
.dash-feat__visual .tour-edit-sheet__player-meta strong {
  font-size: 8px;
}
.dash-feat__visual .tour-edit-sheet__btn--save {
  font-size: 7px;
  padding: 5px 10px;
}

/* Tournois / événements — illustrations feature */
.tour-ui {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}
.tour-ui__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.tour-ui__kpi {
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 6px 6px 5px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
}
.tour-ui__kpi-ic {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.tour-ui__kpi-ic--blue { background: var(--accent-muted); color: var(--accent); }
.tour-ui__kpi-ic--orange { background: var(--warning-muted); color: var(--warning); }
.tour-ui__kpi-ic--green { background: var(--success-muted); color: var(--success); }
.tour-ui__kpi-ic--red { background: #fff0f0; color: #e53e3e; }
.tour-ui__kpi small {
  font-size: 6px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.tour-ui__kpi strong {
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1;
}
.tour-ui__kpi-meta {
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-faint);
}
.tour-ui__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.tour-ui__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  flex: 1 1 auto;
  min-width: 0;
}
.tour-ui__tabs button {
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  color: var(--ink-secondary);
  font-size: 8px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  font-family: inherit;
  cursor: default;
  white-space: nowrap;
}
.tour-ui__tabs button em {
  font-style: normal;
  font-weight: 800;
  margin-left: 2px;
}
.tour-ui__tabs button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.tour-ui__actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.tour-ui__search {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-faint);
  min-width: 72px;
}
.tour-ui__icon-btn {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.tour-ui__add {
  font-size: 8px;
  font-weight: 700;
  padding: 5px 9px;
  border-radius: 7px;
  background: var(--accent);
  color: #fff;
  white-space: nowrap;
}
.tour-ui__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  flex: 1;
  min-height: 0;
}
.tour-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.tour-card__head {
  background: linear-gradient(135deg, #1a5fd1, #0d4bb8);
  color: #fff;
  padding: 8px 8px 7px;
  position: relative;
  min-height: 52px;
}
.tour-card__date {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.95);
  color: var(--ink);
  font-size: 7px;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 4px;
}
.tour-card__date small {
  font-size: 9px;
  font-weight: 800;
  display: block;
}
.tour-card__tag {
  display: block;
  font-size: 6px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 2px;
}
.tour-card__head strong {
  display: block;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.15;
}
.tour-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 4px;
  padding: 5px 8px;
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-muted);
  border-bottom: 1px solid var(--border-subtle);
}
.tour-card__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  padding: 5px 6px;
  background: var(--surface-subtle);
  text-align: center;
}
.tour-card__stats small {
  display: block;
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.tour-card__stats strong {
  display: block;
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.tour-card__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
  padding: 5px 8px;
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-muted);
}
.tour-card__status {
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  font-weight: 700;
}
.tour-card__status.is-open {
  background: var(--accent-muted);
  border-color: var(--accent-border);
  color: var(--accent);
}
.tour-detail {
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.tour-detail__hero {
  background: linear-gradient(135deg, #0066ff, #0d4bb8);
  color: #fff;
  padding: 10px 10px 8px;
  position: relative;
}
.tour-detail__crumb {
  margin: 0 0 4px;
  font-size: 6px;
  font-weight: 600;
  opacity: 0.85;
}
.tour-detail__pill {
  display: inline-block;
  font-size: 6px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  margin-bottom: 4px;
}
.tour-detail__title {
  margin: 0;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.15;
}
.tour-detail__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
  font-size: 7px;
  font-weight: 600;
  opacity: 0.9;
}
.tour-detail__live {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 6px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
}
.tour-detail__tabs {
  display: flex;
  gap: 2px;
  padding: 6px 8px 0;
  overflow: hidden;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--surface);
}
.tour-detail__tabs span {
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-muted);
  padding: 4px 6px 6px;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
}
.tour-detail__tabs span.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
  font-weight: 800;
}
.tour-detail__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  padding: 6px 8px 8px;
  background: var(--surface);
}
.tour-detail__card {
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 6px;
  position: relative;
  min-height: 48px;
}
.tour-detail__card--wide {
  grid-column: span 2;
}
.tour-detail__card--live {
  border-color: #9ed9b8;
  background: #f0fdf6;
}
.tour-detail__eyebrow {
  margin: 0 0 3px;
  font-size: 6px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.tour-detail__card strong {
  display: block;
  font-size: 9px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.tour-detail__card small {
  display: block;
  font-size: 6px;
  color: var(--ink-muted);
  margin-top: 2px;
}
.tour-detail__pct {
  font-size: 8px;
  font-weight: 800;
  color: var(--success);
}
.tour-detail__bar {
  display: block;
  height: 4px;
  border-radius: 999px;
  background: #e8edf3;
  margin-top: 4px;
  overflow: hidden;
}
.tour-detail__bar::after {
  content: "";
  display: block;
  width: 68%;
  height: 100%;
  background: var(--success);
  border-radius: inherit;
}
.tour-detail__badge-live {
  position: absolute;
  top: 5px;
  right: 5px;
  font-size: 6px;
  font-weight: 800;
  padding: 2px 5px;
  border-radius: 999px;
  background: var(--success);
  color: #fff;
}
.tour-detail__card ul,
.tour-detail__card ol {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tour-detail__card li {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 7px;
  color: var(--ink-secondary);
}
.tour-detail__card li strong {
  font-size: 7px;
  flex: 1;
  min-width: 0;
}
.tour-detail__card li em {
  font-style: normal;
  font-size: 6px;
  color: var(--ink-faint);
}
.tour-detail__card li span {
  font-weight: 700;
  color: var(--ink-muted);
  font-variant-numeric: tabular-nums;
}
.tour-detail__card .rk {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 7px;
  font-weight: 800;
  flex-shrink: 0;
}
.tour-detail__card .rk--1 { background: #fef3c7; color: #92400e; }
.tour-detail__card .rk--2 { background: #f1f5f9; color: #475569; }
.tour-detail__card .rk--3 { background: #ffedd5; color: #9a3412; }
.tour-teams {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.tour-teams__tabs {
  display: flex;
  gap: 2px;
  padding: 8px 8px 0;
  border-bottom: 1px solid var(--border-subtle);
  overflow: hidden;
}
.tour-teams__tabs span {
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-muted);
  padding: 4px 6px 6px;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
}
.tour-teams__tabs span.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
  font-weight: 800;
}
.tour-teams__toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 8px;
  flex-wrap: wrap;
}
.tour-teams__search {
  flex: 1 1 100px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-faint);
  min-width: 0;
}
.tour-teams__btn {
  font-size: 7px;
  font-weight: 700;
  padding: 4px 7px;
  border-radius: 7px;
  border: 1px solid var(--accent-border);
  background: var(--surface);
  color: var(--accent);
  white-space: nowrap;
}
.tour-teams__btn--primary {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.tour-teams__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.tour-teams__table thead th {
  padding: 5px 4px;
  font-size: 6px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-faint);
  text-align: left;
  background: var(--surface-subtle);
  border-top: 1px solid var(--border-subtle);
}
.tour-teams__table tbody td {
  padding: 5px 4px;
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-secondary);
  border-top: 1px solid var(--border-subtle);
  vertical-align: middle;
}
.tour-teams__table tbody strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.tour-teams__seed {
  font-size: 6px;
  font-weight: 800;
  padding: 2px 5px;
  border-radius: 4px;
  background: var(--surface-subtle);
  border: 1px solid var(--border);
  color: var(--ink-muted);
}
.tour-teams__pool {
  font-size: 6px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  background: var(--accent-muted);
  color: var(--accent);
  border: 1px solid var(--accent-border);
}
.tour-teams__paid {
  font-size: 6px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  background: var(--success-muted);
  color: var(--success);
  border: 1px solid var(--success-border);
}
.tour-teams__paid.is-pending {
  background: var(--warning-muted);
  color: var(--warning);
  border-color: var(--warning-border);
}
.dash-feat__visual .tour-ui {
  max-width: 100%;
  margin-top: 0;
}
.dash-feat__visual .tour-ui--teams.dash-feat-visual-inner {
  max-width: 100%;
  height: 100%;
  min-height: 220px;
}
.dash-feat__visual .tour-ui--teams .tour-teams {
  flex: 1;
  min-height: 220px;
  display: flex;
  flex-direction: column;
}
.dash-feat__visual .tour-ui--teams .tour-teams__table-wrap {
  flex: 1;
  min-height: 0;
}
.dash-feat__visual .tour-ui--teams .tour-teams__table tbody td {
  padding: 7px 4px;
  font-size: 7px;
}
.dash-feat__visual .tour-ui--teams .tour-teams__table tbody strong {
  font-size: 7px;
}
.dash-feat__visual .tour-ui--list .tour-ui__kpi strong {
  font-size: 11px;
}
.dash-feat__visual .tour-card__head strong {
  font-size: 8px;
}
.dash-feat__visual .tour-detail__title {
  font-size: 10px;
}
.dash-feat__visual .tour-teams__table tbody td {
  font-size: 6px;
}
.dash-feat__visual .tour-teams__table tbody strong {
  font-size: 6px;
}

/* CRM membres — illustrations feature */
.crm-ui {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 8px;
}
.crm-ui__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
}
.crm-ui__kpi {
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 5px 4px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.crm-ui__kpi.is-highlight {
  border-color: var(--accent-border);
  background: var(--accent-muted);
}
.crm-ui__kpi--wallet strong {
  color: var(--accent);
}
.crm-ui__kpi small {
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.crm-ui__kpi strong {
  font-size: 10px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
}
.crm-ui__kpi-hint {
  font-size: 5px;
  font-weight: 600;
  color: var(--ink-faint);
}
.crm-ui__toolbar {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.crm-ui__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.crm-ui__tabs button {
  font-size: 7px;
  font-weight: 700;
  padding: 4px 7px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
  cursor: default;
}
.crm-ui__tabs button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.crm-ui__tabs em {
  font-style: normal;
  opacity: 0.85;
  margin-left: 2px;
}
.crm-ui__actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.crm-ui__search {
  flex: 1;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border-radius: 7px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-faint);
}
.crm-ui__icon-btn {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 1px solid var(--border-subtle);
  background: var(--surface);
  color: var(--ink-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.crm-ui__icon-btn.is-active {
  border-color: var(--accent-border);
  background: var(--accent-muted);
  color: var(--accent);
}
button.crm-ui__filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 30px;
  min-width: 58px;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink-secondary);
  font-size: 8px;
  font-weight: 800;
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
  box-shadow:
    0 1px 2px rgba(11, 20, 36, 0.08),
    0 1px 3px rgba(11, 20, 36, 0.06);
}
button.crm-ui__filter-btn svg {
  flex-shrink: 0;
}
button.crm-ui__filter-btn.is-active {
  border-color: var(--accent-border);
  background: linear-gradient(180deg, #fff 0%, var(--accent-muted) 100%);
  color: var(--accent);
  box-shadow:
    0 2px 6px rgba(0, 102, 255, 0.16),
    0 0 0 2px rgba(0, 102, 255, 0.14);
}
.crm-ui--filter-focus .crm-ui__active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  padding: 4px 5px;
  border-radius: 7px;
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
}
.crm-ui--filter-focus .crm-ui__filter-result {
  margin: 0;
  padding: 5px 6px;
  border-radius: 6px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-muted);
  text-align: center;
}
.crm-ui--filter-focus .crm-ui__filter-result strong {
  color: var(--accent);
  font-weight: 800;
}
.dash-feat__visual .crm-ui--filter-focus .crm-ui__filter-btn {
  min-height: 32px;
  min-width: 64px;
  font-size: 9px;
  padding: 7px 11px;
}
.dash-feat__visual .crm-ui--filter-focus .crm-ui__filter-btn svg {
  width: 15px;
  height: 15px;
}
.crm-ui__add {
  font-size: 7px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 7px;
  background: var(--accent);
  color: #fff;
  border: 1px solid var(--accent);
  white-space: nowrap;
}
.crm-ui__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.crm-ui__table thead th {
  padding: 4px 3px;
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-faint);
  text-align: left;
  background: var(--surface-subtle);
  border-top: 1px solid var(--border-subtle);
}
.crm-ui__table tbody td {
  padding: 4px 3px;
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-secondary);
  border-top: 1px solid var(--border-subtle);
  vertical-align: middle;
}
.crm-ui__table tbody .is-money {
  color: var(--accent);
  font-weight: 800;
}
.crm-ui__contact {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.crm-ui__contact-txt {
  min-width: 0;
}
.crm-ui__contact-txt strong,
.crm-ui__contact strong {
  display: block;
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.crm-ui__contact-txt small,
.crm-ui__contact small {
  display: block;
  font-size: 5px;
  color: var(--ink-faint);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.crm-ui__avatar {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  flex-shrink: 0;
  border: 1.5px solid #fff;
  box-shadow: 0 0 0 1px var(--border-subtle);
  position: relative;
}
.crm-ui__avatar--lg {
  width: 32px;
  height: 32px;
}
.crm-ui__avatar--sm {
  background: linear-gradient(145deg, #f8c4c0 0%, #e8928c 45%, #c96f68 100%);
}
.crm-ui__avatar--lb {
  background: linear-gradient(145deg, #9ec5f5 0%, #6b9fd4 50%, #4a7ab8 100%);
}
.crm-ui__avatar--cd {
  background: linear-gradient(145deg, #f5d4a8 0%, #e8b56a 50%, #c9924a 100%);
}
.crm-ui__avatar--ml {
  background: linear-gradient(145deg, #b8e0c8 0%, #6fb894 50%, #4a9470 100%);
}
.crm-ui__avatar--ep {
  background: linear-gradient(145deg, #e8c8f5 0%, #c492dc 50%, #9a6bb8 100%);
}
.crm-ui__table-wrap {
  min-height: 0;
}
.crm-ui__list-foot {
  margin: 0;
  padding-top: 4px;
  border-top: 1px solid var(--border-subtle);
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-faint);
  text-align: center;
}
.crm-ui__act {
  display: inline-block;
  font-size: 5px;
  font-weight: 700;
  padding: 2px 4px;
  border-radius: 999px;
  margin: 1px 1px 1px 0;
  white-space: nowrap;
}
.crm-ui__act--up {
  background: var(--success-muted);
  color: var(--success);
  border: 1px solid var(--success-border);
}
.crm-ui__act--past {
  background: var(--surface-subtle);
  color: var(--ink-muted);
  border: 1px solid var(--border-subtle);
}
.crm-ui__wallet {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 6px;
  font-weight: 800;
  padding: 2px 5px;
  border-radius: 999px;
  background: var(--success-muted);
  color: var(--success);
  border: 1px solid var(--success-border);
}
.crm-ui__wallet::before {
  content: "";
  width: 6px;
  height: 4px;
  border-radius: 2px;
  border: 1px solid currentColor;
  opacity: 0.7;
}
.crm-ui__filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.crm-ui__filter {
  font-size: 6px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
}
.crm-ui__filter.is-active {
  background: var(--accent-muted);
  border-color: var(--accent-border);
  color: var(--accent);
}
.crm-ui__filter--clear {
  color: var(--ink-faint);
  border-style: dashed;
}
.crm-ui__filter-result {
  margin: 0;
  font-size: 7px;
  font-weight: 600;
  color: var(--ink-muted);
  text-align: center;
  padding: 4px;
  border-radius: 6px;
  background: var(--surface-subtle);
}
.crm-ui__filter-result strong {
  color: var(--accent);
}
.crm-profile {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 6px;
  min-height: 0;
}
.crm-profile__side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 6px 5px;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  text-align: center;
}
.crm-profile__name {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.15;
}
.crm-profile__sub {
  font-size: 5px;
  font-weight: 600;
  color: var(--ink-muted);
}
.crm-profile__wallet-box {
  width: 100%;
  padding: 4px;
  border-radius: 6px;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
}
.crm-profile__wallet-box small {
  display: block;
  font-size: 5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.crm-profile__wallet-box strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--accent);
}
.crm-profile__actions {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
}
.crm-profile__actions span {
  font-size: 5px;
  font-weight: 700;
  padding: 3px 4px;
  border-radius: 5px;
  border: 1px solid var(--border-subtle);
  background: var(--surface);
  color: var(--ink-secondary);
}
.crm-profile__actions .is-primary {
  background: #0d9488;
  border-color: #0d9488;
  color: #fff;
}
.crm-profile__main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.crm-profile__banner {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  align-items: center;
  padding: 4px 6px;
  border-radius: 6px;
  background: linear-gradient(90deg, #0d9488 0%, #14b8a6 100%);
  color: #fff;
  font-size: 5px;
  font-weight: 700;
}
.crm-profile__banner em {
  margin-left: auto;
  font-style: normal;
  opacity: 0.9;
}
.crm-profile__tabs {
  display: flex;
  gap: 3px;
}
.crm-profile__tabs button {
  flex: 1;
  font-size: 6px;
  font-weight: 700;
  padding: 3px 4px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
}
.crm-profile__tabs button.is-active {
  background: var(--accent-muted);
  border-color: var(--accent-border);
  color: var(--accent);
}
.crm-profile__tabs em {
  font-style: normal;
}
.crm-profile__acts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.crm-profile__acts li {
  display: grid;
  grid-template-columns: 26px 36px minmax(0, 1fr) auto auto;
  gap: 3px;
  align-items: center;
  padding: 4px 5px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.crm-profile__date {
  text-align: center;
  font-size: 5px;
  font-weight: 800;
  color: var(--accent);
  line-height: 1.1;
}
.crm-profile__date small {
  display: block;
  font-size: 8px;
}
.crm-profile__type {
  font-size: 5px;
  font-weight: 800;
  padding: 2px 4px;
  border-radius: 4px;
  text-align: center;
}
.crm-profile__type.is-stage {
  background: #ede9fe;
  color: #6d28d9;
}
.crm-profile__type.is-tour {
  background: #fff4e0;
  color: #b45309;
}
.crm-profile__type.is-res {
  background: var(--accent-muted);
  color: var(--accent);
}
.crm-profile__type.is-mont {
  background: #e0f2fe;
  color: #0369a1;
}
.crm-profile__type.is-cours {
  background: #ecfdf5;
  color: #047857;
}
.crm-profile__acts strong {
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.crm-profile__meta {
  font-size: 5px;
  font-weight: 600;
  color: var(--ink-faint);
  white-space: nowrap;
}
.crm-profile__status {
  font-size: 5px;
  font-weight: 800;
  padding: 2px 4px;
  border-radius: 999px;
}
.crm-profile__status.is-ok {
  background: var(--success-muted);
  color: var(--success);
  border: 1px solid var(--success-border);
}
.crm-profile__status.is-cancel {
  background: #fff5f5;
  color: #c53030;
  border: 1px solid #f5b5b5;
}
.crm-profile {
  align-items: stretch;
}
.crm-ui__toolbar--export {
  flex-direction: row;
  align-items: center;
}
.crm-ui__export-badge {
  font-size: 7px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 7px;
  background: var(--accent);
  color: #fff;
  margin-left: auto;
}
.crm-ui__export-hint {
  margin: 0;
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-muted);
  text-align: center;
  padding: 4px;
  border-radius: 6px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
}
.crm-ui__export-hint strong {
  color: var(--accent);
}
.crm-link {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
}
.crm-link__from {
  padding: 5px 7px;
  border-radius: 7px;
  border: 1px dashed var(--border);
  background: var(--surface-subtle);
}
.crm-link__from small {
  display: block;
  font-size: 5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.crm-link__from strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.crm-link__arrow {
  align-self: center;
  font-size: 12px;
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
}
.crm-link__card {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border-radius: 8px;
  border: 1px solid var(--accent-border);
  background: var(--accent-muted);
}
.crm-link__card strong {
  display: block;
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
}
.crm-link__card small {
  display: block;
  font-size: 6px;
  color: var(--ink-muted);
}
.crm-link__card .crm-ui__wallet {
  margin-top: 3px;
}
.crm-link__hint {
  margin: 0;
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-faint);
  text-align: center;
}
.dash-feat__visual .crm-ui {
  max-width: 100%;
  margin-top: 0;
}
.dash-feat__visual:has(.crm-ui--profile) {
  align-items: flex-start;
  padding-top: 14px;
  padding-bottom: 14px;
}
.dash-feat__visual .crm-ui--profile .crm-profile {
  min-height: 200px;
}
.dash-feat__visual .crm-profile__main {
  flex: 1;
  min-height: 0;
}
.dash-feat__visual .crm-profile__acts {
  flex: 1;
  gap: 2px;
  overflow: hidden;
}
.dash-feat__visual .crm-ui--list .crm-ui__kpi strong {
  font-size: 9px;
}
.dash-feat__visual .crm-profile__acts li {
  grid-template-columns: 22px 32px minmax(0, 1fr) auto;
  padding: 3px 4px;
  flex-shrink: 0;
}
.dash-feat__visual .crm-profile__meta {
  display: none;
}
.dash-feat__visual .crm-profile__acts strong {
  font-size: 6px;
}
.dash-feat__visual .crm-profile__date small {
  font-size: 7px;
}
.feat-hero .visual:has(.crm-ui--hero) {
  aspect-ratio: unset;
  height: auto;
  padding: 14px;
  align-self: center;
}
.feat-hero .visual.mod-hero-mock:has(.crm-ui--hero) {
  align-items: stretch;
  min-height: 0;
  padding: 12px;
}
.mod-hero-mock .crm-ui {
  width: 100%;
  min-height: 0;
}
.feat-hero .visual .crm-ui--hero {
  width: 100%;
  max-width: 100%;
  height: auto;
  flex: 0 0 auto;
  min-height: 0;
  padding: 8px;
  gap: 6px;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.feat-hero .visual .crm-ui--hero .crm-ui__table-wrap {
  flex: 0 0 auto;
}
.feat-hero .visual .crm-ui--hero .crm-ui__kpi {
  padding: 6px 5px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__kpi small {
  font-size: 6px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__kpi strong {
  font-size: 13px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__kpi-hint {
  font-size: 6px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__toolbar {
  gap: 5px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__tabs button {
  font-size: 8px;
  padding: 4px 8px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__search {
  font-size: 7px;
  padding: 5px 8px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__add {
  font-size: 8px;
  padding: 5px 9px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__table thead th {
  font-size: 6px;
  padding: 5px 4px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__table tbody td {
  font-size: 7px;
  padding: 6px 4px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__list-foot {
  font-size: 7px;
  padding-top: 5px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__contact-txt strong {
  font-size: 8px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__contact-txt small {
  font-size: 6px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__avatar {
  width: 22px;
  height: 22px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__act {
  font-size: 6px;
}
.feat-hero .visual .crm-ui--hero .crm-ui__wallet {
  font-size: 7px;
}

.dash-feat__visual .res-ui {
  max-width: 100%;
  margin-top: 0;
}
.dash-feat__visual .res-ui--hero,
.dash-feat__visual .res-ui--compact .res-ui__panel {
  min-height: 160px;
}
.dash-feat__visual .res-ui__kpi strong {
  font-size: clamp(12px, 3vw, 16px);
}
.dash-feat__visual .res-ui__table thead th {
  font-size: 6px;
  padding: 5px 3px;
}
.dash-feat__visual .res-ui__table tbody td {
  font-size: 7px;
  padding: 4px 3px;
}
.dash-feat__visual .res-ui__member strong { font-size: 7px; }
.dash-feat__visual .res-ui__member small { font-size: 6px; }
.dash-feat__visual .res-ui__tabs button { font-size: 8px; padding: 4px 8px; }
.dash-feat__visual .res-ui__dur { font-size: 7px; }
.dash-feat__visual .res-ui__pill { font-size: 7px; }

/* Réservations à venir (illustration dashboard) */
.dash-res-upcoming {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 16px;
  padding: 14px 12px 10px;
  box-shadow: 0 10px 28px rgba(15, 30, 60, 0.08);
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
.dash-res-upcoming__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.2;
}
.dash-res-upcoming__sub {
  margin: 4px 0 0;
  font-size: 10px;
  line-height: 1.35;
  color: #64748b;
}
.dash-res-upcoming__table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #e8edf3;
  margin-top: 2px;
}
.dash-res-upcoming__table thead th {
  padding: 8px 4px 6px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
  text-align: left;
  border-bottom: 1px solid #f1f5f9;
}
.dash-res-upcoming__table thead th.is-pay,
.dash-res-upcoming__table tbody td.is-pay {
  text-align: right;
}
.dash-res-upcoming__table tbody td {
  padding: 7px 4px;
  font-size: 9px;
  font-weight: 600;
  color: #334155;
  border-bottom: 1px solid #f8fafc;
  vertical-align: middle;
  white-space: nowrap;
}
.dash-res-upcoming__table tbody tr:last-child td {
  border-bottom: none;
}
.dash-res-upcoming__status {
  font-size: 8px;
  font-weight: 700;
}
.dash-res-upcoming__status.is-paid {
  color: #0f766e;
}
.dash-res-upcoming__status.is-due {
  color: #c2410c;
}
.dash-res-upcoming__more {
  font-size: 10px;
  font-weight: 600;
  color: #2563eb;
  align-self: flex-start;
  margin-top: 2px;
}
.dash-feat__visual .dash-res-upcoming {
  padding: 10px 8px 8px;
  gap: 8px;
  border-radius: 14px;
}
.dash-feat__visual .dash-res-upcoming__title {
  font-size: 11px;
}
.dash-feat__visual .dash-res-upcoming__sub {
  font-size: 8px;
}
.dash-feat__visual .dash-res-upcoming__table thead th {
  font-size: 6px;
  padding: 6px 2px 4px;
}
.dash-feat__visual .dash-res-upcoming__table tbody td {
  font-size: 7px;
  padding: 5px 2px;
}
.dash-feat__visual .dash-res-upcoming__status {
  font-size: 7px;
}
.dash-feat__visual .dash-res-upcoming__more {
  font-size: 8px;
}

/* Événements de la semaine (illustration dashboard) */
.dash-week-events {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 16px;
  padding: 14px 12px 10px;
  box-shadow: 0 10px 28px rgba(15, 30, 60, 0.08);
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.dash-week-events__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.2;
}
.dash-week-events__tabs {
  display: flex;
  gap: 14px;
  margin-top: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e8edf3;
}
.dash-week-events__tabs span {
  font-size: 11px;
  font-weight: 600;
  color: #94a3b8;
  padding-bottom: 6px;
  margin-bottom: -9px;
  border-bottom: 2px solid transparent;
  line-height: 1;
}
.dash-week-events__tabs span.is-active {
  color: #2563eb;
  border-bottom-color: #2563eb;
}
.dash-week-events__table {
  width: 100%;
  border-collapse: collapse;
}
.dash-week-events__table thead th {
  padding: 6px 4px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
  text-align: left;
  border-bottom: 1px solid #f1f5f9;
}
.dash-week-events__table thead th.is-count,
.dash-week-events__table tbody td.is-count {
  text-align: right;
}
.dash-week-events__table tbody td {
  padding: 8px 4px;
  font-size: 10px;
  font-weight: 500;
  color: #64748b;
  border-bottom: 1px solid #f8fafc;
  vertical-align: middle;
}
.dash-week-events__table tbody td.is-name {
  font-weight: 700;
  color: #0f172a;
}
.dash-week-events__table tbody td.is-count strong {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 800;
  color: #2563eb;
  letter-spacing: -0.02em;
}
.dash-week-events__table tbody tr:last-child td {
  border-bottom: none;
}
.dash-week-events__more {
  font-size: 10px;
  font-weight: 600;
  color: #2563eb;
  align-self: flex-start;
  margin-top: 2px;
}
.dash-feat__visual .dash-week-events {
  padding: 10px 8px 8px;
  gap: 6px;
  border-radius: 14px;
}
.dash-feat__visual .dash-week-events__title {
  font-size: 11px;
}
.dash-feat__visual .dash-week-events__tabs {
  gap: 10px;
  margin-top: 6px;
  padding-bottom: 6px;
}
.dash-feat__visual .dash-week-events__tabs span {
  font-size: 8px;
  padding-bottom: 4px;
  margin-bottom: -7px;
}
.dash-feat__visual .dash-week-events__table thead th {
  font-size: 6px;
  padding: 4px 2px;
}
.dash-feat__visual .dash-week-events__table tbody td {
  font-size: 7px;
  padding: 5px 2px;
}
.dash-feat__visual .dash-week-events__table tbody td.is-count strong {
  font-size: 7px;
}
.dash-feat__visual .dash-week-events__more {
  font-size: 8px;
}

/* Top payeurs (illustration Membres qui comptent) */
.dash-top-payers {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 16px;
  padding: 14px 12px 10px;
  box-shadow: 0 10px 28px rgba(15, 30, 60, 0.08);
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-height: 0;
}
.dash-top-payers__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.2;
}
.dash-top-payers__cols {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid #f1f5f9;
}
.dash-top-payers__cols span {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
}
.dash-top-payers__cols span:last-child {
  text-align: right;
}
.dash-top-payers__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  max-height: 168px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
.dash-top-payers__list::-webkit-scrollbar {
  width: 5px;
}
.dash-top-payers__list::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}
.dash-top-payers__list li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 9px 2px 9px 0;
  border-bottom: 1px solid #f1f5f9;
}
.dash-top-payers__list li:last-child {
  border-bottom: none;
}
.dash-top-payers__av {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: #e8f0fe;
  color: #2563eb;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-transform: uppercase;
}
.dash-top-payers__name,
.dash-top-payers__amt {
  font-size: 11px;
  font-weight: 700;
  color: #2563eb;
  line-height: 1.2;
}
.dash-top-payers__name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dash-top-payers__amt {
  text-align: right;
  font-feature-settings: "tnum";
  flex-shrink: 0;
}
.dash-feat__visual .dash-top-payers {
  padding: 10px 8px 8px;
  gap: 6px;
  border-radius: 14px;
}
.dash-feat__visual .dash-top-payers__title {
  font-size: 11px;
}
.dash-feat__visual .dash-top-payers__cols span {
  font-size: 6px;
}
.dash-feat__visual .dash-top-payers__list {
  max-height: 120px;
}
.dash-feat__visual .dash-top-payers__av {
  width: 24px;
  height: 24px;
  font-size: 10px;
}
.dash-feat__visual .dash-top-payers__name,
.dash-feat__visual .dash-top-payers__amt {
  font-size: 8px;
}
.dash-feat__visual .dash-top-payers__list li {
  gap: 6px;
  padding: 6px 0;
}

/* Membres & invités (donut) */
.dash-members-split {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 16px;
  padding: 14px 12px 12px;
  box-shadow: 0 10px 28px rgba(15, 30, 60, 0.08);
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}
.dash-members-split__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.2;
}
.dash-members-split__body {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 16px;
}
.dash-members-split__chart {
  width: 108px;
  height: 108px;
  flex-shrink: 0;
}
.dash-members-split__donut {
  width: 100%;
  height: 100%;
  display: block;
  transform: rotate(-90deg);
}
.dash-members-split__ring {
  stroke-linecap: butt;
}
.dash-members-split__ring--members {
  stroke: #5d69be;
  stroke-dasharray: 79.67 263.89;
  stroke-dashoffset: 0;
}
.dash-members-split__ring--guests {
  stroke: #e9427b;
  stroke-dasharray: 184.22 263.89;
  stroke-dashoffset: -79.67;
}
.dash-members-split__legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.dash-members-split__legend li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
}
.dash-members-split__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  flex-shrink: 0;
}
.dash-members-split__dot--members {
  background: #5d69be;
}
.dash-members-split__dot--guests {
  background: #e9427b;
}
.dash-members-split__label {
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
}
.dash-members-split__count {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.dash-feat__visual .dash-members-split {
  padding: 10px 8px 10px;
  gap: 8px;
  border-radius: 14px;
}
.dash-feat__visual .dash-members-split__title {
  font-size: 11px;
}
.dash-feat__visual .dash-members-split__body {
  gap: 10px;
}
.dash-feat__visual .dash-members-split__chart {
  width: 78px;
  height: 78px;
}
.dash-feat__visual .dash-members-split__legend {
  gap: 10px;
}
.dash-feat__visual .dash-members-split__label {
  font-size: 9px;
}
.dash-feat__visual .dash-members-split__count {
  font-size: 11px;
}
.dash-feat__visual .dash-members-split__dot {
  width: 8px;
  height: 8px;
}

.dash-feat__visual .pay-rail.dash-feat-visual-inner--dark {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-md);
  padding: 14px;
}
.dash-feat-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 14px;
}
.dash-feat-stats__item {
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 12px;
}
.dash-feat-stats__item small {
  display: block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
  margin-bottom: 4px;
}
.dash-feat-stats__item strong {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.dash-feat h3 {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--ink);
}
.dash-feat__lede {
  margin: 0 0 20px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-secondary);
  max-width: 72ch;
}
.dash-feat__details {
  margin-top: 20px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-subtle);
  overflow: visible;
}
.dash-feat__details summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 18px;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent-hover);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  user-select: none;
}
.dash-feat__details summary::-webkit-details-marker {
  display: none;
}
.dash-feat__details summary::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 200ms ease;
  flex-shrink: 0;
  margin-top: -3px;
}
.dash-feat__details[open] summary::after {
  transform: rotate(-135deg);
  margin-top: 3px;
}
.dash-feat__details-body {
  padding: 0 18px 18px;
  border-top: 1px solid var(--border-subtle);
}
.dash-feat__strategy {
  margin: 16px 0 20px;
  padding: 18px 22px;
  background: var(--accent-muted);
  border-left: 3px solid var(--accent);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink);
}
.dash-feat__benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.dash-feat__benefits li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 14px;
  align-items: start;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-secondary);
}
.dash-feat__benefits .ck {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--success-muted);
  border: 1px solid var(--success-border);
  color: var(--success-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.dash-payoff {
  grid-column: 1 / -1;
  margin-top: 28px;
  padding: 44px 40px 40px;
  background: var(--dark-bg);
  color: var(--dark-ink);
  border: none;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card-xs);
  position: relative;
  overflow: hidden;
}
.dash-payoff::before {
  content: "";
  position: absolute;
  pointer-events: none;
  width: 720px;
  height: 720px;
  border-radius: 999px;
  right: -160px;
  top: -200px;
  background: radial-gradient(circle, rgba(0, 102, 255, 0.22), transparent 70%);
}
.dash-payoff > * {
  position: relative;
  z-index: 2;
}
.dash-payoff__head {
  max-width: 640px;
  margin: 0 auto 32px;
  text-align: center;
}
.dash-payoff__eyebrow {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-soft-ink);
}
.dash-payoff__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.12;
  color: #fff;
  text-wrap: balance;
}
.dash-payoff__compare {
  display: grid;
  grid-template-columns: 1fr 44px 1fr;
  gap: 0;
  align-items: stretch;
  border: 1px solid rgba(103, 163, 255, 0.18);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
}
.dash-payoff__col {
  padding: 24px 26px 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.dash-payoff__col--before {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent);
}
.dash-payoff__col--after {
  border-left: 3px solid var(--accent);
  background: linear-gradient(180deg, rgba(0, 102, 255, 0.08), transparent);
}
.dash-payoff__tag {
  margin: 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dark-ink-muted);
}
.dash-payoff__col--after .dash-payoff__tag {
  color: var(--accent-soft-ink);
}
.dash-payoff__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.dash-payoff__list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--dark-ink-muted);
}
.dash-payoff__col--after .dash-payoff__list li {
  color: var(--dark-ink);
  font-weight: 500;
}
.dash-payoff__ico {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dash-payoff__ico--no {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(163, 178, 204, 0.35);
  color: rgba(163, 178, 204, 0.9);
}
.dash-payoff__ico--yes {
  background: rgba(0, 102, 255, 0.2);
  border: 1px solid rgba(103, 163, 255, 0.45);
  color: var(--accent-soft-ink);
}
.dash-payoff__mid {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(163, 178, 204, 0.5);
  font-size: 22px;
  font-weight: 300;
  background: rgba(0, 0, 0, 0.15);
}
.dash-payoff__foot {
  margin: 24px auto 0;
  max-width: 620px;
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
  color: var(--dark-ink-muted);
  text-wrap: pretty;
}
.dash-payoff__cta {
  margin-top: 28px;
  text-align: center;
}

@media (max-width: 1100px) {
  .dash-bento__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dash-bento__main { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .dash-spotlight { padding: 64px 0 72px; }
  .dash-features { gap: 28px; }
  .dash-feat__layout {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .dash-feat__main {
    padding: 24px 22px 28px;
  }
  .dash-feat__visual {
    border-left: 0;
    border-right: 0;
    border-top: 1px solid var(--border-subtle);
    min-height: 220px;
    padding: 18px;
    order: -1;
  }
  /* Cartes paires (2e, 4e…) : annuler la grille 2 col desktop */
  .dash-features > .dash-feat:nth-child(even) .dash-feat__layout {
    grid-template-columns: 1fr;
  }
  .dash-features > .dash-feat:nth-child(even) .dash-feat__visual {
    order: -1;
    border-left: 0;
    border-right: 0;
    border-top: 1px solid var(--border-subtle);
  }
  .dash-features > .dash-feat:nth-child(even) .dash-feat__main {
    order: 0;
  }
  .dash-payoff { padding: 36px 24px 32px; margin-top: 12px; }
  .dash-payoff__compare {
    grid-template-columns: 1fr;
  }
  .dash-payoff__col--after {
    border-left: none;
    border-top: 3px solid var(--accent);
  }
  .dash-payoff__mid {
    min-height: 36px;
    font-size: 18px;
  }
  .dash-bento__lists { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .dash-bento__kpis { grid-template-columns: 1fr; }
  .dash-feat h3 { font-size: 20px; }
  .dash-feat__lede,
  .dash-feat__benefits li { font-size: 14px; }

  .dash-feat__visual {
    padding: 14px;
    align-items: stretch;
    justify-content: stretch;
    min-width: 0;
  }
  .dash-feat__visual .dash-feat-visual-inner {
    max-width: 100%;
    width: 100%;
    min-width: 0;
  }
  .dash-feat__visual .acct-ui--dash-synth,
  .dash-feat__visual .acct-ui--sales,
  .dash-feat__visual .acct-ui--journal-live,
  .dash-feat__visual .acct-ui--export-live,
  .feat-hero .visual .acct-ui--hero {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: visible;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__toolbar,
  .dash-feat__visual .acct-ui--sales .acct-ui__toolbar,
  .dash-feat__visual .acct-ui--journal-live .acct-ui__toolbar,
  .dash-feat__visual .acct-ui--export-live .acct-ui__toolbar,
  .acct-ui--hero .acct-ui__toolbar {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 6px;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__toolbar .acct-ui__nav,
  .dash-feat__visual .acct-ui--sales .acct-ui__toolbar .acct-ui__nav,
  .dash-feat__visual .acct-ui--journal-live .acct-ui__toolbar .acct-ui__nav,
  .dash-feat__visual .acct-ui--export-live .acct-ui__toolbar .acct-ui__nav,
  .acct-ui--hero .acct-ui__toolbar .acct-ui__nav {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    overflow: visible;
    row-gap: 4px;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__nav span,
  .dash-feat__visual .acct-ui--sales .acct-ui__nav span,
  .dash-feat__visual .acct-ui--journal-live .acct-ui__nav span,
  .dash-feat__visual .acct-ui--export-live .acct-ui__nav span,
  .acct-ui--hero .acct-ui__nav span {
    white-space: normal;
    text-align: center;
    line-height: 1.15;
    max-width: 100%;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__date,
  .dash-feat__visual .acct-ui--sales .acct-ui__date,
  .dash-feat__visual .acct-ui--journal-live .acct-ui__date,
  .dash-feat__visual .acct-ui--export-live .acct-ui__date,
  .acct-ui--hero .acct-ui__date {
    flex: 0 0 auto;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__panel,
  .dash-feat__visual .acct-ui--sales .acct-ui__panel,
  .dash-feat__visual .acct-ui--journal-live .acct-ui__panel,
  .dash-feat__visual .acct-ui--export-live .acct-ui__panel,
  .acct-ui--hero .acct-ui__panel {
    margin-left: 4px;
    margin-right: 4px;
    min-width: 0;
    max-width: calc(100% - 8px);
    box-sizing: border-box;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__ca,
  .acct-ui--hero .acct-ui__ca {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3px;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__ca > div,
  .acct-ui--hero .acct-ui__ca > div {
    min-width: 0;
    padding: 4px 3px;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__ca strong,
  .acct-ui--hero .acct-ui__ca strong {
    font-size: 5.5px;
    line-height: 1.2;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__table,
  .acct-ui--hero .acct-ui__table {
    width: 100%;
    table-layout: fixed;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__table tbody td,
  .acct-ui--hero .acct-ui__table tbody td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.2;
  }
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__split,
  .acct-ui--hero .acct-ui__split {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .dash-feat__layout {
    min-width: 0;
  }

  /* CRM membres — hero + encarts dash-feat */
  .feat-hero .visual:has(.crm-ui--hero),
  .feat-hero .visual.mod-hero-mock:has(.crm-ui--hero) {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    padding: 12px;
  }
  .feat-hero .crm-ui--hero,
  .dash-feat__visual .crm-ui--list {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .feat-hero .crm-ui--hero .crm-ui__kpis,
  .dash-feat__visual .crm-ui--list .crm-ui__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .feat-hero .crm-ui--hero .crm-ui__actions,
  .dash-feat__visual .crm-ui--list .crm-ui__actions {
    flex-wrap: wrap;
  }
  .feat-hero .crm-ui--hero .crm-ui__search,
  .dash-feat__visual .crm-ui--list .crm-ui__search {
    flex: 1 1 100%;
    min-width: 0;
  }
  .feat-hero .crm-ui--hero .crm-ui__table-wrap,
  .dash-feat__visual .crm-ui--list .crm-ui__table-wrap {
    min-width: 0;
    overflow: hidden;
  }
  .feat-hero .crm-ui--hero .crm-ui__table,
  .dash-feat__visual .crm-ui--list .crm-ui__table {
    table-layout: fixed;
    width: 100%;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(1),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(1),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(1),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(1) {
    width: 40%;
    max-width: 40%;
    overflow: hidden;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(2),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(2),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(2),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(2) {
    width: 28%;
    padding-left: 6px;
    overflow: hidden;
    vertical-align: top;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(3),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(3),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(3),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(3) {
    width: 16%;
    white-space: nowrap;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(4),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(4),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(4),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(4) {
    width: 16%;
    white-space: nowrap;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(5),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(5),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(5),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(5) {
    display: none;
  }
  .feat-hero .crm-ui--hero .crm-ui__contact,
  .dash-feat__visual .crm-ui--list .crm-ui__contact {
    max-width: 100%;
    overflow: hidden;
  }
  .feat-hero .crm-ui--hero .crm-ui__contact-txt,
  .dash-feat__visual .crm-ui--list .crm-ui__contact-txt {
    flex: 1;
    min-width: 0;
    overflow: hidden;
  }
  .feat-hero .crm-ui--hero .crm-ui__contact-txt small,
  .dash-feat__visual .crm-ui--list .crm-ui__contact-txt small {
    display: none;
  }
  .feat-hero .crm-ui--hero .crm-ui__avatar,
  .dash-feat__visual .crm-ui--list .crm-ui__avatar {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
  }
  .feat-hero .crm-ui--hero .crm-ui__act,
  .dash-feat__visual .crm-ui--list .crm-ui__act {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 1px 0;
  }

  /* Gestion des stocks — hero + encarts dash-feat */
  .feat-hero .visual:has(.stock-ui--hero),
  .feat-hero .visual.mod-hero-mock:has(.stock-ui--hero) {
    padding: 12px;
    overflow: hidden;
  }
  .feat-hero .stock-ui--hero,
  .dash-feat__visual .stock-ui--hero,
  .dash-feat__visual .stock-ui--products {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    box-sizing: border-box;
  }
  .feat-hero .stock-ui--hero .stock-ui__nav,
  .dash-feat__visual .stock-ui .stock-ui__nav {
    flex-wrap: wrap;
    gap: 6px 10px;
    row-gap: 4px;
  }
  .feat-hero .stock-ui--hero .stock-ui__nav span,
  .dash-feat__visual .stock-ui .stock-ui__nav span {
    font-size: 7px;
    white-space: nowrap;
  }
  .feat-hero .stock-ui--hero .stock-ui__kpis,
  .dash-feat__visual .stock-ui .stock-ui__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .feat-hero .stock-ui--hero .stock-ui__kpi,
  .dash-feat__visual .stock-ui .stock-ui__kpi {
    min-width: 0;
    padding: 6px 5px;
  }
  .feat-hero .stock-ui--hero .stock-ui__kpi strong,
  .dash-feat__visual .stock-ui .stock-ui__kpi strong {
    font-size: 11px;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .feat-hero .stock-ui--hero .stock-ui__kpi-hint,
  .dash-feat__visual .stock-ui .stock-ui__kpi-hint {
    display: none;
  }
  /* Barre ProShop / recherche / + Ajouter — masquée en mobile (chevauchements) */
  .feat-hero .stock-ui--hero .stock-ui__toolbar,
  .dash-feat__visual .stock-ui .stock-ui__toolbar {
    display: none;
  }
  .feat-hero .stock-ui--hero .stock-ui__table-wrap,
  .dash-feat__visual .stock-ui .stock-ui__table-wrap {
    min-width: 0;
    overflow: hidden;
    width: 100%;
  }
  .feat-hero .stock-ui--hero .stock-ui__table,
  .dash-feat__visual .stock-ui .stock-ui__table {
    width: 100%;
    table-layout: fixed;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(1),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(1),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(1),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(1) {
    width: 38%;
    overflow: hidden;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(2),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(2),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(2),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(2) {
    width: 22%;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(3),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(3),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(3),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(3) {
    width: 20%;
    white-space: nowrap;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(4),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(4),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(4),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(4) {
    width: 12%;
    white-space: nowrap;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(5),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(5),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(5),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(5) {
    width: 8%;
    white-space: nowrap;
  }
  .feat-hero .stock-ui--hero .stock-ui__table tbody strong,
  .dash-feat__visual .stock-ui .stock-ui__table tbody strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 7px;
  }

  /* Réservations — hero + encarts dash-feat */
  .feat-hero .wrap {
    overflow-x: clip;
    min-width: 0;
  }
  .feat-hero .visual:has(.res-ui--hero),
  .feat-hero .visual.mod-hero-mock:has(.res-ui--hero) {
    padding: 12px;
    overflow: hidden;
  }
  .feat-hero .res-ui--hero,
  .dash-feat__visual .res-ui {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .feat-hero .res-ui--hero .res-ui__panel,
  .dash-feat__visual .res-ui .res-ui__panel {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .feat-hero .res-ui--hero .res-ui__table-wrap,
  .dash-feat__visual .res-ui .res-ui__table-wrap {
    overflow: hidden;
    min-width: 0;
    width: 100%;
  }
  .feat-hero .res-ui--hero .res-ui__kpis,
  .dash-feat__visual .res-ui .res-ui__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }
  .feat-hero .res-ui--hero .res-ui__kpi,
  .dash-feat__visual .res-ui .res-ui__kpi {
    padding: 8px 6px;
    min-width: 0;
    gap: 6px;
  }
  .feat-hero .res-ui--hero .res-ui__kpi-ic,
  .dash-feat__visual .res-ui .res-ui__kpi-ic {
    width: 22px;
    height: 22px;
  }
  .feat-hero .res-ui--hero .res-ui__kpi-ic svg,
  .dash-feat__visual .res-ui .res-ui__kpi-ic svg {
    width: 12px;
    height: 12px;
  }
  .feat-hero .res-ui--hero .res-ui__kpi strong,
  .dash-feat__visual .res-ui .res-ui__kpi strong {
    font-size: 13px;
  }
  .feat-hero .res-ui--hero .res-ui__kpi small,
  .dash-feat__visual .res-ui .res-ui__kpi small {
    font-size: 7px;
    line-height: 1.1;
  }
  .feat-hero .res-ui--hero .res-ui__toolbar,
  .dash-feat__visual .res-ui--compact .res-ui__toolbar {
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    padding: 6px 8px;
  }
  /* Masquer les onglets (Toutes, À venir…) — garder loupe, menu, export, + Ajouter */
  .feat-hero .res-ui--hero .res-ui__tabs,
  .dash-feat__visual .res-ui--compact .res-ui__tabs {
    display: none;
  }
  .feat-hero .res-ui--hero .res-ui__actions,
  .dash-feat__visual .res-ui--compact .res-ui__actions {
    flex: 1 1 auto;
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
  }
  .feat-hero .res-ui--hero .res-ui__icon-btn,
  .dash-feat__visual .res-ui .res-ui__icon-btn {
    width: 22px;
    height: 22px;
  }
  .feat-hero .res-ui--hero .res-ui__add,
  .dash-feat__visual .res-ui .res-ui__add {
    font-size: 7px;
    padding: 4px 8px;
    white-space: nowrap;
  }
  .feat-hero .res-ui--hero .res-ui__table,
  .dash-feat__visual .res-ui .res-ui__table {
    width: 100%;
    table-layout: fixed;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(n+6),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(n+6),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(n+6),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(n+6) {
    display: none;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(5),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(5),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(5),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(5) {
    display: none;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(1),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(1),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(1),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(1) {
    width: 26%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(2),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(2),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(2),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(2) {
    width: 14%;
    white-space: nowrap;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(3),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(3),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(3),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(3) {
    width: 22%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(4),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(4),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(4),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(4) {
    width: 38%;
    overflow: hidden;
  }
  .feat-hero .res-ui--hero .res-ui__member,
  .dash-feat__visual .res-ui .res-ui__member {
    min-width: 0;
    overflow: hidden;
  }
  .feat-hero .res-ui--hero .res-ui__member strong,
  .dash-feat__visual .res-ui .res-ui__member strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 7px;
  }
  .feat-hero .res-ui--hero .res-ui__member small,
  .dash-feat__visual .res-ui .res-ui__member small {
    display: none;
  }
  .feat-hero .res-ui--hero .res-ui__table tbody td,
  .dash-feat__visual .res-ui .res-ui__table tbody td {
    font-size: 7px;
    padding: 6px 3px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .feat-hero .res-ui--hero .res-ui__pill,
  .dash-feat__visual .res-ui .res-ui__pill {
    font-size: 6px;
    padding: 2px 5px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
@media (max-width: 380px) {
  .dash-feat__visual .acct-ui--dash-synth .acct-ui__ca,
  .acct-ui--hero .acct-ui__ca {
    grid-template-columns: 1fr;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(3),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(3),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(3),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(3) {
    display: none;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(1),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(1),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(1),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(1) {
    width: 46%;
    max-width: 46%;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(2),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(2),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(2),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(2) {
    width: 30%;
  }
  .feat-hero .crm-ui--hero .crm-ui__table thead th:nth-child(4),
  .feat-hero .crm-ui--hero .crm-ui__table tbody td:nth-child(4),
  .dash-feat__visual .crm-ui--list .crm-ui__table thead th:nth-child(4),
  .dash-feat__visual .crm-ui--list .crm-ui__table tbody td:nth-child(4) {
    width: 24%;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(2),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(2),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(2),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(2) {
    display: none;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(1),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(1),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(1),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(1) {
    width: 44%;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(3),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(3),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(3),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(3) {
    width: 28%;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(4),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(4),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(4),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(4) {
    width: 16%;
  }
  .feat-hero .stock-ui--hero .stock-ui__table thead th:nth-child(5),
  .feat-hero .stock-ui--hero .stock-ui__table tbody td:nth-child(5),
  .dash-feat__visual .stock-ui .stock-ui__table thead th:nth-child(5),
  .dash-feat__visual .stock-ui .stock-ui__table tbody td:nth-child(5) {
    width: 12%;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(3),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(3),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(3),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(3) {
    display: none;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(1),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(1),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(1),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(1) {
    width: 30%;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(2),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(2),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(2),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(2) {
    width: 18%;
  }
  .feat-hero .res-ui--hero .res-ui__table thead th:nth-child(4),
  .feat-hero .res-ui--hero .res-ui__table tbody td:nth-child(4),
  .dash-feat__visual .res-ui .res-ui__table thead th:nth-child(4),
  .dash-feat__visual .res-ui .res-ui__table tbody td:nth-child(4) {
    width: 52%;
  }
}

.mod-hero-mock {
  padding: 20px;
  min-height: 200px;
  display: flex;
  align-items: stretch;
}
.mod-hero-mock .dash-panel,
.mod-hero-mock .res-ui,
.mod-hero-mock .stock-ui--hero {
  width: 100%;
  min-height: 0;
  flex: 1;
}
.feat-hero .visual.dash-hero-mock {
  aspect-ratio: auto;
  overflow: hidden;
  align-self: center;
  width: 100%;
  max-width: 620px;
  container-type: inline-size;
  container-name: dash-hero;
  background: #f1f5f9;
  border-color: #e2e8f0;
}
.feat-hero--dashboard .visual.dash-hero-mock {
  justify-self: stretch;
  overflow: visible;
}
@media (max-width: 1100px) {
  .feat-hero--dashboard .grid {
    grid-template-columns: 1fr;
    gap: 28px;
    align-items: stretch;
  }
  .feat-hero--dashboard .visual.dash-hero-mock {
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    overflow: visible;
    padding: 14px;
    justify-self: stretch;
    max-width: 100%;
    align-self: stretch;
    width: 100%;
  }
  .dash-hero-mock .dash-hero-board__top,
  .dash-hero-mock .dash-hero-board__bottom {
    grid-template-columns: 1fr;
  }
  .dash-hero-board__bottom .dash-hero-board__cell--rank,
  .dash-hero-board__bottom .dash-hero-board__stack {
    grid-column: 1;
  }
}
.dash-hero-mock {
  padding: 10px;
  min-height: 0;
  display: flex;
  align-items: stretch;
  box-sizing: border-box;
}
/* Dashboard hero — maquette écran d'accueil admin */
.dash-hero-board {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}
.dash-hero-mock .dash-hero-board__kpis.dash-day-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}
.dash-hero-mock .dash-day-kpi {
  min-height: 52px;
  padding: 8px 5px 6px;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(15, 30, 60, 0.14);
}
.dash-hero-mock .dash-day-kpi__value {
  font-size: 11px;
}
.dash-hero-mock .dash-day-kpi__label {
  font-size: 4.5px;
  letter-spacing: 0.04em;
  line-height: 1.1;
}
.dash-hero-mock .dash-day-kpi__icon {
  width: 20px;
  height: 20px;
  top: 5px;
  right: 5px;
}
.dash-hero-mock .dash-day-kpi__icon svg {
  width: 10px;
  height: 10px;
}
.dash-hero-mock .dash-hero-board__kpis .dash-day-kpi:nth-child(odd) {
  background: linear-gradient(145deg, #6ba3ff 0%, var(--accent) 55%, var(--accent-hover) 100%);
}
.dash-hero-mock .dash-hero-board__kpis .dash-day-kpi:nth-child(even) {
  background: linear-gradient(145deg, #1a2d4a 0%, var(--dark-bg-alt) 55%, var(--dark-bg) 100%);
}
.dash-hero-mock .dash-day-kpi--users .dash-day-kpi__label {
  font-size: 4px;
  letter-spacing: 0.02em;
}
.dash-hero-board__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.dash-hero-board__top,
.dash-hero-board__bottom {
  display: grid;
  grid-template-columns: minmax(0, 0.5fr) minmax(0, 1.05fr) minmax(0, 0.72fr);
  gap: 6px;
  min-width: 0;
  align-items: stretch;
}
.dash-hero-board__mid {
  min-width: 0;
}
.dash-hero-board__bottom .dash-hero-board__cell--rank {
  grid-column: 1 / 3;
}
.dash-hero-board__bottom .dash-hero-board__stack {
  grid-column: 3;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
}
.dash-hero-board__stack .dash-hero-board__cell--new {
  flex: 0 0 auto;
}
.dash-hero-board__stack .dash-hero-board__cell--members {
  flex: 1 1 auto;
  display: flex;
  min-height: 0;
}
.dash-hero-mock .dash-hero-board__stack .dash-members-split {
  flex: 1;
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.dash-hero-mock .dash-hero-board__stack .dash-members-split__body {
  flex: 1;
  align-items: center;
}
.dash-hero-board__cell--bar,
.dash-hero-board__cell--res,
.dash-hero-board__cell--gauges,
.dash-hero-board__cell--rank {
  min-width: 0;
  display: flex;
  min-height: 0;
}
.dash-hero-board__cell {
  min-width: 0;
}
.dash-hero-mock .dash-hero-board__top .dash-res-upcoming,
.dash-hero-mock .dash-hero-board__top .dash-hero-fill-bar,
.dash-hero-mock .dash-hero-board__top .dash-hero-fill-gauges {
  width: 100%;
  height: 100%;
  flex: 1;
  min-height: 0;
}
.dash-hero-mock .dash-hero-board__cell--rank .dash-top-payers {
  width: 100%;
  height: 100%;
  flex: 1;
  min-height: 0;
}
/* Taux de remplissage — barres & jauges (hero) */
.dash-hero-fill-bar,
.dash-hero-fill-gauges,
.dash-hero-fill-table {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(15, 30, 60, 0.06);
  min-width: 0;
}
.dash-hero-fill-bar {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 7px 6px 5px;
}
.dash-hero-fill-bar__title {
  margin: 0;
  font-size: 6.5px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.dash-hero-fill-bar__chart {
  flex: 1;
  min-height: 52px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 3px;
  align-items: end;
  padding: 2px 0 0;
  border-bottom: 1px solid #e2e8f0;
}
.dash-hero-fill-bar__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  min-height: 0;
  height: 100%;
}
.dash-hero-fill-bar__val {
  font-size: 4.5px;
  font-weight: 700;
  color: #334155;
  line-height: 1;
}
.dash-hero-fill-bar__bar {
  width: 100%;
  max-width: 14px;
  height: var(--h, 50%);
  min-height: 4px;
  border-radius: 3px 3px 1px 1px;
  background: linear-gradient(180deg, #6ba3ff 0%, var(--accent) 100%);
}
.dash-hero-fill-bar__day {
  font-size: 4px;
  font-weight: 600;
  color: #64748b;
  text-transform: lowercase;
}
.dash-hero-fill-bar__axis {
  font-size: 4px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #94a3b8;
  text-align: center;
}
.dash-hero-fill-gauges {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  padding: 7px 5px 6px;
}
.dash-hero-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 0;
}
.dash-hero-gauge__label {
  margin: 0;
  font-size: 4.5px;
  font-weight: 600;
  color: #64748b;
  text-align: center;
  line-height: 1.2;
}
.dash-hero-gauge__svg {
  width: 100%;
  max-width: 72px;
  height: auto;
  display: block;
}
.dash-hero-mock .dash-hero-gauge__needle {
  transform: translate(60px, 58px) rotate(calc(-90deg + var(--pct) * 1.8deg));
  transform-origin: 0 0;
}
.dash-hero-gauge__value {
  font-size: 7px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.dash-hero-fill-table {
  padding: 7px 6px 6px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.dash-hero-fill-table__title {
  margin: 0;
  font-size: 7px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.dash-hero-fill-table__grid {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.dash-hero-fill-table__grid thead th {
  font-size: 4px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
  text-align: left;
  padding: 3px 2px;
  border-bottom: 1px solid #e2e8f0;
}
.dash-hero-fill-table__grid tbody td {
  font-size: 4.5px;
  padding: 3px 2px;
  color: #334155;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}
.dash-hero-fill-table__grid .is-accent {
  color: var(--accent);
  font-weight: 600;
}
.dash-hero-fill-table__grid .is-min {
  text-align: right;
  color: #64748b;
  width: 14%;
}
.dash-hero-fill-table__grid .is-fill {
  background: color-mix(in srgb, var(--accent) calc(var(--pct, 50) * 0.35%), #fff);
  padding: 3px 4px;
}
.dash-hero-fill-table__pct {
  display: block;
  font-size: 4.5px;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 2px;
}
.dash-hero-fill-table__bar {
  display: block;
  height: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  overflow: hidden;
}
.dash-hero-fill-table__bar i {
  display: block;
  height: 100%;
  width: calc(var(--pct, 0) * 1%);
  border-radius: inherit;
  background: linear-gradient(90deg, #6ba3ff, var(--accent));
}
/* Nouveaux utilisateurs (hero) */
.dash-hero-new-users {
  background: #fff;
  border: 1px solid #e8edf3;
  border-radius: 10px;
  padding: 8px 6px;
  box-shadow: 0 4px 12px rgba(15, 30, 60, 0.06);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.dash-hero-new-users__title {
  margin: 0;
  font-size: 8px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
}
.dash-hero-new-users__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 6px;
  justify-content: space-between;
}
.dash-hero-new-users__list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  min-width: 0;
  flex: 1;
}
.dash-hero-new-users__av {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #e8f0fe;
  color: #2563eb;
  font-size: 9px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dash-hero-new-users__name {
  font-size: 5px;
  font-weight: 600;
  color: #2563eb;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}
/* Panneaux réutilisés — échelle hero */
.dash-hero-mock .dash-res-upcoming__sub {
  display: none;
}
.dash-hero-mock .dash-res-upcoming__head {
  margin-bottom: 0;
}
.dash-hero-mock .dash-res-upcoming,
.dash-hero-mock .dash-week-events,
.dash-hero-mock .dash-members-split {
  padding: 8px 6px 6px;
  gap: 6px;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(15, 30, 60, 0.06);
}
.dash-hero-mock .dash-top-payers {
  padding: 8px 6px 6px;
  gap: 6px;
  border-radius: 10px;
  background: linear-gradient(145deg, #1a2d4a 0%, var(--dark-bg-alt) 55%, var(--dark-bg) 100%);
  border: 1px solid var(--dark-border);
  box-shadow: 0 4px 14px rgba(11, 20, 36, 0.35);
}
.dash-hero-mock .dash-res-upcoming__title,
.dash-hero-mock .dash-week-events__title,
.dash-hero-mock .dash-members-split__title {
  font-size: 8px;
}
.dash-hero-mock .dash-top-payers__title {
  font-size: 8px;
  color: var(--dark-ink);
}
.dash-hero-mock .dash-res-upcoming__table tbody tr:nth-child(n + 5) {
  display: none;
}
.dash-hero-mock .dash-res-upcoming__table thead th,
.dash-hero-mock .dash-week-events__table thead th {
  font-size: 4.5px;
  padding: 4px 2px 3px;
}
.dash-hero-mock .dash-res-upcoming__table tbody td,
.dash-hero-mock .dash-week-events__table tbody td {
  font-size: 5px;
  padding: 3px 2px;
}
.dash-hero-mock .dash-res-upcoming__status {
  font-size: 5px;
}
.dash-hero-mock .dash-res-upcoming__more,
.dash-hero-mock .dash-week-events__more {
  font-size: 5.5px;
}
.dash-hero-mock .dash-week-events__tabs span {
  font-size: 5px;
  padding-bottom: 2px;
}
.dash-hero-mock .dash-week-events__tabs .is-active {
  border-bottom-width: 1px;
}
.dash-hero-mock .dash-top-payers__cols {
  border-bottom-color: var(--dark-border);
}
.dash-hero-mock .dash-top-payers__cols span {
  font-size: 4.5px;
  color: var(--dark-ink-muted);
}
.dash-hero-mock .dash-top-payers__list {
  flex: 1;
  min-height: 0;
  max-height: none;
  scrollbar-color: var(--dark-border) transparent;
}
.dash-hero-mock .dash-top-payers__list::-webkit-scrollbar-thumb {
  background: var(--dark-border);
}
.dash-hero-mock .dash-top-payers__av {
  width: 18px;
  height: 18px;
  font-size: 8px;
  background: rgba(0, 102, 255, 0.2);
  color: var(--accent-soft-ink);
}
.dash-hero-mock .dash-top-payers__name,
.dash-hero-mock .dash-top-payers__amt {
  font-size: 5.5px;
  color: var(--dark-ink);
}
.dash-hero-mock .dash-top-payers__list li {
  gap: 4px;
  padding: 4px 0;
  border-bottom-color: var(--dark-border);
}
.dash-hero-mock .dash-members-split__body {
  gap: 6px;
}
.dash-hero-mock .dash-members-split__chart {
  width: 52px;
  height: 52px;
}
.dash-hero-mock .dash-members-split__legend {
  gap: 6px;
}
.dash-hero-mock .dash-members-split__label {
  font-size: 6px;
}
.dash-hero-mock .dash-members-split__count {
  font-size: 7px;
}
.dash-hero-mock .dash-members-split__dot {
  width: 6px;
  height: 6px;
}
.dash-hero-mock .dash-members-split__ring--members {
  stroke: var(--accent);
  stroke-dasharray: 79.67 263.89;
  stroke-dashoffset: 0;
}
.dash-hero-mock .dash-members-split__ring--guests {
  stroke: var(--dark-bg);
  stroke-dasharray: 184.22 263.89;
  stroke-dashoffset: -79.67;
}
.dash-hero-mock .dash-members-split__dot--members {
  background: var(--accent);
}
.dash-hero-mock .dash-members-split__dot--guests {
  background: var(--dark-bg);
}
@container dash-hero (max-width: 380px) {
  .dash-hero-board__top,
  .dash-hero-board__bottom {
    grid-template-columns: 1fr;
  }
  .dash-hero-board__bottom .dash-hero-board__cell--rank,
  .dash-hero-board__bottom .dash-hero-board__stack {
    grid-column: 1;
  }
}
.dash-bento--compact .dash-kpi {
  padding: 12px 10px;
}
.dash-bento--compact .dash-kpi strong {
  font-size: 18px;
}
.dash-bento--compact .dash-bento__main {
  grid-template-columns: 1.2fr 0.8fr;
  align-items: stretch;
}
.dash-bento--compact .dash-bento__main > .dash-panel,
.dash-bento--compact .dash-bento__main > .dash-side {
  min-height: 0;
  height: 100%;
}
.dash-bento--compact .dash-bento__main .dash-panel {
  min-height: 0;
  padding: 14px;
}
.dash-bento--compact .dash-side {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.dash-bento--compact .dash-side > .dash-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dash-bento--compact .dash-side .dash-mini-cal--month {
  flex: 1;
  min-height: 0;
  grid-template-rows: auto repeat(5, minmax(0, 1fr));
  align-content: stretch;
}
.dash-bento--compact .dash-mini-cal {
  gap: 2px;
  font-size: 8px;
  line-height: 1.2;
}
.dash-bento--compact .dash-mini-cal__dow {
  font-size: 7px;
  align-self: center;
}
.dash-bento--compact .dash-mini-cal span:not(.dash-mini-cal__dow) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}
.dash-bento--compact .dash-mini-cal span.is-today {
  border-radius: 4px;
}
.dash-actions .btn {
  pointer-events: none;
  cursor: default;
}

/* Gestion des stocks — illustrations feature */
.stock-ui {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 8px;
}
.stock-ui__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--border-subtle);
}
.stock-ui__nav span {
  font-size: 7px;
  font-weight: 700;
  color: var(--ink-muted);
  padding-bottom: 3px;
  border-bottom: 2px solid transparent;
  cursor: default;
}
.stock-ui__nav span.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.stock-ui__kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
}
.stock-ui__kpi {
  position: relative;
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 5px 4px;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.stock-ui__kpi--warn {
  border-color: rgba(234, 88, 12, 0.25);
  background: rgba(255, 237, 213, 0.35);
}
.stock-ui__kpi small {
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.stock-ui__kpi strong {
  font-size: 10px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
}
.stock-ui__kpi-hint {
  font-size: 5px;
  font-weight: 600;
  color: var(--ink-faint);
}
.stock-ui__kpi-hint.is-warn {
  color: #c2410c;
  font-weight: 700;
}
.stock-ui__kpi-badge {
  position: absolute;
  right: 3px;
  top: 3px;
  font-size: 5px;
  font-weight: 800;
  padding: 1px 3px;
  border-radius: 999px;
}
.stock-ui__kpi-badge.is-ok {
  background: rgba(34, 197, 94, 0.15);
  color: #15803d;
}
.stock-ui__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 4px 5px;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.stock-ui__toolbar--single {
  justify-content: space-between;
}
.stock-ui__toolbar--mini {
  padding: 3px 4px;
}
.stock-ui__shops {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
}
.stock-ui__shops button {
  font-size: 6px;
  font-weight: 800;
  padding: 3px 6px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface);
  color: var(--ink-muted);
  cursor: default;
  font-family: inherit;
}
.stock-ui__shops button.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.stock-ui__shops em {
  font-style: normal;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 12px;
  height: 12px;
  margin-left: 3px;
  padding: 0 3px;
  border-radius: 999px;
  font-size: 5px;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.25);
}
.stock-ui__shops button:not(.is-active) em {
  background: var(--surface-subtle);
  color: var(--ink-muted);
}
.stock-ui__shops-add {
  width: 16px;
  height: 16px;
  border-radius: 6px;
  border: 1px dashed var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 700;
  color: var(--ink-faint);
}
.stock-ui__search {
  flex: 1;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface);
  font-size: 6px;
  font-weight: 600;
  color: var(--ink-faint);
}
.stock-ui__icon-btn {
  width: 22px;
  height: 22px;
  border-radius: 7px;
  border: 1px solid var(--border-subtle);
  background: var(--surface);
  color: var(--ink-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.stock-ui__add {
  font-size: 6px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 7px;
  background: var(--accent);
  color: #fff;
  border: 1px solid var(--accent);
  white-space: nowrap;
  flex-shrink: 0;
}
.stock-ui__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 6px;
  table-layout: fixed;
}
.stock-ui__table thead th {
  text-align: left;
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding: 3px 2px;
  border-bottom: 1px solid var(--border-subtle);
}
.stock-ui__table tbody td {
  padding: 4px 2px;
  vertical-align: middle;
  color: var(--ink-muted);
  border-bottom: 1px solid var(--border-subtle);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.stock-ui__table tbody tr:last-child td {
  border-bottom: none;
}
.stock-ui__table tbody tr.is-muted td {
  opacity: 0.55;
}
.stock-ui__table tbody tr.is-highlight td {
  font-weight: 600;
}
.stock-ui__table tbody strong {
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.stock-ui__table .is-money {
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.stock-ui__chip {
  display: inline-block;
  max-width: 100%;
  padding: 1px 4px;
  border-radius: 999px;
  font-size: 5px;
  font-weight: 700;
  border: 1px solid transparent;
}
.stock-ui__chip--cloth { background: #fce7f3; color: #9d174d; border-color: #fbcfe8; }
.stock-ui__chip--gear { background: #ede9fe; color: #5b21b6; border-color: #ddd6fe; }
.stock-ui__chip--rent { background: #f1f5f9; color: #475569; border-color: #e2e8f0; }
.stock-ui__chip--misc { background: #f1f5f9; color: #64748b; border-color: #e2e8f0; }
.stock-ui__chip--drink { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.stock-ui__pin {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 1px 4px;
  border-radius: 999px;
  font-size: 5px;
  font-weight: 700;
  background: var(--surface-subtle);
  color: var(--ink-faint);
  border: 1px solid var(--border-subtle);
}
.stock-ui__pin--res {
  background: rgba(34, 197, 94, 0.12);
  color: #15803d;
  border-color: rgba(34, 197, 94, 0.25);
}
.stock-ui__status {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 5px;
  border-radius: 999px;
  font-size: 5px;
  font-weight: 700;
  border: 1px solid transparent;
}
.stock-ui__status::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 999px;
  flex-shrink: 0;
}
.stock-ui__status.is-ok {
  background: rgba(34, 197, 94, 0.12);
  color: #15803d;
  border-color: rgba(34, 197, 94, 0.2);
}
.stock-ui__status.is-ok::before { background: #22c55e; }
.stock-ui__status.is-warn {
  background: rgba(249, 115, 22, 0.12);
  color: #c2410c;
  border-color: rgba(249, 115, 22, 0.2);
}
.stock-ui__status.is-warn::before { background: #f97316; }
.stock-ui__status.is-off {
  background: var(--surface-subtle);
  color: var(--ink-faint);
  border-color: var(--border-subtle);
}
.stock-ui__status.is-off::before { background: #94a3b8; }
.stock-ui__contact {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.stock-ui__contact strong {
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.stock-ui__contact small {
  font-size: 5px;
  color: var(--ink-faint);
  font-weight: 600;
}
.stock-ui--kpi-focus .stock-ui__kpis {
  gap: 6px;
}
.stock-ui--kpi-focus .stock-ui__kpi {
  padding: 8px 7px 6px;
}
.stock-ui--kpi-focus .stock-ui__kpi strong {
  font-size: 13px;
}
.dash-feat__visual .stock-ui--kpi-focus {
  padding: 10px;
}
.stock-ui__table-wrap {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.feat-hero .visual:has(.stock-ui--hero) {
  aspect-ratio: 5 / 4;
  min-height: 280px;
  padding: 12px;
  align-self: stretch;
}
.feat-hero .visual.mod-hero-mock:has(.stock-ui--hero) {
  align-items: stretch;
  justify-content: stretch;
  min-height: 280px;
  padding: 12px;
}
.mod-hero-mock .stock-ui--hero {
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.feat-hero .visual .stock-ui--hero.dash-feat-visual-inner {
  max-width: none;
  margin: 0;
  height: 100%;
}
.feat-hero .visual .stock-ui--hero .stock-ui__nav {
  flex-shrink: 0;
  gap: 14px;
  padding-bottom: 6px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__nav span {
  font-size: 10px;
  padding-bottom: 5px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__kpis {
  flex-shrink: 0;
  gap: 6px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__kpi {
  padding: 8px 6px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__kpi small {
  font-size: 7px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__kpi strong {
  font-size: 15px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__kpi-hint {
  font-size: 7px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__kpi-badge {
  font-size: 6px;
  top: 5px;
  right: 5px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__toolbar {
  flex-shrink: 0;
  flex-wrap: nowrap;
  gap: 6px;
  padding: 7px 8px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__shops button {
  font-size: 8px;
  padding: 5px 9px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__shops em {
  min-width: 14px;
  height: 14px;
  font-size: 6px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__shops-add {
  width: 20px;
  height: 20px;
  font-size: 11px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__search {
  font-size: 8px;
  padding: 6px 10px;
  flex: 1;
  min-width: 0;
}
.feat-hero .visual .stock-ui--hero .stock-ui__search svg {
  width: 12px;
  height: 12px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__add {
  font-size: 9px;
  padding: 6px 10px;
  flex-shrink: 0;
}
.feat-hero .visual .stock-ui--hero .stock-ui__table-wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.feat-hero .visual .stock-ui--hero .stock-ui__table {
  width: 100%;
  font-size: 9px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__table thead th {
  font-size: 7px;
  padding: 6px 4px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__table tbody td {
  padding: 10px 4px;
  font-size: 9px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__table tbody strong {
  font-size: 9px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__chip {
  font-size: 7px;
  padding: 2px 6px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__status {
  font-size: 7px;
  padding: 2px 7px;
}
.feat-hero .visual .stock-ui--hero .stock-ui__status::before {
  width: 5px;
  height: 5px;
}
.dash-feat__visual .stock-ui--kpi-focus .stock-ui__toolbar:not(.stock-ui__toolbar--mini) {
  display: none;
}
.dash-feat__visual .stock-ui--stock .stock-ui__table--movements thead th:nth-child(6),
.dash-feat__visual .stock-ui--stock .stock-ui__table--movements tbody td:nth-child(6) {
  display: none;
}
.dash-feat__visual .stock-ui--suppliers .stock-ui__table--suppliers thead th:nth-child(4),
.dash-feat__visual .stock-ui--suppliers .stock-ui__table--suppliers tbody td:nth-child(4) {
  display: none;
}
.features-section .feature-rail-illus .stock-ui--rail {
  padding: 6px;
  gap: 4px;
}
.features-section .feature-rail-illus .stock-ui--rail .stock-ui__kpis {
  grid-template-columns: 1fr 1fr;
}
.features-section .feature-rail-illus .stock-ui--rail .stock-ui__kpi {
  padding: 4px;
}
.features-section .feature-rail-illus .stock-ui--rail .stock-ui__nav,
.features-section .feature-rail-illus .stock-ui--rail .stock-ui__toolbar {
  display: none;
}

/* Caisse (POS) — illustrations feature */
.pos-ui {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 8px;
  font-size: 6px;
  color: var(--ink-muted);
}
.dash-feat__visual .pos-ui,
.dash-feat__visual .acct-ui {
  max-width: 100%;
  margin: 0;
}
.pos-ui__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--border-subtle);
}
.pos-ui__bar--compact {
  border-bottom: 0;
  padding-bottom: 0;
}
.pos-ui__bar-title {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  flex: 1;
}
.pos-ui__bar-title small {
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #15803d;
}
.pos-ui__bar-title strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__warn {
  font-size: 5px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  background: rgba(249, 115, 22, 0.12);
  color: #c2410c;
  border: 1px solid rgba(249, 115, 22, 0.25);
  white-space: nowrap;
}
.pos-ui__btn {
  font-size: 5px;
  font-weight: 800;
  padding: 3px 6px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
  white-space: nowrap;
}
.pos-ui__btn--danger {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}
.pos-ui__btn--primary {
  display: block;
  text-align: center;
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  padding: 5px 8px;
  font-size: 6px;
}
.pos-ui__btn--ok {
  background: #dcfce7;
  border-color: #bbf7d0;
  color: #15803d;
  text-align: center;
  display: block;
}
.pos-ui__body {
  display: grid;
  gap: 6px;
  min-height: 0;
  flex: 1;
}
.pos-ui__body--2 {
  grid-template-columns: 1.1fr 0.9fr;
}
.pos-ui__body--pay {
  grid-template-columns: 1fr 0.85fr;
}
.pos-ui__catalog,
.pos-ui__cart,
.pos-ui__numpad {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pos-ui__shop-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.pos-ui__shop-tabs span {
  font-size: 6px;
  font-weight: 700;
  padding-bottom: 2px;
  border-bottom: 2px solid transparent;
  color: var(--ink-faint);
}
.pos-ui__shop-tabs span.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.pos-ui__search {
  display: block;
  padding: 4px 7px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-faint);
  font-size: 5px;
  font-weight: 600;
}
.pos-ui__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.pos-ui__chips span {
  font-size: 5px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-faint);
}
.pos-ui__chips span.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.pos-ui__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  flex: 1;
  min-height: 0;
}
.pos-ui__grid article {
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 4px;
  background: var(--surface-subtle);
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-height: 0;
}
.pos-ui__grid article.is-out {
  opacity: 0.45;
  position: relative;
}
.pos-ui__grid article.is-out::after {
  content: "Rupture";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5px;
  font-weight: 800;
  color: #c2410c;
  background: rgba(255, 255, 255, 0.65);
  border-radius: 7px;
}
.pos-ui__pname {
  font-size: 5px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
}
.pos-ui__grid article strong {
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__grid article em {
  font-size: 5px;
  font-style: normal;
  font-weight: 600;
  color: var(--ink-faint);
  margin-top: auto;
}
.pos-ui__cart-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
}
.pos-ui__cart-head small {
  font-size: 5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.pos-ui__cart-head > span {
  font-size: 5px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-muted);
}
.pos-ui__lines {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  min-height: 0;
}
.pos-ui__lines li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 3px;
  align-items: center;
  font-size: 5px;
}
.pos-ui__lines li span em {
  display: block;
  font-size: 4px;
  font-style: normal;
  color: var(--ink-faint);
  font-weight: 600;
}
.pos-ui__lines li strong {
  font-size: 5px;
  font-weight: 800;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.pos-ui__qty {
  font-size: 5px;
  font-weight: 700;
  padding: 1px 3px;
  border-radius: 4px;
  border: 1px solid var(--border-subtle);
  background: #fff;
  color: var(--ink-muted);
}
.pos-ui__sub,
.pos-ui__vat,
.pos-ui__total {
  display: flex;
  justify-content: space-between;
  margin: 0;
  font-size: 5px;
  font-weight: 600;
}
.pos-ui__total strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__pay-tabs {
  display: flex;
  gap: 3px;
  flex-wrap: wrap;
}
.pos-ui__pay-tabs span {
  font-size: 5px;
  font-weight: 700;
  padding: 3px 5px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-faint);
}
.pos-ui__pay-tabs span.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.pos-ui__cart-actions {
  display: flex;
  gap: 3px;
  align-items: center;
}
.pos-ui__cart-actions > span:not(.pos-ui__btn) {
  font-size: 5px;
  font-weight: 700;
  padding: 3px 5px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: #fff;
}
.pos-ui__cart-actions .pos-ui__btn--primary {
  flex: 1;
  margin: 0;
}
.pos-ui__cash-display {
  background: #0f172a;
  color: #fff;
  border-radius: 8px;
  padding: 6px;
  text-align: center;
}
.pos-ui__cash-display small {
  display: block;
  font-size: 4px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.7;
}
.pos-ui__cash-display strong {
  font-size: 10px;
  font-weight: 800;
}
.pos-ui__quick-cash {
  display: flex;
  gap: 3px;
  flex-wrap: wrap;
}
.pos-ui__quick-cash span {
  flex: 1;
  text-align: center;
  font-size: 5px;
  font-weight: 700;
  padding: 3px;
  border-radius: 6px;
  background: var(--accent-muted);
  border: 1px solid var(--accent-border);
  color: var(--accent);
}
.pos-ui__keys {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
}
.pos-ui__keys span {
  text-align: center;
  font-size: 6px;
  font-weight: 700;
  padding: 5px 0;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: #fff;
  color: var(--ink);
}
.pos-ui__session-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}
.pos-ui__session-card {
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 6px 5px;
  background: var(--surface-subtle);
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.pos-ui__session-card.is-ok {
  border-color: rgba(34, 197, 94, 0.3);
  background: rgba(34, 197, 94, 0.08);
}
.pos-ui__session-card.is-warn {
  border-color: rgba(249, 115, 22, 0.35);
  background: rgba(255, 237, 213, 0.5);
}
.pos-ui__session-card small {
  font-size: 5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.pos-ui__session-card strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__session-card span {
  font-size: 5px;
  color: var(--ink-faint);
}
.pos-ui--receipt {
  padding: 10px;
}
.pos-ui__receipt {
  border: 1px dashed var(--border);
  border-radius: 10px;
  padding: 8px;
  background: #fff;
}
.pos-ui__receipt-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__nf {
  font-size: 5px;
  font-weight: 700;
  padding: 2px 5px;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.12);
  color: #15803d;
  border: 1px solid rgba(34, 197, 94, 0.25);
}
.pos-ui__receipt-meta {
  margin: 4px 0;
  font-size: 5px;
  color: var(--ink-faint);
}
.pos-ui__receipt-foot {
  margin: 6px 0 0;
  font-size: 5px;
  font-weight: 600;
  color: var(--accent);
  text-align: center;
}
.pos-ui--closure,
.pos-ui--open {
  padding: 4px 6px;
  background: transparent;
  border: none;
  box-shadow: none;
  align-items: center;
  justify-content: center;
}
.pos-ui__closure {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 11px 11px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-radius: 15px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}
.pos-ui__closure-head {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.pos-ui__closure-icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 8px;
  background: #e8f1ff;
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pos-ui__closure-icon svg {
  width: 12px;
  height: 12px;
}
.pos-ui__closure-titles {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.pos-ui__closure-titles small {
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.pos-ui__closure-titles strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.15;
}
.pos-ui__closure-close {
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1;
  color: var(--ink-faint);
  font-weight: 400;
}
.pos-ui__closure-lead {
  margin: 0;
  font-size: 5px;
  line-height: 1.45;
  color: var(--ink-secondary);
}
.pos-ui__closure-lead strong {
  font-weight: 700;
  color: var(--ink);
}
.pos-ui__closure-label {
  margin: 0;
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__closure-field {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #f3f4f6;
  border: 1px solid #e8eaef;
}
.pos-ui__closure-field-icon {
  flex-shrink: 0;
  color: #9ca3af;
  display: inline-flex;
}
.pos-ui__closure-field-icon svg {
  width: 11px;
  height: 11px;
}
.pos-ui__closure-field strong {
  flex: 1;
  font-size: 9px;
  font-weight: 800;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}
.pos-ui__closure-field em {
  font-size: 7px;
  font-weight: 700;
  font-style: normal;
  color: #9ca3af;
}
.pos-ui__closure-check {
  display: flex;
  align-items: flex-start;
  gap: 5px;
}
.pos-ui__closure-checkbox {
  flex-shrink: 0;
  width: 9px;
  height: 9px;
  margin-top: 1px;
  border-radius: 2px;
  border: 1px solid #d1d5db;
  background: #fff;
}
.pos-ui__closure-check p {
  margin: 0;
  font-size: 4.5px;
  line-height: 1.4;
  color: var(--ink-secondary);
}
.pos-ui__closure-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  margin-top: 2px;
  padding: 7px 10px;
  border-radius: 10px;
  background: #f2b4b8;
  color: #fff;
  font-size: 6px;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.pos-ui__closure-submit svg {
  flex-shrink: 0;
}
.pos-ui__open {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 11px 11px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-radius: 15px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}
.pos-ui__open-head {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.pos-ui__open-icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 8px;
  background: #dcfce7;
  color: #16a34a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pos-ui__open-icon svg {
  width: 12px;
  height: 12px;
}
.pos-ui__open-titles {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.pos-ui__open-titles small {
  font-size: 5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.pos-ui__open-titles strong {
  font-size: 8px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.15;
}
.pos-ui__open-close {
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1;
  color: var(--ink-faint);
  font-weight: 400;
}
.pos-ui__open-lead {
  margin: 0;
  font-size: 5px;
  line-height: 1.45;
  color: var(--ink-secondary);
}
.pos-ui__open-label {
  margin: 0;
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ui__open-field {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #f3f4f6;
  border: 1px solid #e8eaef;
}
.pos-ui__open-field-icon {
  flex-shrink: 0;
  color: #9ca3af;
  display: inline-flex;
}
.pos-ui__open-field-icon svg {
  width: 11px;
  height: 11px;
}
.pos-ui__open-field strong {
  flex: 1;
  font-size: 9px;
  font-weight: 800;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}
.pos-ui__open-field em {
  font-size: 7px;
  font-weight: 700;
  font-style: normal;
  color: #9ca3af;
}
.pos-ui__open-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  margin-top: 2px;
  padding: 7px 10px;
  border-radius: 10px;
  background: var(--accent);
  color: #fff;
  font-size: 6px;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.pos-ui__open-submit svg {
  flex-shrink: 0;
}
.feat-hero .visual:has(.pos-ui--hero) {
  aspect-ratio: 5 / 4;
  min-height: 280px;
  padding: 10px;
  align-self: stretch;
}
.feat-hero .visual.mod-hero-mock:has(.pos-ui--hero) {
  align-items: stretch;
  min-height: 280px;
}
.feat-hero .feat-hero__screenshot {
  width: 100%;
  max-width: min(100%, 560px);
  height: auto;
  display: block;
  align-self: center;
  justify-self: stretch;
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  border-radius: 15px;
  box-shadow: none;
  background: transparent;
  filter: none;
}
.feat-hero--copy-only .grid {
  grid-template-columns: 1fr;
  max-width: 640px;
}
.mod-hero-mock .pos-ui--hero {
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  flex: 1;
  min-height: 0;
  gap: 8px;
  padding: 10px;
  border: 0;
  box-shadow: none;
  font-size: 7px;
}
.feat-hero .visual .pos-ui--hero .pos-ui__bar-title strong {
  font-size: 9px;
}
.feat-hero .visual .pos-ui--hero .pos-ui__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.feat-hero .visual .pos-ui--hero .pos-ui__pname {
  font-size: 6px;
}
.feat-hero .visual .pos-ui--hero .pos-ui__grid article strong {
  font-size: 7px;
}
.feat-hero .visual .pos-ui--hero .pos-ui__total strong {
  font-size: 11px;
}
.feat-hero .visual .pos-ui--hero .pos-ui__btn--primary {
  font-size: 7px;
  padding: 6px 10px;
}

/* Comptabilité — illustrations feature */
.acct-ui {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-height: 0;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 8px;
  font-size: 6px;
  color: var(--ink-muted);
}
.acct-ui__head strong {
  font-size: 9px;
  font-weight: 800;
  color: var(--ink);
}
.acct-ui__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.acct-ui__nav span {
  font-size: 5px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 999px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  color: var(--ink-faint);
}
.acct-ui__nav span.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.acct-ui__ca {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
}
.acct-ui__ca > div {
  background: var(--surface-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  padding: 5px;
}
.acct-ui__ca small {
  display: block;
  font-size: 5px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.acct-ui__ca strong {
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.acct-ui__block h4 {
  margin: 0 0 3px;
  font-size: 5px;
  font-weight: 800;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 4px;
}
.acct-ui__block h4 span {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 6px;
  flex-shrink: 0;
}
.acct-ui__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.acct-ui__table thead th {
  text-align: left;
  font-size: 4px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-faint);
  padding: 2px 3px;
  border-bottom: 1px solid var(--border-subtle);
}
.acct-ui__table tbody td {
  padding: 3px;
  border-bottom: 1px solid var(--border-subtle);
  font-size: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.acct-ui__table tbody tr:last-child td {
  border-bottom: none;
}
.acct-ui__table tbody tr.is-highlight td {
  background: var(--accent-muted);
}
.acct-ui__table--compact tbody td:first-child {
  font-weight: 700;
  color: var(--ink);
}
.acct-ui__st {
  display: inline-flex;
  padding: 1px 4px;
  border-radius: 999px;
  font-size: 5px;
  font-weight: 700;
}
.acct-ui__st.is-ok {
  background: rgba(34, 197, 94, 0.12);
  color: #15803d;
}
.acct-ui__st.is-warn {
  background: rgba(249, 115, 22, 0.12);
  color: #c2410c;
}
.acct-ui__dot {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  margin: 0 auto;
}
.acct-ui__dot.is-ok { background: #22c55e; }
.acct-ui__dot.is-warn { background: #f97316; }
.acct-ui__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.acct-ui__filters span {
  font-size: 5px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.acct-ui--synth .acct-ui__block:last-child {
  margin-top: 2px;
}
.acct-ui__export-lead {
  margin: 0;
  font-size: 5px;
  color: var(--ink-faint);
}
.acct-ui__export-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.acct-ui__export-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 6px;
  padding: 5px 6px;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
  align-items: center;
}
.acct-ui__export-list li.is-primary {
  border-color: var(--accent-border);
  background: var(--accent-muted);
}
.acct-ui__export-list strong {
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
  grid-column: 1;
}
.acct-ui__export-list span {
  font-size: 5px;
  color: var(--ink-faint);
  grid-column: 1;
}
.acct-ui__export-list em {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: 5px;
  font-weight: 800;
  font-style: normal;
  padding: 3px 6px;
  border-radius: 6px;
  background: var(--accent);
  color: #fff;
}
.acct-ui__hist-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.acct-ui__hist-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 6px;
  padding: 5px 6px;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-subtle);
}
.acct-ui__hist-list strong {
  font-size: 6px;
  font-weight: 800;
  color: var(--ink);
}
.acct-ui__hist-list span {
  font-size: 5px;
  color: var(--ink-faint);
}
.acct-ui__hist-list em {
  grid-row: 1 / span 2;
  font-size: 5px;
  font-weight: 800;
  font-style: normal;
  color: var(--accent);
  align-self: center;
}
.dash-feat__visual .acct-ui--journal .acct-ui__table--journal thead th:nth-child(n+5),
.dash-feat__visual .acct-ui--journal .acct-ui__table--journal tbody td:nth-child(n+5) {
  display: none;
}
.mod-hero-mock .pos-ui--hero {
  flex: 1;
}
.features-section .feature-rail-illus .pos-ui--rail {
  padding: 6px;
  gap: 4px;
  background: #fff;
}
.features-section .feature-rail-illus .pos-ui--rail .pos-ui__grid {
  grid-template-columns: 1fr 1fr;
}
.features-section .feature-rail-illus .pos-ui--rail .pos-ui__bar,
.features-section .feature-rail-illus .pos-ui--rail .pos-ui__search,
.features-section .feature-rail-illus .pos-ui--rail .pos-ui__chips {
  display: none;
}
.features-section .feature-rail-illus .acct-ui--rail {
  padding: 6px;
  gap: 4px;
}
.features-section .feature-rail-illus .acct-ui--rail .acct-ui__nav,
.features-section .feature-rail-illus .acct-ui--rail .acct-ui__export-lead {
  display: none;
}
.features-section .feature-rail-illus .acct-ui--rail .acct-ui__export-list li span {
  display: none;
}
.feat-hero .visual:has(.acct-ui--hero) {
  aspect-ratio: auto;
  min-height: 0;
  height: auto;
  padding: 10px;
  align-self: stretch;
  background: #f3f4f6;
}
.feat-hero .visual.mod-hero-mock:has(.acct-ui--hero) {
  align-items: flex-start;
}
.mod-hero-mock .acct-ui--hero {
  max-width: none;
  width: 100%;
  height: auto;
  flex: 0 0 auto;
  margin: 0;
}
.feat-hero .visual .acct-ui--hero.dash-feat-visual-inner {
  max-width: none;
}
.acct-ui--hero {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 5px;
  padding: 0;
  font-size: 6.5px;
  background: #f3f4f6;
  border: 0;
  border-radius: 10px;
  overflow: hidden;
  height: auto;
}
.acct-ui--hero .acct-ui__toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 6px 6px 0;
}
.acct-ui--hero .acct-ui__toolbar .acct-ui__nav {
  flex: 1;
  min-width: 0;
  flex-wrap: nowrap;
  overflow: hidden;
  gap: 3px;
}
.acct-ui--hero .acct-ui__nav span {
  font-size: 5.5px;
  font-weight: 600;
  padding: 4px 6px;
  white-space: nowrap;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
}
.acct-ui--hero .acct-ui__nav span.is-active {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #2563eb;
}
.acct-ui--hero .acct-ui__date {
  flex-shrink: 0;
  font-size: 5.5px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
}
.acct-ui--hero .acct-ui__panel {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 6px 6px;
  padding: 7px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.acct-ui--hero .acct-ui__section-title {
  margin: 0;
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.acct-ui--hero .acct-ui__section-desc,
.acct-ui--hero .acct-ui__block-desc,
.acct-ui--hero .acct-ui__split-lead {
  margin: 0 0 3px;
  font-size: 5px;
  line-height: 1.3;
  color: #9ca3af;
  font-weight: 500;
}
.acct-ui--hero .acct-ui__section {
  flex-shrink: 0;
}
.acct-ui--hero .acct-ui__ca {
  gap: 3px;
}
.acct-ui--hero .acct-ui__ca > div {
  padding: 5px 6px;
  background: #f9fafb;
  border-color: #e5e7eb;
}
.acct-ui--hero .acct-ui__ca small {
  font-size: 5px;
  color: #9ca3af;
}
.acct-ui--hero .acct-ui__ca strong {
  font-size: 7.5px;
  color: #111827;
}
.acct-ui--hero .acct-ui__block {
  flex-shrink: 0;
}
.acct-ui--hero .acct-ui__block h4 {
  margin: 0 0 2px;
  font-size: 5.5px;
  line-height: 1.25;
}
.acct-ui--hero .acct-ui__block h4 span {
  width: 11px;
  height: 11px;
  font-size: 5.5px;
  background: #3b82f6;
}
.acct-ui--hero .acct-ui__table thead th {
  font-size: 4px;
  color: #9ca3af;
  background: #f9fafb;
  border-bottom-color: #e5e7eb;
}
.acct-ui--hero .acct-ui__table tbody td {
  font-size: 5px;
  color: #374151;
  border-bottom-color: #f3f4f6;
}
.acct-ui--hero .acct-ui__table tbody tr.is-total td {
  font-weight: 800;
  color: #111827;
  background: #f9fafb;
}
.acct-ui--hero .acct-ui__split-lead {
  margin-top: 3px;
}
.acct-ui--hero .acct-ui__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
}
.acct-ui--hero .acct-ui__split > div {
  padding: 4px 5px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
}
.acct-ui--hero .acct-ui__split small {
  display: block;
  font-size: 4px;
  line-height: 1.2;
  color: #9ca3af;
  margin-bottom: 1px;
}
.acct-ui--hero .acct-ui__split strong {
  font-size: 7.5px;
  font-weight: 800;
  color: #2563eb;
  font-variant-numeric: tabular-nums;
}
.acct-ui--hero .acct-ui__sub {
  margin: 0 0 2px;
  font-size: 5px;
  font-weight: 700;
  color: #6b7280;
}
.acct-ui--hero .acct-ui__pay {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-weight: 600;
  color: #374151;
}
.acct-ui--hero .acct-ui__pay-ic {
  width: 8px;
  height: 8px;
  border-radius: 3px;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.acct-ui--hero .acct-ui__pay-ic--card {
  background: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);
}
.acct-ui--hero .acct-ui__pay-ic--wallet {
  background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
}
.acct-ui--hero .acct-ui__pay-ic--cash {
  background: linear-gradient(135deg, #22c55e 0%, #4ade80 100%);
}
.acct-ui--hero .acct-ui__table--pay tbody td:first-child {
  overflow: visible;
}

/* Comptabilité — dash-features (Synthèse, Détail ventes, Journal, Export) */
.dash-feat__visual .acct-ui--dash-synth,
.dash-feat__visual .acct-ui--sales,
.dash-feat__visual .acct-ui--journal-live,
.dash-feat__visual .acct-ui--export-live {
  gap: 5px;
  padding: 0;
  font-size: 6.5px;
  background: #f3f4f6;
  border: 0;
  border-radius: 10px;
  overflow: hidden;
  height: auto;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__toolbar,
.dash-feat__visual .acct-ui--sales .acct-ui__toolbar,
.dash-feat__visual .acct-ui--journal-live .acct-ui__toolbar,
.dash-feat__visual .acct-ui--export-live .acct-ui__toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 6px 6px 0;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__toolbar .acct-ui__nav,
.dash-feat__visual .acct-ui--sales .acct-ui__toolbar .acct-ui__nav,
.dash-feat__visual .acct-ui--journal-live .acct-ui__toolbar .acct-ui__nav,
.dash-feat__visual .acct-ui--export-live .acct-ui__toolbar .acct-ui__nav {
  flex: 1;
  min-width: 0;
  flex-wrap: nowrap;
  overflow: hidden;
  gap: 3px;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__nav span,
.dash-feat__visual .acct-ui--sales .acct-ui__nav span,
.dash-feat__visual .acct-ui--journal-live .acct-ui__nav span,
.dash-feat__visual .acct-ui--export-live .acct-ui__nav span {
  font-size: 5.5px;
  font-weight: 600;
  padding: 4px 6px;
  white-space: nowrap;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__nav span.is-active,
.dash-feat__visual .acct-ui--sales .acct-ui__nav span.is-active,
.dash-feat__visual .acct-ui--journal-live .acct-ui__nav span.is-active,
.dash-feat__visual .acct-ui--export-live .acct-ui__nav span.is-active {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #2563eb;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__date,
.dash-feat__visual .acct-ui--sales .acct-ui__date,
.dash-feat__visual .acct-ui--journal-live .acct-ui__date,
.dash-feat__visual .acct-ui--export-live .acct-ui__date {
  flex-shrink: 0;
  font-size: 5.5px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__panel,
.dash-feat__visual .acct-ui--sales .acct-ui__panel,
.dash-feat__visual .acct-ui--journal-live .acct-ui__panel,
.dash-feat__visual .acct-ui--export-live .acct-ui__panel {
  flex: 0 0 auto;
  margin: 0 6px 6px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__panel {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 7px;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__section-title {
  margin: 0;
  font-size: 7px;
  font-weight: 800;
  color: var(--ink);
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__section-desc {
  margin: 0 0 3px;
  font-size: 5px;
  line-height: 1.3;
  color: #9ca3af;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__ca > div {
  background: #f9fafb;
  border-color: #e5e7eb;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__ca strong {
  font-size: 7.5px;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 3px;
  min-width: 0;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__split > div {
  min-width: 0;
  padding: 4px 5px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__split small {
  display: block;
  font-size: 4px;
  line-height: 1.2;
  color: #9ca3af;
}
.dash-feat__visual .acct-ui--dash-synth .acct-ui__split strong {
  font-size: 7.5px;
  color: #2563eb;
}

.dash-feat__visual .acct-ui__panel--flush {
  padding: 0;
  overflow: hidden;
}
.dash-feat__visual .acct-ui__panel--stack {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px;
}

.dash-feat__visual .acct-ui__table--sales thead th,
.dash-feat__visual .acct-ui__table--journal-live thead th {
  font-size: 4px;
  background: #f9fafb;
  color: #9ca3af;
}
.dash-feat__visual .acct-ui__table--sales tbody td,
.dash-feat__visual .acct-ui__table--journal-live tbody td {
  font-size: 5px;
  color: #374151;
}
.dash-feat__visual .acct-ui__table--sales tbody td strong,
.dash-feat__visual .acct-ui__table--journal-live tbody td strong {
  color: #111827;
}
.dash-feat__visual .acct-ui__table--sales tbody tr.is-total td,
.dash-feat__visual .acct-ui__table--journal-live tbody tr.is-total td {
  font-weight: 800;
  background: #f9fafb;
}
.dash-feat__visual .acct-ui__table--sales thead th:nth-child(4),
.dash-feat__visual .acct-ui__table--sales tbody td:nth-child(4) {
  display: none;
}

.dash-feat__visual .acct-ui--journal-live .acct-ui__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  padding: 0 6px;
}
.dash-feat__visual .acct-ui--journal-live .acct-ui__chips span {
  font-size: 5px;
  font-weight: 600;
  padding: 3px 6px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
}
.dash-feat__visual .acct-ui--journal-live .acct-ui__chips span.is-active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}
.dash-feat__visual .acct-ui--journal-live .acct-ui__chips em {
  font-style: normal;
  font-weight: 800;
  margin-left: 3px;
}
.dash-feat__visual .acct-ui--journal-live .acct-ui__searchbar {
  padding: 0 6px 4px;
}
.dash-feat__visual .acct-ui--journal-live .acct-ui__search {
  display: block;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #9ca3af;
  font-size: 5px;
}
.dash-feat__visual .acct-ui__type-ic {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  margin: 0 auto;
}
.dash-feat__visual .acct-ui__type-ic--wallet {
  background: linear-gradient(135deg, #f59e0b, #fbbf24);
}
.dash-feat__visual .acct-ui__type-ic--stripe {
  background: linear-gradient(135deg, #7c3aed, #a78bfa);
}
.dash-feat__visual .acct-ui__type-ic--card {
  background: linear-gradient(135deg, #3b82f6, #60a5fa);
}
.dash-feat__visual .acct-ui__member {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-width: 0;
}
.dash-feat__visual .acct-ui__av {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #2563eb;
  font-size: 5px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dash-feat__visual .acct-ui__table--journal-live thead th:nth-child(n+7),
.dash-feat__visual .acct-ui__table--journal-live tbody td:nth-child(n+7) {
  display: none;
}

.dash-feat__visual .acct-ui__card {
  padding: 5px 6px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
}
.dash-feat__visual .acct-ui__card strong {
  display: block;
  font-size: 6px;
  font-weight: 800;
  color: #111827;
  margin-bottom: 2px;
}
.dash-feat__visual .acct-ui__card p {
  margin: 0;
  font-size: 5px;
  line-height: 1.35;
  color: #9ca3af;
}
.dash-feat__visual .acct-ui__card--action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  background: #fff;
}
.dash-feat__visual .acct-ui__btn {
  flex-shrink: 0;
  font-size: 5px;
  font-weight: 700;
  font-style: normal;
  padding: 4px 7px;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
  white-space: nowrap;
}
.dash-feat__visual .acct-ui__export-rows {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.dash-feat__visual .acct-ui__export-rows li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 4px 5px;
  border-radius: 6px;
  border: 1px solid #e5e7eb;
  background: #fff;
}
.dash-feat__visual .acct-ui__export-rows li span {
  min-width: 0;
}
.dash-feat__visual .acct-ui__export-rows li strong {
  display: block;
  font-size: 5.5px;
  margin: 0;
}
.dash-feat__visual .acct-ui__export-rows li small {
  display: block;
  font-size: 4.5px;
  color: #9ca3af;
  line-height: 1.25;
}
.dash-feat__visual .acct-ui__export-rows li em {
  flex-shrink: 0;
  font-size: 5px;
  font-weight: 700;
  font-style: normal;
  padding: 3px 6px;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
}

.features-section .sol-card .app-rail-phones {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  min-height: 128px;
  padding: 8px 0;
}
.features-section .app-rail-phones__device {
  width: 36px;
  height: 72px;
  border-radius: 10px;
  background: linear-gradient(160deg, #1a2740, #0a1326);
  border: 1px solid #2a3a5c;
  transform: rotate(-8deg);
  opacity: 0.85;
}
.features-section .app-rail-phones__device.is-front {
  width: 44px;
  height: 88px;
  transform: rotate(0deg);
  opacity: 1;
  box-shadow: 0 8px 20px rgba(0, 102, 255, 0.2);
  border-color: rgba(0, 102, 255, 0.35);
}

.dash-chart__bar[style*="height"] {
  min-height: 0;
}

/* Feature page — App mobile */
.feat-hero--app .app-phones--feat-hero {
  width: 100%;
  max-width: min(100%, 560px);
  margin: 0;
  padding: 0;
  justify-self: end;
  align-self: center;
  background: transparent;
  border: none;
  box-shadow: none;
}
.feat-hero--app .app-phones--feat-hero .phone--hero img {
  width: min(168px, 36vw);
}
.feat-hero--app .app-phones--feat-hero .phone--flank img {
  width: min(120px, 28vw);
}
@media (max-width: 900px) {
  .feat-hero--app .grid {
    grid-template-columns: 1fr;
  }
  .feat-hero--app .app-phones--feat-hero {
    max-width: 100%;
    justify-self: stretch;
  }
}
.app-feat-shot {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 8px;
}
.app-feat-shot img {
  display: block;
  width: auto;
  max-width: min(200px, 100%);
  height: auto;
  border-radius: 22px;
  box-shadow: 0 20px 48px rgba(11, 20, 36, 0.18);
}
.app-store-mock {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.app-store-mock__device {
  width: 100%;
  max-width: 220px;
  margin: 0 auto;
}
.app-store-mock__bezel {
  position: relative;
  border-radius: 34px;
  padding: 7px;
  background: linear-gradient(160deg, #1a2740 0%, #0a1326 100%);
  border: 1.5px solid #2a3a5c;
  box-shadow: 0 24px 48px rgba(11, 20, 36, 0.2), 0 0 0 4px #060b18;
}
.app-store-mock__notch {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 72px;
  height: 20px;
  border-radius: 12px;
  background: #060b18;
  z-index: 3;
}
.app-store-mock__screen {
  border-radius: 28px;
  background: #f2f2f7;
  overflow: hidden;
  padding: 28px 10px 12px;
  min-height: 360px;
}
.app-store-mock__status {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 9px;
  font-weight: 700;
  color: #111;
  margin-bottom: 8px;
}
.app-store-mock__status-icons {
  letter-spacing: 0.08em;
  font-size: 7px;
  opacity: 0.5;
}
.app-store-mock__topbar {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  color: var(--accent);
  margin-bottom: 12px;
}
.app-store-mock__back {
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
}
.app-store-mock__app {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 10px;
}
.app-store-mock__icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--accent), #003d99);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 102, 255, 0.35);
}
.app-store-mock__app-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.app-store-mock__app-meta strong {
  font-size: 12px;
  font-weight: 800;
  color: #111;
  line-height: 1.15;
}
.app-store-mock__app-meta span {
  font-size: 9px;
  color: #6b7280;
}
.app-store-mock__app-meta em {
  font-style: normal;
  font-size: 8px;
  font-weight: 600;
  color: #6b7280;
  margin-top: 2px;
}
.app-store-mock__get {
  width: 100%;
  border: 0;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
  background: var(--accent);
  margin-bottom: 8px;
  cursor: default;
  pointer-events: none;
}
.app-store-mock__rating {
  margin: 0 0 10px;
  font-size: 8px;
  font-weight: 600;
  color: #6b7280;
}
.app-store-mock__rating span {
  color: #f59e0b;
  letter-spacing: -0.04em;
}
.app-store-mock__previews {
  display: flex;
  gap: 6px;
  overflow: hidden;
  margin-bottom: 10px;
  padding-bottom: 2px;
}
.app-store-mock__shot {
  flex: 0 0 58px;
  margin: 0;
  height: 102px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}
.app-store-mock__shot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.app-store-mock__desc {
  margin: 0;
  font-size: 8px;
  line-height: 1.45;
  color: #6b7280;
}
.app-store-mock__stores {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0;
}
.app-store-mock__store-pill {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--ink-secondary);
}
.app-store-mock__store-pill.is-play {
  border-color: rgba(0, 102, 255, 0.25);
  color: var(--accent);
  background: var(--accent-muted);
}
.dash-feat__visual .app-store-mock.dash-feat-visual-inner {
  max-width: 260px;
}
.app-feat-matches {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
.app-feat-matches__card {
  padding: 12px 14px;
  border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card-xs);
}
.app-feat-matches__card.is-muted {
  opacity: 0.72;
}
.app-feat-matches__tag {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 4px;
}
.app-feat-matches__card strong {
  display: block;
  font-size: 12px;
  color: var(--ink);
  margin-bottom: 2px;
}
.app-feat-matches__card small {
  font-size: 10px;
  color: var(--ink-muted);
}
.app-feat-perks {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.app-feat-perks__row {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-secondary);
}
.app-feat-perks__row strong {
  font-size: 10px;
  font-weight: 700;
  color: var(--ink);
  text-align: right;
}
.app-feat-perks__ico {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
}
