/*
 * Correctifs globaux GENSIDE chargés avec la page.
 * Ils évitent le flash sombre avant l’exécution des extensions JavaScript.
 */

.site-header__inner {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: clamp(18px, 2.5vw, 46px) !important;
  padding-right: clamp(18px, 2.5vw, 46px) !important;
}

.site-header .header-search,
.site-header .header-account {
  height: 36px !important;
  min-height: 36px !important;
  border-radius: 10px !important;
  font-size: 12px !important;
}

.site-header .header-search {
  width: auto !important;
  min-width: 148px !important;
  padding: 0 9px !important;
}

.site-header .header-account {
  width: auto !important;
  padding: 0 12px !important;
}

.site-header .header-search kbd {
  font-size: 9px !important;
  line-height: 1 !important;
  padding: 3px 6px !important;
}

html.genside-overlay-header .site-header {
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  z-index: 60 !important;
  background-color: transparent !important;
  background-image: linear-gradient(
    90deg,
    rgba(8, 6, 9, .62),
    rgba(8, 6, 9, .28),
    rgba(8, 6, 9, .54)
  ) !important;
  backdrop-filter: none !important;
}

html.genside-overlay-header .branch-page .branch-hero > .relative,
html.genside-overlay-header .document-page .document-hero__inner,
html.genside-overlay-header .editorial-public .hub-hero__inner {
  padding-top: calc(76px + clamp(28px, 3vw, 54px)) !important;
}

.branch-page .branch-hero > .relative,
.document-page .document-hero__inner,
.editorial-public .hub-hero__inner,
.regulation-page .regulation-page__inner {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: clamp(24px, 5vw, 88px) !important;
  padding-right: clamp(24px, 5vw, 88px) !important;
}

.document-page .document-hero__content,
.editorial-public .hub-hero__copy {
  width: 100% !important;
  max-width: none !important;
}

/* Guides : deux colonnes utiles seulement. */
.document-layout.document-layout--dynamic {
  grid-template-columns: 320px minmax(0, 1fr) !important;
}

.document-layout .document-aside {
  display: none !important;
}

/* Règlement : navigation calme, compacte et hiérarchisée. */
.regulation-major-nav.regulation-v16__branches {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  padding: 8px !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  border-radius: 14px !important;
  background: rgba(10, 8, 11, .76) !important;
  backdrop-filter: blur(12px);
}

.regulation-major-nav.regulation-v16__branches > a {
  min-height: 52px !important;
  padding: 0 16px !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: rgba(245, 238, 241, .68) !important;
  box-shadow: none !important;
  transition: background-color .18s ease, border-color .18s ease,
    color .18s ease !important;
}

.regulation-major-nav.regulation-v16__branches > a::before,
.regulation-major-nav.regulation-v16__branches > a::after {
  display: none !important;
  content: none !important;
}

.regulation-major-nav.regulation-v16__branches > a:hover {
  background: rgba(255, 255, 255, .045) !important;
  color: #fff8f5 !important;
}

.regulation-major-nav.regulation-v16__branches > a.is-active {
  border-color: color-mix(
    in srgb,
    var(--regulation-branch-accent, #ff9a82) 48%,
    transparent
  ) !important;
  background: color-mix(
    in srgb,
    var(--regulation-branch-accent, #ff9a82) 13%,
    #100b12
  ) !important;
  color: var(--regulation-branch-accent, #ff9a82) !important;
  box-shadow: inset 3px 0 0
    var(--regulation-branch-accent, #ff9a82) !important;
}

.guide-page--regulation .editorial-guide-rail--left {
  background: #0d0a0d !important;
  border-right-color: rgba(255, 255, 255, .08) !important;
  padding: 16px !important;
}

.branch-reader-nav__branches {
  display: none !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 6px !important;
  padding: 6px !important;
  border: 1px solid rgba(255, 255, 255, .07) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, .025) !important;
}

.branch-reader-nav__branches > a {
  min-height: 38px !important;
  padding: 8px 10px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  color: rgba(245, 238, 241, .64) !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
}

.branch-reader-nav__branches > a svg {
  display: none !important;
}

.branch-reader-nav__branches > a.is-active {
  border-color: color-mix(
    in srgb,
    var(--regulation-branch-accent, #ff9a82) 40%,
    transparent
  ) !important;
  background: color-mix(
    in srgb,
    var(--regulation-branch-accent, #ff9a82) 11%,
    #100b12
  ) !important;
  color: var(--regulation-branch-accent, #ff9a82) !important;
}

.branch-reader-nav__sections {
  margin-top: 0 !important;
}

.branch-reader-nav__heading {
  margin: 0 4px 8px !important;
  padding: 0 0 10px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
}

.branch-reader-nav__heading > span {
  display: none !important;
}

.branch-reader-nav__heading > strong {
  color: rgba(245, 238, 241, .54) !important;
  font-size: 11px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

.branch-reader-nav__section {
  border-bottom: 1px solid rgba(255, 255, 255, .055) !important;
}

.branch-reader-nav__section > button {
  min-height: 44px !important;
  padding: 10px 8px !important;
  border-radius: 8px !important;
  color: rgba(250, 244, 246, .82) !important;
  font-size: 13px !important;
}

.branch-reader-nav__section > button:hover,
.branch-reader-nav__section > button[aria-expanded="true"] {
  background: rgba(255, 255, 255, .04) !important;
  color: #fff8f5 !important;
}

.branch-reader-nav__section > button > svg:first-child {
  color: #c99183 !important;
  opacity: .82 !important;
}

.branch-reader-nav__section > button small {
  color: rgba(245, 238, 241, .38) !important;
}

.branch-reader-nav__articles {
  margin: 0 0 8px 22px !important;
  padding-left: 8px !important;
  border-left: 1px solid rgba(255, 255, 255, .08) !important;
}

.branch-reader-nav__articles > a {
  min-height: 34px !important;
  padding: 8px 10px !important;
  border: 0 !important;
  border-radius: 7px !important;
  color: rgba(245, 238, 241, .64) !important;
  font-size: 12.5px !important;
  line-height: 1.35 !important;
}

.branch-reader-nav__articles > a:hover {
  background: rgba(255, 255, 255, .035) !important;
  color: #fff8f5 !important;
}

.branch-reader-nav__articles > a.is-active {
  background: rgba(255, 122, 94, .10) !important;
  color: #ff9a82 !important;
  box-shadow: inset 2px 0 0 #ff765c !important;
}

.branch-page .branch-hero > .absolute.inset-0 > img {
  opacity: 0 !important;
  filter: none !important;
}

.branch-page .branch-hero > .absolute.inset-0 > .absolute.inset-0,
.branch-page .branch-hero::after {
  background: transparent !important;
  content: none !important;
  pointer-events: none !important;
}

.branch-page .branch-hero > .grain {
  opacity: .12 !important;
  pointer-events: none !important;
}

.branch-page,
.document-page,
.editorial-public {
  background-color: #0b080c !important;
}

.branch-page main,
.branch-page [class*="branch-content"],
.branch-page [class*="branch-sections"],
.guide-page,
.guide-page .editorial-guide-content,
.document-page .document-layout,
.editorial-public main {
  background-color: #0b080c !important;
}

.branch-page .branch-hero h1,
.document-page .document-hero h1,
.editorial-public .hub-hero h1 {
  color: var(--hero-accent, #ffcf9a) !important;
  -webkit-text-stroke: .25px rgba(0, 0, 0, .35);
  text-shadow:
    0 2px 2px rgba(0, 0, 0, .82),
    0 6px 24px rgba(0, 0, 0, .72),
    0 0 30px var(--hero-glow, rgba(255, 207, 154, .18));
}

.branch-page .branch-hero p,
.branch-page .branch-hero nav,
.document-page .document-hero p,
.document-page .document-hero nav,
.editorial-public .hub-hero p,
.editorial-public .hub-hero nav {
  text-shadow:
    0 1px 2px rgba(0, 0, 0, .92),
    0 3px 14px rgba(0, 0, 0, .78);
}

.branch-page .branch-hero [class*="eyebrow"],
.branch-page .branch-hero nav span:last-child,
.document-page .document-hero__eyebrow,
.editorial-public .hub-hero__eyebrow {
  color: var(--hero-accent, #ffcf9a) !important;
}

.branch-page .branch-hero button {
  background: var(--hero-accent, #ffcf9a) !important;
  color: var(--hero-button-text, #241014) !important;
  box-shadow: 0 12px 32px var(--hero-glow, rgba(255, 207, 154, .18));
}

.guide-page .editorial-city-banner,
.guide-page .editorial-city-banner--article {
  filter: none !important;
  opacity: 1 !important;
}

.guide-page .editorial-city-banner--article {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  border: 0 !important;
}

.guide-page .editorial-city-banner::before,
.guide-page .editorial-city-banner::after {
  display: none !important;
  content: none !important;
}

.guide-page .guide-layout.editorial-guide-layout {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  grid-template-columns: 320px minmax(0, 1fr) !important;
  justify-content: stretch !important;
}

.guide-page .editorial-guide-rail--left {
  width: 320px !important;
  min-width: 320px !important;
  border-right: 1px solid rgba(255, 255, 255, .10) !important;
  background: rgba(15, 11, 16, .74) !important;
}

.guide-page .editorial-guide-rail--left button,
.guide-page .editorial-guide-rail--left a,
.guide-page .editorial-guide-rail--left button *,
.guide-page .editorial-guide-rail--left a * {
  max-width: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

.guide-page .editorial-guide-rail--right {
  display: none !important;
}

.guide-page .editorial-guide-content {
  width: 100% !important;
  max-width: none !important;
}

.guide-page .editorial-rule-article {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.guide-page .editorial-guide-content {
  box-sizing: border-box !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: clamp(36px, 4vw, 76px) !important;
  padding-right: clamp(36px, 4vw, 76px) !important;
  background:
    radial-gradient(
      circle at 82% 8%,
      color-mix(in srgb, var(--hero-accent, #ff9a82) 7%, transparent),
      transparent 34%
    ),
    #0b080c !important;
}

.guide-page .editorial-rule-pagination {
  display: flex !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  gap: 14px !important;
}

.guide-page .editorial-rule-pagination__link {
  box-sizing: border-box !important;
  width: fit-content !important;
  min-width: min(100%, 290px) !important;
  max-width: min(100%, 460px) !important;
  min-height: 64px !important;
  margin: 0 !important;
  padding: 12px 16px !important;
}

.guide-page .editorial-rule-pagination__link:last-child {
  margin-left: 0 !important;
}

.guide-page .editorial-rule-pagination__link > div {
  width: auto !important;
  max-width: 390px !important;
}

/* Une seule famille typographique lisible pour toutes les branches éditoriales. */
.guide-page,
.guide-page button,
.guide-page input,
.guide-page select,
.guide-page textarea,
.regulation-page,
.regulation-page button,
.document-page,
.document-page button,
.ep-tools-shell,
.ep-tools-shell button,
.ep-tools-shell input,
.ep-tools-shell select,
.ep-tools-shell textarea {
  font-family: "Source Sans 3", Inter, system-ui, sans-serif !important;
  font-synthesis: none !important;
}

.branch-page .branch-hero h1,
.document-page .document-hero h1,
.editorial-public .hub-hero h1,
.ep-page-heading h1 {
  max-width: min(1100px, 100%) !important;
  font-family: Sora, Manrope, system-ui, sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(48px, 5.2vw, 86px) !important;
  line-height: .96 !important;
  letter-spacing: -.045em !important;
  overflow-wrap: anywhere !important;
}

/* Palette des quatre règlements : identifiable sans saturation agressive. */
.regulation-major-nav.regulation-v16__branches > a[href*="branche=general"],
.branch-reader-nav__branches > a[href*="branche=general"] {
  --regulation-branch-accent: #ff9a82;
}

.regulation-major-nav.regulation-v16__branches > a[href*="branche=legal"],
.branch-reader-nav__branches > a[href*="branche=legal"] {
  --regulation-branch-accent: #72cfff;
}

.regulation-major-nav.regulation-v16__branches > a[href*="branche=illegal"],
.branch-reader-nav__branches > a[href*="branche=illegal"] {
  --regulation-branch-accent: #ef83c5;
}

.regulation-major-nav.regulation-v16__branches > a[href*="branche=companies"],
.branch-reader-nav__branches > a[href*="branche=companies"] {
  --regulation-branch-accent: #72dbb4;
}

.regulation-major-nav.regulation-v16__branches > a[href*="branche="],
.branch-reader-nav__branches > a[href*="branche="] {
  color: var(--regulation-branch-accent, #ff9a82) !important;
}

.genside-regulation-page .editorial-rule-context__category,
.genside-regulation-page .regulation-page h1,
.genside-regulation-page .guide-page--regulation h1,
.genside-regulation-page main h1,
.genside-regulation-page .editorial-rule-article h1,
.genside-regulation-page .editorial-rule-article h2,
.genside-regulation-page .editorial-rule-article h3 {
  color: var(--regulation-accent, #ff9a82) !important;
}

.genside-regulation-page .editorial-rule-article h2,
.genside-regulation-page .editorial-rule-article h3 {
  border-color: color-mix(in srgb, var(--regulation-accent, #ff9a82) 28%, transparent) !important;
}

/* Accueil d'un règlement : sommaire par catégories, sans doubler les articles. */
.genside-regulation-overview .regulation-branch__layout {
  display: block !important;
}

.genside-regulation-overview .regulation-summary {
  display: none !important;
}

.genside-regulation-overview .regulation-sections {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: start !important;
  gap: 18px !important;
}

.genside-regulation-overview .regulation-section {
  box-sizing: border-box !important;
  display: block !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, .10) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, .025) !important;
  overflow: hidden !important;
  transition: border-color .18s ease, background-color .18s ease !important;
}

.genside-regulation-overview .regulation-section:hover {
  border-color: color-mix(in srgb, var(--regulation-accent, #ff9a82) 48%, transparent) !important;
  background: color-mix(in srgb, var(--regulation-accent, #ff9a82) 7%, transparent) !important;
}

.genside-regulation-overview .regulation-section > header {
  margin: 0 !important;
  padding: 20px 22px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .09) !important;
}

.genside-regulation-overview .regulation-section h3 {
  margin: 0 !important;
  color: #fff5f1 !important;
  font-size: 20px !important;
  line-height: 1.15 !important;
}

.genside-regulation-overview .regulation-article-list {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.genside-regulation-overview .regulation-article-list li {
  margin: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
}

.genside-regulation-overview .regulation-article-list li:last-child {
  border-bottom: 0 !important;
}

.genside-regulation-overview .regulation-article-list a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  min-height: 50px !important;
  padding: 12px 18px 12px 22px !important;
  color: rgba(255, 248, 245, .82) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease,
    padding-left .18s ease !important;
}

.genside-regulation-overview .regulation-article-list a:hover {
  padding-left: 26px !important;
  background: color-mix(in srgb, var(--regulation-accent, #ff9a82) 10%, transparent) !important;
  color: var(--regulation-accent, #ff9a82) !important;
}

.genside-regulation-overview .regulation-article-list a:focus-visible {
  outline: 2px solid var(--regulation-accent, #ff9a82) !important;
  outline-offset: -3px !important;
}

.regulation-category-card__footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin-top: 24px !important;
}

.regulation-category-card__count {
  color: rgba(245, 238, 241, .50) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.regulation-category-card__open {
  color: var(--regulation-accent, #ff9a82) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

.genside-reader-hero {
  box-sizing: border-box !important;
  position: relative !important;
  min-height: 430px !important;
  padding: 130px clamp(28px, 5vw, 88px) 54px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  background-position: center 48% !important;
  background-size: cover !important;
  overflow: hidden !important;
}

.genside-reader-hero__breadcrumb {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 0 28px !important;
  color: rgba(255, 248, 244, .68) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.genside-reader-hero__breadcrumb a {
  color: rgba(255, 248, 244, .92) !important;
  text-decoration: none !important;
}

.genside-reader-hero__breadcrumb a:hover {
  color: var(--hero-accent, #ffcf9a) !important;
}

html.genside-reader-page.genside-overlay-header .site-header {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 60 !important;
  width: 100% !important;
  border-bottom: 1px solid rgba(255, 255, 255, .11) !important;
  background: linear-gradient(
    90deg,
    rgba(8, 6, 9, .72),
    rgba(8, 6, 9, .24),
    rgba(8, 6, 9, .58)
  ) !important;
}

.genside-inline-rule-frame-shell {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: 0 !important;
  scroll-margin-top: 18px !important;
  background: #0b080c !important;
}

.genside-inline-rule-frame-toolbar {
  display: none !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  min-height: 64px !important;
  padding: 10px clamp(18px, 3vw, 42px) !important;
  border: 1px solid rgba(255, 255, 255, .10) !important;
  border-radius: 12px 12px 0 0 !important;
  background: rgba(13, 10, 14, .96) !important;
  backdrop-filter: blur(14px) !important;
}

html.genside-direct-regulation-reader .regulation-branch {
  display: none !important;
}

html.genside-direct-regulation-reader .regulation-page__body {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

html.genside-direct-regulation-reader .genside-inline-rule-frame-shell {
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #0b080c !important;
}

.editorial-reading-progress {
  display: none !important;
}

.genside-inline-rule-frame-back {
  min-height: 40px !important;
  padding: 0 14px !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 9px !important;
  background: rgba(255, 255, 255, .035) !important;
  color: var(--regulation-accent, #ff9a82) !important;
  font: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

.genside-inline-rule-frame-back:hover {
  border-color: var(--regulation-accent, #ff9a82) !important;
  background: color-mix(
    in srgb,
    var(--regulation-accent, #ff9a82) 10%,
    transparent
  ) !important;
}

.genside-inline-rule-frame-title {
  min-width: 0 !important;
  color: rgba(255, 248, 245, .78) !important;
  font-size: 13px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.genside-inline-rule-frame {
  display: block !important;
  width: 100% !important;
  min-height: 760px !important;
  border: 0 !important;
  background: #0b080c !important;
}

@media (max-width: 720px) {
  .genside-inline-rule-frame-toolbar {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  .genside-inline-rule-frame-title {
    padding: 0 4px 4px !important;
  }
}

.genside-reader-hero__inner {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: 1100px !important;
}

.genside-reader-hero__eyebrow {
  display: block !important;
  margin-bottom: 10px !important;
  color: var(--hero-accent, #ffcf9a) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

.genside-reader-hero h1 {
  margin: 0 !important;
  color: var(--hero-accent, #ffcf9a) !important;
  font-family: Sora, Manrope, system-ui, sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(48px, 5.2vw, 86px) !important;
  line-height: .96 !important;
  letter-spacing: -.045em !important;
  text-shadow: 0 4px 24px rgba(0, 0, 0, .86) !important;
}

.genside-reader-hero p {
  max-width: 760px !important;
  margin: 16px 0 0 !important;
  color: rgba(255, 248, 244, .88) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .88) !important;
}

/* Outils RP : navigation + éditeur, sans aperçu redondant ni raccourcis à droite. */
.genside-tools-page .ep-tools-shell {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

html.genside-tools-page.genside-overlay-header .site-header {
  display: block !important;
  position: absolute !important;
  border-bottom: 1px solid rgba(255, 255, 255, .11) !important;
}

.genside-tools-page .ep-tools-heading {
  width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.genside-tools-header {
  box-sizing: border-box !important;
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  z-index: 1000 !important;
  display: none !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 76px !important;
  padding: 0 clamp(24px, 3vw, 56px) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .11) !important;
  background: linear-gradient(
    90deg,
    rgba(8, 6, 9, .78),
    rgba(8, 6, 9, .30),
    rgba(8, 6, 9, .66)
  ) !important;
}

.genside-tools-header__logo {
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  margin-right: clamp(34px, 5vw, 82px) !important;
}

.genside-tools-header__logo img {
  display: block !important;
  width: 110px !important;
  height: 38px !important;
  object-fit: contain !important;
}

.genside-tools-header nav {
  display: flex !important;
  align-items: stretch !important;
  min-width: 0 !important;
  min-height: 76px !important;
  gap: clamp(18px, 2vw, 34px) !important;
}

.genside-tools-header nav a {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  color: rgba(255, 248, 244, .82) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.genside-tools-header nav a:hover,
.genside-tools-header nav a.is-active {
  color: #ffffff !important;
}

.genside-tools-header nav a.is-active::after {
  position: absolute !important;
  right: 0 !important;
  bottom: 10px !important;
  left: 0 !important;
  height: 2px !important;
  background: #e5a3f5 !important;
  content: "" !important;
}

.genside-tools-header nav a[data-color="illegal"] {
  color: #d67cff !important;
}

.genside-tools-header nav a[data-color="legal"] {
  color: #5ee2b6 !important;
}

@media (max-width: 1120px) {
  .genside-tools-header {
    overflow-x: auto !important;
  }

  .genside-tools-header__logo {
    margin-right: 28px !important;
  }

  .genside-tools-header nav {
    gap: 20px !important;
  }
}

.genside-tools-page .ep-tools-priorities,
.genside-tools-page .ep-tool-preview {
  display: none !important;
}

.genside-tools-page .ep-tools-layout {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: 300px minmax(0, 1fr) !important;
}

.genside-tools-page .ep-tool-editor,
.genside-tools-page .ep-tool-form {
  width: 100% !important;
  max-width: none !important;
}

.genside-tools-page .ep-page-heading {
  box-sizing: border-box !important;
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  min-height: 430px !important;
  margin-top: 0 !important;
  padding-top: 130px !important;
  padding-left: clamp(32px, 4vw, 72px) !important;
  padding-right: clamp(32px, 4vw, 72px) !important;
}

.genside-tools-page .ep-page-heading__grid {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}

.genside-tools-page .ep-page-heading h1 {
  color: #e6a5f7 !important;
  text-shadow: 0 3px 18px rgba(0, 0, 0, .82) !important;
}

.genside-tools-page .ep-tools-heading {
  max-width: 760px !important;
}

.document-page .document-hero__inner,
.document-page .document-layout,
.document-page .document-layout--dynamic {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.document-page .document-layout,
.document-page .document-layout--dynamic {
  grid-template-columns: 320px minmax(0, 1fr) 280px !important;
}

.document-page .document-content {
  width: 100% !important;
  max-width: none !important;
}

.genside-system-page,
.genside-system-page body,
.genside-system-page .branch-page,
.genside-system-page .guide-page,
.genside-system-page .branch-page h1,
.genside-system-page .branch-page h2,
.genside-system-page .branch-page h3,
.genside-system-page .guide-page h1,
.genside-system-page .guide-page h2,
.genside-system-page .guide-page h3,
.genside-system-page .editorial-guide-rail button {
  font-family: "Source Sans 3", system-ui, sans-serif !important;
}

.penal-disclaimer,
.document-version,
.version-card,
[data-testid="version"],
[data-testid="document-version"],
.document-hero__metric,
.branch-page main small,
.reading-time,
.read-time,
[data-reading-time],
[data-testid="reading-time"] {
  display: none !important;
}

@media (max-width: 1440px) {
  .guide-page .guide-layout.editorial-guide-layout {
    grid-template-columns: 320px minmax(0, 1fr) !important;
  }

  .guide-page .editorial-guide-rail--left {
    width: 320px !important;
    min-width: 320px !important;
  }

  .guide-page .editorial-guide-rail--right {
    display: none !important;
  }
}

@media (max-width: 1023px) {
  .site-header__inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .branch-page .branch-hero > .relative,
  .document-page .document-hero__inner,
  .editorial-public .hub-hero__inner,
  .regulation-page .regulation-page__inner {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .guide-page .guide-layout.editorial-guide-layout {
    display: block !important;
  }

  .guide-page .editorial-guide-rail--left {
    display: none !important;
  }

  .document-page .document-layout,
  .document-page .document-layout--dynamic {
    display: block !important;
  }

  .regulation-major-nav.regulation-v16__branches {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .genside-tools-page .ep-tools-layout {
    grid-template-columns: 240px minmax(0, 1fr) !important;
  }

  .genside-regulation-overview .regulation-sections {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Doit rester en fin de feuille pour neutraliser la grille d'origine à 3 colonnes. */
@media (max-width: 1100px) {
  .site-header__nav {
    display: none !important;
  }

  .header-menu-button {
    display: flex !important;
  }

  .site-header__actions {
    margin-left: auto !important;
  }
}

.document-page .document-layout.document-layout--dynamic {
  grid-template-columns: 320px minmax(0, 1fr) !important;
}

@media (max-width: 1023px) {
  .document-page .document-layout.document-layout--dynamic {
    display: block !important;
  }

  .genside-tools-page .ep-tools-layout {
    display: block !important;
  }

  .genside-regulation-overview .regulation-sections {
    grid-template-columns: 1fr !important;
  }

  html.genside-tools-page .ep-page-heading.ep-tools-heading {
    width: calc(100% + 40px) !important;
    margin-right: -20px !important;
    margin-left: -20px !important;
  }
}

html.genside-tools-page .ep-page-heading.ep-tools-heading {
  width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.genside-mobile-system-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 19px !important;
  min-width: 19px !important;
  height: 19px !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

/* ================================================================
   Centres des systèmes — interface fonctionnelle, distincte du règlement
   ================================================================ */
html.genside-system-page {
  --system-accent: #86e6e2;
  --system-accent-rgb: 134, 230, 226;
  --system-panel: #0b1316;
  --system-panel-strong: #101a1e;
  --system-border: rgba(134, 230, 226, .18);
  --system-muted: #91a7ad;
  color-scheme: dark;
  scrollbar-gutter: stable;
}

html.genside-system-page.genside-system-legal {
  --system-accent: #6ee0b5;
  --system-accent-rgb: 110, 224, 181;
  --system-panel: #0b1411;
  --system-panel-strong: #111c18;
  --system-border: rgba(110, 224, 181, .18);
  --system-muted: #96aba3;
}

html.genside-system-page body,
html.genside-system-page .branch-page,
html.genside-system-page .guide-page {
  background: #080b0d !important;
}

html.genside-system-page.genside-system-legal body,
html.genside-system-page.genside-system-legal .branch-page,
html.genside-system-page.genside-system-legal .guide-page {
  background: #090c0b !important;
}

html.genside-system-page h1,
html.genside-system-page h2,
html.genside-system-page h3,
html.genside-system-page .branch-category-group__heading,
html.genside-system-page .editorial-guide-rail button {
  font-family: "Sora", "Source Sans 3", system-ui, sans-serif !important;
  letter-spacing: -.035em !important;
}

html.genside-system-page p,
html.genside-system-page li,
html.genside-system-page td,
html.genside-system-page th,
html.genside-system-page a,
html.genside-system-page button {
  font-family: "Source Sans 3", system-ui, sans-serif !important;
}

html.genside-system-hub-page .branch-hero {
  min-height: clamp(330px, 36vw, 470px) !important;
}

html.genside-system-hub-page .branch-hero > .relative {
  width: 100% !important;
  max-width: 1540px !important;
  min-height: inherit !important;
  padding: clamp(96px, 11vw, 150px) clamp(24px, 5vw, 76px) 52px !important;
}

html.genside-system-hub-page .branch-hero h1 {
  max-width: 820px !important;
  color: #efffff !important;
  font-size: clamp(48px, 6vw, 88px) !important;
  line-height: .94 !important;
  text-shadow: 0 3px 28px rgba(0, 0, 0, .82) !important;
}

html.genside-system-hub-page.genside-system-legal .branch-hero h1 {
  color: #f5fff9 !important;
}

html.genside-system-hub-page .branch-hero p {
  max-width: 680px !important;
  color: rgba(244, 252, 252, .86) !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .9) !important;
}

html.genside-system-hub-page .branch-hero button {
  border: 1px solid rgba(var(--system-accent-rgb), .55) !important;
  background: rgba(5, 13, 16, .84) !important;
  color: var(--system-accent) !important;
  box-shadow: 0 14px 45px rgba(0, 0, 0, .3) !important;
  backdrop-filter: blur(12px) !important;
}

.genside-system-hub__layout {
  display: block !important;
  width: 100% !important;
  max-width: 1540px !important;
  margin: 0 auto !important;
  padding: 0 clamp(20px, 4vw, 64px) clamp(72px, 8vw, 120px) !important;
}

.genside-system-hub__layout > aside {
  display: none !important;
}

.genside-system-hub-nav {
  position: sticky !important;
  z-index: 40 !important;
  top: 66px !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  overflow-x: auto !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid var(--system-border) !important;
  background: rgba(8, 11, 13, .9) !important;
  box-shadow: 0 14px 28px rgba(0, 0, 0, .18) !important;
  scrollbar-width: none !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
}

.genside-system-legal .genside-system-hub-nav {
  background: rgba(9, 12, 11, .9) !important;
}

.genside-system-hub-nav::-webkit-scrollbar {
  display: none !important;
}

.genside-system-hub-nav__label {
  position: sticky !important;
  left: 0 !important;
  flex: 0 0 auto !important;
  padding: 9px 14px 9px 0 !important;
  color: var(--system-accent) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}

.genside-system-hub-nav a {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 38px !important;
  padding: 8px 13px !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  color: #c3ced1 !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease !important;
}

.genside-system-hub-nav a::before {
  content: attr(data-index) !important;
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: .08em !important;
}

.genside-system-hub-nav a:hover,
.genside-system-hub-nav a:focus-visible {
  border-color: var(--system-border) !important;
  background: rgba(var(--system-accent-rgb), .08) !important;
  color: #fff !important;
  outline: none !important;
}

.genside-system-glance {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1px !important;
  overflow: hidden !important;
  margin: 28px 0 42px !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 14px !important;
  background: var(--system-border) !important;
}

.genside-system-glance > div {
  display: flex !important;
  min-height: 92px !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 3px !important;
  padding: 18px 20px !important;
  background: var(--system-panel) !important;
}

.genside-system-glance strong {
  color: var(--system-accent) !important;
  font-family: "Sora", "Source Sans 3", system-ui, sans-serif !important;
  font-size: 23px !important;
  font-weight: 800 !important;
  letter-spacing: -.04em !important;
}

.genside-system-glance span {
  color: var(--system-muted) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

.genside-system-hub__content {
  display: flex !important;
  gap: clamp(40px, 6vw, 78px) !important;
}

.genside-system-module-group {
  position: relative !important;
  scroll-margin-top: 145px !important;
  padding: 0 !important;
}

.genside-system-module-group::before {
  content: attr(data-module-index) !important;
  position: absolute !important;
  top: 6px !important;
  right: 0 !important;
  color: rgba(var(--system-accent-rgb), .23) !important;
  font-family: "Sora", system-ui, sans-serif !important;
  font-size: clamp(42px, 5vw, 72px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -.07em !important;
  pointer-events: none !important;
}

.genside-system-module-group > header,
.genside-system-module-group > div:first-child {
  padding-right: 90px !important;
}

.genside-system-module-group h2,
.genside-system-module-group h3 {
  max-width: 830px !important;
  color: #f1f5f5 !important;
  font-size: clamp(27px, 3vw, 40px) !important;
  line-height: 1.08 !important;
}

.genside-system-module-group header p,
.genside-system-module-group > div:first-child p {
  color: var(--system-muted) !important;
}

.genside-system-module-group .branch-category-articles {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  overflow: visible !important;
  margin-top: 20px !important;
  border: 0 !important;
  background: transparent !important;
}

.genside-system-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-rows: auto 1fr auto !important;
  gap: 13px 12px !important;
  align-items: start !important;
  min-height: 155px !important;
  padding: 17px 18px !important;
  border: 1px solid rgba(255, 255, 255, .09) !important;
  border-radius: 12px !important;
  background: linear-gradient(145deg, var(--system-panel-strong), var(--system-panel)) !important;
  color: #eef4f4 !important;
  text-align: left !important;
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease !important;
}

.genside-system-card:hover,
.genside-system-card:focus-visible {
  z-index: 1 !important;
  transform: translateY(-2px) !important;
  border-color: rgba(var(--system-accent-rgb), .48) !important;
  background: linear-gradient(145deg, rgba(var(--system-accent-rgb), .11), var(--system-panel)) !important;
  outline: none !important;
}

.genside-system-card__number {
  grid-column: 1 !important;
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: .13em !important;
}

.genside-system-card > span:not(.genside-system-card__number):not(.genside-system-card__badge) {
  grid-column: 1 / -1 !important;
  align-self: start !important;
  color: #f3f7f7 !important;
  font-family: "Sora", "Source Sans 3", system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 740 !important;
  line-height: 1.27 !important;
  letter-spacing: -.025em !important;
}

.genside-system-card__badge {
  grid-column: 1 !important;
  align-self: end !important;
  justify-self: start !important;
  padding: 5px 8px !important;
  border: 1px solid rgba(var(--system-accent-rgb), .2) !important;
  border-radius: 999px !important;
  background: rgba(var(--system-accent-rgb), .065) !important;
  color: var(--system-muted) !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}

.genside-system-card__badge.is-live,
.genside-system-card__badge.is-runtime {
  color: var(--system-accent) !important;
}

.genside-system-card > svg {
  grid-column: 2 !important;
  grid-row: 3 !important;
  align-self: center !important;
  color: var(--system-accent) !important;
}

/* Lecteur de système : navigation et contenu orientés module. */
html.genside-system-reader-page .genside-reader-hero {
  min-height: 230px !important;
  padding-top: 76px !important;
  padding-bottom: 30px !important;
}

html.genside-system-reader-page .genside-reader-hero h1 {
  color: #f3ffff !important;
  font-family: "Sora", "Source Sans 3", system-ui, sans-serif !important;
  font-size: clamp(40px, 5vw, 66px) !important;
  letter-spacing: -.055em !important;
  text-shadow: 0 3px 25px rgba(0, 0, 0, .88) !important;
}

.genside-system-reader {
  width: 100% !important;
  max-width: 1680px !important;
  min-height: calc(100vh - 230px) !important;
  margin: 0 auto !important;
  background: #080b0d !important;
}

.genside-system-legal .genside-system-reader {
  background: #090c0b !important;
}

.genside-system-reader__rail {
  width: 330px !important;
  min-width: 330px !important;
  padding: 18px 16px 34px !important;
  border-color: var(--system-border) !important;
  background: rgba(9, 14, 16, .98) !important;
}

.genside-system-reader__rail > a:first-child {
  min-height: 44px !important;
  margin-bottom: 14px !important;
  border-color: var(--system-border) !important;
  border-radius: 9px !important;
  background: rgba(var(--system-accent-rgb), .035) !important;
  color: var(--system-accent) !important;
}

.genside-system-reader__rail nav > button {
  min-height: 46px !important;
  margin-top: 5px !important;
  padding: 10px 12px !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  color: #dce5e6 !important;
  font-size: 13px !important;
  letter-spacing: -.01em !important;
}

.genside-system-reader__rail nav > button:hover,
.genside-system-reader__rail nav > button[aria-expanded="true"] {
  border-color: var(--system-border) !important;
  background: rgba(var(--system-accent-rgb), .07) !important;
  color: var(--system-accent) !important;
}

.genside-system-reader__rail nav a {
  min-height: 36px !important;
  padding: 8px 11px !important;
  border-radius: 7px !important;
  color: #aab8bc !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
}

.genside-system-reader__rail nav a:hover,
.genside-system-reader__rail nav a[aria-current="page"],
.genside-system-reader__rail nav a.is-active {
  background: rgba(var(--system-accent-rgb), .1) !important;
  color: var(--system-accent) !important;
}

.genside-system-reader__content {
  width: 100% !important;
  padding: clamp(34px, 5vw, 76px) clamp(30px, 6vw, 96px) 96px !important;
  background: radial-gradient(circle at 92% 3%, rgba(var(--system-accent-rgb), .055), transparent 32%) !important;
}

.genside-system-reader__article {
  width: 100% !important;
  max-width: 1120px !important;
  margin: 0 !important;
}

.genside-system-reader__status {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 18px !important;
}

.genside-system-reader__status span {
  padding: 5px 8px !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 999px !important;
  background: rgba(var(--system-accent-rgb), .05) !important;
  color: var(--system-accent) !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

.genside-system-reader__article h1 {
  max-width: 980px !important;
  margin-bottom: 32px !important;
  color: #f2f7f7 !important;
  font-family: "Sora", "Source Sans 3", system-ui, sans-serif !important;
  font-size: clamp(40px, 5vw, 68px) !important;
  line-height: .99 !important;
  letter-spacing: -.055em !important;
}

.genside-system-reader__article h2 {
  margin-top: 52px !important;
  padding: 0 0 12px !important;
  border-bottom: 1px solid var(--system-border) !important;
  color: var(--system-accent) !important;
  font-size: clamp(24px, 2.2vw, 32px) !important;
  line-height: 1.14 !important;
}

.genside-system-reader__article h3 {
  margin-top: 36px !important;
  color: #edf4f4 !important;
  font-size: 20px !important;
}

.genside-system-reader__article p,
.genside-system-reader__article li {
  max-width: 960px !important;
  color: #d5dddd !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
}

.genside-system-reader__article table {
  width: 100% !important;
  margin: 22px 0 30px !important;
  overflow: hidden !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 11px !important;
  background: var(--system-panel) !important;
}

.genside-system-reader__article th {
  background: rgba(var(--system-accent-rgb), .08) !important;
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}

.genside-system-reader__article td,
.genside-system-reader__article th {
  padding: 13px 15px !important;
  border-color: rgba(255, 255, 255, .08) !important;
}

.genside-system-reader__article blockquote {
  margin: 26px 0 !important;
  padding: 17px 20px !important;
  border: 1px solid var(--system-border) !important;
  border-left: 3px solid var(--system-accent) !important;
  border-radius: 0 10px 10px 0 !important;
  background: rgba(var(--system-accent-rgb), .045) !important;
}

@media (max-width: 1240px) {
  .genside-system-module-group .branch-category-articles {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .genside-system-reader__rail {
    width: 300px !important;
    min-width: 300px !important;
  }
}

@media (max-width: 880px) {
  .genside-system-glance {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .genside-system-module-group .branch-category-articles {
    grid-template-columns: 1fr !important;
  }

  .genside-system-card {
    min-height: 128px !important;
  }

  .genside-system-hub-nav {
    top: 0 !important;
  }

  .genside-system-reader__content {
    padding: 34px 22px 70px !important;
  }
}

@media (max-width: 560px) {
  html.genside-system-hub-page .branch-hero > .relative {
    padding: 96px 20px 36px !important;
  }

  .genside-system-hub__layout {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  .genside-system-glance {
    grid-template-columns: 1fr 1fr !important;
  }

  .genside-system-glance > div {
    min-height: 80px !important;
    padding: 14px !important;
  }

  .genside-system-hub-nav__label {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .genside-system-card,
  .genside-system-hub-nav a {
    transition: none !important;
  }

  html {
    scroll-behavior: auto !important;
  }
}

/* Interface unifiée : un seul écran, aucun renvoi vers une page d'article. */
html.genside-system-single-page .branch-hero {
  min-height: 330px !important;
}

html.genside-system-single-page .branch-hero > .relative {
  min-height: 330px !important;
  padding-top: 108px !important;
  padding-bottom: 38px !important;
}

html.genside-system-single-page .branch-hero h1 {
  font-size: clamp(44px, 5.4vw, 76px) !important;
}

html.genside-system-single-page .branch-hero [data-genside-unified-action="true"] {
  border: 1px solid rgba(var(--system-accent-rgb), .5) !important;
  background-color: rgba(5, 13, 16, .9) !important;
  background-image: none !important;
  color: var(--system-accent) !important;
}

.genside-system-workbench-shell {
  display: block !important;
  max-width: 1840px !important;
  padding: 0 clamp(18px, 3vw, 48px) 90px !important;
}

.genside-system-index-state {
  display: grid !important;
  min-height: 260px !important;
  place-items: center !important;
}

.genside-system-index-state__loading,
.genside-system-index-state__error {
  display: grid !important;
  max-width: 520px !important;
  justify-items: center !important;
  gap: 10px !important;
  padding: 34px !important;
  color: #aebbbc !important;
  text-align: center !important;
}

.genside-system-index-state__error strong {
  color: #f3f7f7 !important;
  font-size: 20px !important;
}

.genside-system-index-state__error button {
  margin-top: 8px !important;
  padding: 10px 15px !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 8px !important;
  background: rgba(var(--system-accent-rgb), .08) !important;
  color: var(--system-accent) !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

.genside-system-workbench {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

.genside-system-workbench__mobile-controls {
  display: none !important;
}

.genside-system-workbench__categories {
  position: sticky !important;
  z-index: 35 !important;
  top: 66px !important;
  display: flex !important;
  gap: 4px !important;
  overflow-x: auto !important;
  width: 100% !important;
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--system-border) !important;
  background: rgba(8, 11, 13, .94) !important;
  scrollbar-width: none !important;
  backdrop-filter: blur(16px) saturate(130%) !important;
}

.genside-system-legal .genside-system-workbench__categories {
  background: rgba(9, 12, 11, .94) !important;
}

.genside-system-workbench__categories::-webkit-scrollbar {
  display: none !important;
}

/* Prevent the legacy branch overview from flashing before the one-page
   systems workbench is ready. The class is installed in <head> and removed
   as soon as the workbench is mounted. */
html.genside-system-preload .branch-page .branch-hero + * {
  min-height: 360px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* A fully mounted workbench must never remain locked by a stale preload
   class left by a cached script or a client-side re-render. */
html.genside-system-preload .branch-page .branch-hero + .genside-system-workbench-shell {
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

.site-header__nav a[data-genside-systems-link] {
  border-radius: 6px !important;
  transition:
    background-color 160ms ease,
    color 160ms ease,
    text-shadow 160ms ease !important;
}

.site-header__nav a[data-genside-systems-link]:hover,
.site-header__nav a[data-genside-systems-link]:focus-visible {
  background: rgba(255, 255, 255, .07) !important;
  text-shadow: 0 0 14px currentColor !important;
  outline: none !important;
}

/* Keep the embedded rule invisible until its own header/hero have been
   removed. This avoids a second navbar flashing during iframe startup. */
.genside-inline-rule-frame-shell:not(.is-loaded) {
  min-height: 760px !important;
  background:
    linear-gradient(
      100deg,
      rgba(255, 255, 255, .018) 20%,
      rgba(255, 255, 255, .05) 42%,
      rgba(255, 255, 255, .018) 64%
    ),
    #0b080c !important;
  background-size: 220% 100% !important;
  animation: genside-rule-loading 1.2s linear infinite !important;
}

.genside-inline-rule-frame {
  opacity: 0 !important;
  transition: opacity 160ms ease !important;
}

.genside-inline-rule-frame-shell.is-loaded .genside-inline-rule-frame {
  opacity: 1 !important;
}

@keyframes genside-rule-loading {
  from { background-position: 120% 0; }
  to { background-position: -120% 0; }
}

/* Regulation search results are shown in the page instead of being announced
   only to screen readers. */
.genside-regulation-search {
  position: relative !important;
  z-index: 90 !important;
}

.genside-regulation-search-results {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  right: 0 !important;
  left: 0 !important;
  overflow: hidden !important;
  max-height: min(440px, 58vh) !important;
  padding: 6px !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 12px !important;
  background: rgba(13, 10, 14, .985) !important;
  box-shadow: 0 22px 60px rgba(0, 0, 0, .44) !important;
  overflow-y: auto !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
}

.genside-regulation-search-results[hidden] {
  display: none !important;
}

.genside-regulation-search-results__summary {
  padding: 9px 11px 8px !important;
  color: rgba(255, 248, 245, .56) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.genside-regulation-search-results button {
  display: grid !important;
  width: 100% !important;
  min-height: 52px !important;
  gap: 3px !important;
  padding: 10px 12px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: #fff8f5 !important;
  cursor: pointer !important;
  text-align: left !important;
}

.genside-regulation-search-results button:hover,
.genside-regulation-search-results button:focus-visible {
  outline: none !important;
  background: color-mix(
    in srgb,
    var(--regulation-accent, #ff8a72) 12%,
    transparent
  ) !important;
}

.genside-regulation-search-results button strong {
  color: inherit !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.genside-regulation-search-results button span {
  color: var(--regulation-accent, #ff8a72) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
}

.genside-system-workbench__categories button {
  display: grid !important;
  grid-template-columns: auto minmax(max-content, 1fr) auto !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 42px !important;
  padding: 8px 12px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: #aab7ba !important;
  font-size: 12px !important;
  font-weight: 760 !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease !important;
}

.genside-system-workbench__categories button > span {
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: .08em !important;
}

.genside-system-workbench__categories button > b {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 20px !important;
  height: 20px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .055) !important;
  color: #879598 !important;
  font-size: 9px !important;
}

.genside-system-workbench__categories button:hover,
.genside-system-workbench__categories button:focus-visible,
.genside-system-workbench__categories button.is-active {
  border-color: rgba(var(--system-accent-rgb), .34) !important;
  background: rgba(var(--system-accent-rgb), .12) !important;
  color: #f4f8f8 !important;
  outline: none !important;
}

.genside-system-workbench__categories button:focus-visible,
.genside-system-workbench__module-list button:focus-visible,
.genside-system-inline__table:focus-visible,
.genside-system-index-state__error button:focus-visible {
  outline: 2px solid var(--system-accent) !important;
  outline-offset: 2px !important;
}

.genside-system-workbench__categories button.is-active > b {
  background: rgba(var(--system-accent-rgb), .14) !important;
  color: var(--system-accent) !important;
}

.genside-system-workbench__browser {
  display: grid !important;
  grid-template-columns: 320px minmax(0, 1fr) !important;
  min-height: 0 !important;
  margin-top: 22px !important;
  overflow: hidden !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 14px !important;
  background: var(--system-panel) !important;
}

.genside-system-workbench__modules {
  padding: 22px 14px !important;
  border-right: 1px solid var(--system-border) !important;
  background: rgba(4, 9, 11, .72) !important;
}

.genside-system-workbench__modules-head {
  padding: 0 8px 18px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}

.genside-system-workbench__modules-head > span {
  display: block !important;
  margin-bottom: 7px !important;
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}

.genside-system-workbench__modules-head h2 {
  margin: 0 !important;
  color: #eff5f5 !important;
  font-size: 21px !important;
  line-height: 1.12 !important;
}

.genside-system-workbench__modules-head p {
  margin: 9px 0 0 !important;
  color: var(--system-muted) !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.genside-system-workbench__module-list {
  display: grid !important;
  gap: 3px !important;
  padding-top: 12px !important;
}

.genside-system-workbench__module-list button {
  display: grid !important;
  grid-template-columns: 38px minmax(0, 1fr) 18px !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 8px 9px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: #b5c1c3 !important;
  text-align: left !important;
  cursor: pointer !important;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease !important;
}

.genside-system-workbench__module-list button:hover,
.genside-system-workbench__module-list button:focus-visible,
.genside-system-workbench__module-list button.is-active {
  border-color: rgba(var(--system-accent-rgb), .32) !important;
  background: rgba(var(--system-accent-rgb), .11) !important;
  color: #fff !important;
  outline: none !important;
}

.genside-system-workbench__module-list button.is-active {
  box-shadow: inset 2px 0 0 var(--system-accent) !important;
}

.genside-system-workbench__module-index {
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
}

.genside-system-workbench__module-title {
  font-size: 13px !important;
  font-weight: 720 !important;
  line-height: 1.22 !important;
}

.genside-system-workbench__module-arrow {
  color: #617174 !important;
  font-size: 15px !important;
}

.genside-system-workbench__module-list button.is-active .genside-system-workbench__module-arrow {
  color: var(--system-accent) !important;
}

.genside-system-inline-reader {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: clamp(28px, 4vw, 58px) clamp(24px, 5vw, 72px) 72px !important;
  background: radial-gradient(circle at 100% 0, rgba(var(--system-accent-rgb), .055), transparent 34%) !important;
}

.genside-system-inline__header {
  position: relative !important;
  margin-bottom: 34px !important;
  padding-bottom: 24px !important;
  border-bottom: 1px solid var(--system-border) !important;
}

.genside-system-inline__context {
  margin-bottom: 8px !important;
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

.genside-system-inline__header h2 {
  max-width: 920px !important;
  margin: 0 !important;
  color: #f3f8f8 !important;
  font-size: clamp(34px, 4.2vw, 58px) !important;
  line-height: .99 !important;
}

.genside-system-inline__kind {
  display: inline-flex !important;
  margin-top: 16px !important;
  padding: 5px 8px !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 999px !important;
  background: rgba(var(--system-accent-rgb), .055) !important;
  color: var(--system-muted) !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}

.genside-system-inline__content {
  max-width: 1040px !important;
}

.genside-system-inline__content h2,
.genside-system-inline__content h3,
.genside-system-inline__content h4 {
  margin: 44px 0 14px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--system-border) !important;
  color: var(--system-accent) !important;
  font-family: "Sora", "Source Sans 3", system-ui, sans-serif !important;
  font-size: clamp(22px, 2.4vw, 30px) !important;
  line-height: 1.15 !important;
}

.genside-system-inline__content h3,
.genside-system-inline__content h4 {
  margin-top: 32px !important;
  border-bottom: 0 !important;
  color: #eef4f4 !important;
  font-size: 19px !important;
}

.genside-system-inline__content p,
.genside-system-inline__content li {
  color: #d2dcdd !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
}

.genside-system-inline__content p {
  margin: 0 0 18px !important;
}

.genside-system-inline__content ul,
.genside-system-inline__content ol {
  display: grid !important;
  gap: 7px !important;
  margin: 13px 0 23px !important;
  padding-left: 22px !important;
}

.genside-system-inline__content strong {
  color: #fff !important;
}

.genside-system-inline__content code {
  padding: 2px 5px !important;
  border: 1px solid rgba(255, 255, 255, .09) !important;
  border-radius: 5px !important;
  background: rgba(255, 255, 255, .05) !important;
  color: var(--system-accent) !important;
}

.genside-system-inline__content a {
  color: var(--system-accent) !important;
  text-underline-offset: 3px !important;
}

.genside-system-inline__content a:hover {
  text-decoration-thickness: 2px !important;
}

.genside-system-inline__content a:focus-visible,
.genside-system-inline__action a:focus-visible,
.genside-system-section-nav button:focus-visible,
.genside-system-collapsible-section > summary:focus-visible,
.genside-system-workbench__mobile-controls select:focus-visible {
  outline: 2px solid var(--system-accent) !important;
  outline-offset: 3px !important;
}

.genside-system-section-nav {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin: 4px 0 26px !important;
  padding: 0 0 18px !important;
  border-bottom: 1px solid var(--system-border) !important;
}

.genside-system-section-nav button {
  min-height: 36px !important;
  padding: 7px 10px !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: #cbd5d6 !important;
  font: 750 12px/1.25 "Source Sans 3", system-ui, sans-serif !important;
  cursor: pointer !important;
  transition: background-color 150ms ease, border-color 150ms ease,
    color 150ms ease !important;
}

.genside-system-section-nav button:hover {
  border-color: rgba(var(--system-accent-rgb), .45) !important;
  background: rgba(var(--system-accent-rgb), .08) !important;
  color: #fff !important;
}

.genside-system-collapsible-section {
  margin: 0 !important;
  border-bottom: 1px solid var(--system-border) !important;
  scroll-margin-top: 150px !important;
}

.genside-system-collapsible-section:first-of-type {
  border-top: 1px solid var(--system-border) !important;
}

.genside-system-collapsible-section > summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 14px !important;
  min-height: 58px !important;
  padding: 13px 2px !important;
  color: #eef4f4 !important;
  font: 760 18px/1.25 "Sora", "Source Sans 3", system-ui, sans-serif !important;
  cursor: pointer !important;
  list-style: none !important;
}

.genside-system-collapsible-section > summary::-webkit-details-marker {
  display: none !important;
}

.genside-system-collapsible-section > summary::after {
  content: "+" !important;
  color: var(--system-accent) !important;
  font-size: 22px !important;
  font-weight: 500 !important;
}

.genside-system-collapsible-section[open] > summary::after {
  content: "−" !important;
}

.genside-system-collapsible-section__content {
  padding: 2px 0 25px !important;
}

.genside-system-inline__table {
  position: relative !important;
  width: 100% !important;
  margin: 20px 0 28px !important;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 10px !important;
  scrollbar-color: var(--system-accent) rgba(255, 255, 255, .06) !important;
}

.genside-system-inline__table table {
  width: 100% !important;
  min-width: 620px !important;
  border-collapse: collapse !important;
  background: rgba(5, 10, 12, .55) !important;
}

.genside-system-inline__table th,
.genside-system-inline__table td {
  padding: 12px 14px !important;
  border-right: 1px solid rgba(255, 255, 255, .07) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
  text-align: left !important;
  vertical-align: top !important;
}

.genside-system-inline__table th {
  background: rgba(var(--system-accent-rgb), .075) !important;
  color: var(--system-accent) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.genside-system-inline__table td {
  color: #d4dddd !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.genside-system-inline__content blockquote {
  margin: 23px 0 !important;
  padding: 16px 18px !important;
  border: 1px solid var(--system-border) !important;
  border-left: 3px solid var(--system-accent) !important;
  border-radius: 0 9px 9px 0 !important;
  background: rgba(var(--system-accent-rgb), .045) !important;
  color: #d9e1e2 !important;
}

.genside-system-inline__action a {
  display: inline-flex !important;
  min-height: 40px !important;
  align-items: center !important;
  padding: 8px 13px !important;
  border: 1px solid var(--system-border) !important;
  border-radius: 8px !important;
  background: rgba(var(--system-accent-rgb), .08) !important;
  color: var(--system-accent) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

.genside-system-inline__loading,
.genside-system-inline__error {
  display: flex !important;
  min-height: 220px !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  color: var(--system-muted) !important;
}

.genside-system-inline__loading::before {
  content: "" !important;
  width: 24px !important;
  height: 24px !important;
  margin-bottom: 7px !important;
  border: 2px solid rgba(var(--system-accent-rgb), .2) !important;
  border-top-color: var(--system-accent) !important;
  border-radius: 50% !important;
  animation: genside-system-spin .8s linear infinite !important;
}

@keyframes genside-system-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .genside-system-inline__loading::before {
    animation: none !important;
  }
}

@media (max-width: 980px) {
  .genside-system-workbench__browser {
    grid-template-columns: 270px minmax(0, 1fr) !important;
  }

  .genside-system-inline-reader {
    padding-right: 28px !important;
    padding-left: 28px !important;
  }
}

@media (max-width: 760px) {
  .genside-system-workbench__mobile-controls {
    display: grid !important;
    gap: 12px !important;
    padding: 18px 0 4px !important;
  }

  .genside-system-workbench__mobile-controls label {
    display: grid !important;
    gap: 7px !important;
  }

  .genside-system-workbench__mobile-controls label > span {
    color: var(--system-accent) !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
  }

  .genside-system-workbench__mobile-controls select {
    width: 100% !important;
    min-height: 48px !important;
    padding: 10px 42px 10px 13px !important;
    border: 1px solid var(--system-border) !important;
    border-radius: 9px !important;
    background: var(--system-panel-strong) !important;
    color: #f4f8f8 !important;
    font: 750 14px/1.25 "Source Sans 3", system-ui, sans-serif !important;
  }

  .genside-system-workbench__categories {
    display: none !important;
  }

  .genside-system-workbench__browser {
    display: block !important;
    min-height: 0 !important;
  }

  .genside-system-workbench__modules {
    display: none !important;
  }

  .genside-system-workbench__modules-head p {
    display: none !important;
  }

  .genside-system-workbench__module-list {
    display: none !important;
  }

  .genside-system-inline-reader {
    padding: 30px 20px 58px !important;
  }

  .genside-system-inline__table.is-scrollable::before {
    content: "↔ Faites défiler pour voir toutes les colonnes" !important;
    position: sticky !important;
    z-index: 2 !important;
    left: 8px !important;
    display: inline-block !important;
    margin: 8px 8px 6px !important;
    padding: 5px 8px !important;
    border: 1px solid rgba(var(--system-accent-rgb), .28) !important;
    border-radius: 6px !important;
    background: var(--system-panel-strong) !important;
    color: var(--system-accent) !important;
    font-size: 11px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
    pointer-events: none !important;
    transition: opacity 150ms ease !important;
  }

  .genside-system-inline__table.is-scrollable.has-scrolled::before {
    opacity: 0 !important;
  }

  .genside-system-section-nav {
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    padding-bottom: 12px !important;
    scrollbar-width: thin !important;
  }

  .genside-system-section-nav button {
    flex: 0 0 auto !important;
    max-width: min(78vw, 320px) !important;
    text-align: left !important;
  }
}

/* Navigation desktop compacte : aucun bouton ne doit sortir de l’écran sur
   les largeurs intermédiaires. */
@media (min-width: 1101px) and (max-width: 1380px) {
  .site-header__inner {
    gap: 12px !important;
    padding-right: 14px !important;
    padding-left: 14px !important;
  }

  .site-header__nav {
    gap: 12px !important;
  }

  .site-header__nav a {
    font-size: 11px !important;
  }

  .site-header__actions {
    gap: 6px !important;
  }

  .site-header .header-search {
    min-width: 126px !important;
  }

  .site-header .header-search kbd {
    display: none !important;
  }

  .site-header .header-account {
    padding-right: 9px !important;
    padding-left: 9px !important;
  }
}

/* Les familles de systèmes restent toutes visibles : elles se réorganisent
   sur plusieurs lignes au lieu de former un carrousel coupé. */
@media (min-width: 761px) {
  .genside-system-workbench__categories {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    overflow: visible !important;
    gap: 5px !important;
  }

  .genside-system-workbench__categories button {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    width: 100% !important;
    white-space: normal !important;
    text-align: left !important;
  }
}
