
.ui-language-picker { position: relative; }
.ui-language-toggle {
  min-width: 54px;
  justify-content: center;
  gap: var(--space-2);
}
.ui-language-toggle:hover,
.ui-language-toggle:focus,
.ui-language-toggle:active,
.ui-language-toggle.show {
  background: var(--color-dark-soft);
  color: var(--white);
  border-color: transparent;
}
.ui-language-toggle.ui-utility-badge--outline::after { color: currentColor; }
.ui-language-toggle::after {
  content: 'expand_more';
  font-family: 'Material Symbols Outlined';
  font-size: var(--fs-base);
  color: var(--on-dark-muted);
  border: 0;
  margin-left: 0;
  vertical-align: -3px;
  transition: transform 0.2s ease;
}
.ui-language-toggle[aria-expanded="true"]::after {
  transform: rotate(180deg);
}
.ui-menu-actions-menu,
.ui-publication-menu,
.ui-fil-filtrer-menu,
.ui-language-menu {
  width: 150px;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--white);
  box-shadow: var(--shadow-md);
}
.ui-menu-actions-menu,
.ui-publication-menu { width: 250px; }
.ui-menu-actions-menu--large { width: 320px; }
.ui-language-item {
  width: 100%;
  padding: var(--space-3) var(--space-3);
  border: 0;
  border-radius: var(--radius-sm);
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  display: flex;
  color: var(--color-dark);
  background: transparent;
  font: var(--fw-semibold) var(--fs-caption) / var(--lh-base) var(--font-base);
  text-align: left;
  transition: color 0.2s ease, background 0.2s ease;
}
.ui-language-item strong {
  color: var(--color-primary);
  font-size: var(--fs-caption);
  letter-spacing: 0.1em;
}
.ui-language-item:hover,
.ui-language-item:focus-visible,
.ui-language-item.is-active {
  color: var(--color-dark);
  background: var(--surface-douce);
}
.ui-language-item.is-active::before {
  content: '';
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-primary);
}
.ui-language-item.is-active span { margin-right: auto; }
.ui-header-cta {
  align-items: center;
  gap: var(--space-2);
  color: var(--white);
  background: var(--color-dark-soft);
  height: 40px;
  border: 1px solid var(--color-dark-soft);
  border-radius: var(--radius-pill);
  padding: 0 var(--space-3);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  display: inline-flex;
  transition: background-color 0.2s ease;
}
.ui-header-cta:hover { background: var(--color-dark-soft); color: var(--white); }
.ui-header-cta svg { flex-shrink: 0; }@media (max-width: 560px) {
  .ui-header-cta-label { display: none; }
  .ui-header-cta { gap: var(--space-2); padding: 0 var(--space-3); }
}
.ui-carte {
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--space-3);
  display: flex;
  flex-direction: column;
  position: relative;
}
.ui-carte .ui-card-title { margin-bottom: var(--space-2); }
.ui-carte p {
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}
.ui-carte p + p { margin-top: 1.75em; }
.ui-carte > a {
  color: var(--color-primary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  display: inline-flex;
  align-self: flex-start;
  margin-top: auto;
  padding-top: var(--space-4);
  transition: color 0.2s ease, transform 0.2s ease;
}
.ui-carte > a:hover {
  color: var(--color-primary-hover);
  transform: translateX(2px);
}
.ui-carte--numerotee {
  min-height: 230px;
}
.ui-carte--numerotee .ui-card-title { color: var(--color-titre); }
.ui-testimonial-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 240px;
  margin: 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  position: relative;
}
.ui-testimonial-quote {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  color: var(--color-dark-soft);
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-style: italic;
  font-weight: var(--fw-medium);
  line-height: 1.4;
}
.ui-testimonial-quote p { margin: 0; line-height: inherit; }
.ui-testimonial-name {
  padding-top: var(--space-3);
  text-align: center;
  color: var(--color-primary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
}
@media (max-width: 560px) {
  .ui-testimonial-card { padding: var(--space-4) var(--space-4); }
  .ui-testimonial-quote { font-size: var(--fs-lead); }
}
.ui-showcase-lead {
  padding: var(--space-4) var(--space-4);
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--white) 6%, transparent);
  box-shadow: inset 0 1px color-mix(in srgb, var(--white) 6%, transparent);
  backdrop-filter: blur(5px);
}
.ui-showcase-lead .ui-text-link { font-size: inherit; }
.ui-article-card {
  border: 1px solid var(--border);
  background: var(--surface-card);
  border-radius: var(--radius-sm);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  height: 100%;
}
.ui-article-card--featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.ui-article-art {
  height: 220px;
  color: var(--color-dark);
  background: var(--surface-appuyee);
  place-items: center;
  overflow: hidden;
  display: grid;
}
.ui-article-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ui-article-art a {
  display: block;
  width: 100%;
  height: 100%;
}
.ui-article-card--featured .ui-article-art {
  height: 100%;
  min-height: 300px;
}
.ui-article-art--alt { color: var(--color-primary); background: var(--surface-appuyee); }
.ui-article-content {
  padding: var(--space-4);
  flex: 1;
  display: flex;
  flex-direction: column;
}
.ui-article-card--featured .ui-article-content { padding: var(--space-4); }
.ui-article-content > a {
  margin-top: auto;
  align-self: flex-start;
  color: var(--color-primary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  display: inline-flex;
  transition: color 0.2s ease, transform 0.2s ease;
}
.ui-article-content > a:hover {
  color: var(--color-primary-hover);
  transform: translateX(2px);
}
.ui-article-kicker {
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: var(--space-3) 0;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  display: block;
}
.ui-article-content .ui-card-title { margin-bottom: var(--space-3); }
.ui-article-content > p { font-size: var(--fs-fixe); }
.ui-article-content .ui-card-title a { color: inherit; text-decoration: none; transition: color 0.2s ease; }
.ui-article-content .ui-card-title a:hover { color: var(--color-primary-hover); }
@media (max-width: 560px) {
  .ui-article-card--featured { display: block; }
  .ui-article-card--featured .ui-article-art {
    height: 220px;
    min-height: 0;
    margin-bottom: var(--space-4);
  }
}
.ui-info-dialog {
  width: min(560px, calc(100% - var(--space-5)));
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--color-dark);
  background: var(--white);
  box-shadow: var(--shadow-md);
}
.ui-info-dialog::backdrop { background: color-mix(in srgb, var(--shadow-color) 40%, transparent); backdrop-filter: blur(3px); }
.ui-info-dialog h2 {
  padding-right: var(--space-5);
  margin-bottom: var(--space-3);
  font: var(--fw-medium) var(--fs-h4) / var(--lh-heading) var(--font-display);
}
.ui-info-dialog p + p { margin-top: var(--space-3); }
.ui-steps-panel {
  padding: var(--space-4);
  border: 1px solid var(--border-on-dark-strong);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--white) 6%, transparent);
  box-shadow: inset 0 1px color-mix(in srgb, var(--white) 12%, transparent), var(--shadow-photo);
  backdrop-filter: blur(9px);
}
.ui-steps-panel-label {
  margin-bottom: var(--space-4);
  color: var(--on-dark-muted);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ui-steps-panel ul {
  margin: 0 0 var(--space-4);
  list-style: none;
  padding: 0;
}
.ui-steps-panel li {
  min-height: 52px;
  border-bottom: 1px solid color-mix(in srgb, var(--white) 12%, transparent);
  align-items: center;
  gap: var(--space-3);
  display: flex;
}
.ui-steps-panel li:first-child {
  border-top: 1px solid color-mix(in srgb, var(--white) 12%, transparent);
}
.ui-steps-panel li > span {
  color: var(--on-dark-muted);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
}
.ui-steps-panel li strong {
  color: var(--white);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.ui-faq-list {
  --bs-accordion-color: var(--text);
  --bs-accordion-bg: var(--white);
  --bs-accordion-border-color: var(--border);
  --bs-accordion-border-radius: var(--radius-sm);
  --bs-accordion-btn-padding-y: var(--space-3);
  --bs-accordion-btn-padding-x: 1.25rem;
  --bs-accordion-btn-color: var(--text);
  --bs-accordion-btn-bg: var(--white);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem var(--focus-ring);
  --bs-accordion-active-color: var(--color-primary);
  --bs-accordion-active-bg: var(--surface-douce);
  --bs-accordion-body-padding-y: var(--space-3);
  --bs-accordion-body-padding-x: 1.25rem;
}
.ui-faq-list .accordion-button::after {
  content: 'expand_more';
  font-family: 'Material Symbols Outlined';
  font-size: var(--fs-lead);
  line-height: 1;
  width: auto;
  height: auto;
  background-image: none;
  color: var(--text-muted);
}
.ui-faq-list .accordion-button:not(.collapsed)::after {
  background-image: none;
  color: var(--color-primary);
}
.ui-faq-body {
  color: var(--text-muted);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
}
.ui-modal-content {
  position: relative;
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--color-dark);
  background: var(--white);
  box-shadow: var(--shadow-md);
}
.ui-modal-content .ui-close-button {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
}
.ui-modal-title {
  padding-right: var(--space-5);
  margin-bottom: var(--space-3);
  font: var(--fw-medium) var(--fs-h4) / var(--lh-heading) var(--font-display);
}
.ui-modal-body p + p { margin-top: var(--space-3); }
.ui-pagination {
  --bs-pagination-color: var(--color-dark);
  --bs-pagination-bg: var(--white);
  --bs-pagination-border-color: var(--border);
  --bs-pagination-border-radius: var(--radius-sm);
  --bs-pagination-hover-color: var(--white);
  --bs-pagination-hover-bg: var(--color-dark-soft);
  --bs-pagination-hover-border-color: var(--color-dark-soft);
  --bs-pagination-focus-color: var(--color-dark);
  --bs-pagination-focus-bg: var(--border);
  --bs-pagination-focus-box-shadow: none;
  --bs-pagination-active-color: var(--white);
  --bs-pagination-active-bg: var(--color-dark);
  --bs-pagination-active-border-color: var(--color-dark);
  --bs-pagination-disabled-bg: var(--surface-douce);
  --bs-pagination-font-weight: var(--fw-semibold);
}
.ui-stepper-list {
  display: flex;
  align-items: center;
  min-height: 68px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.ui-stepper-step {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex: 0 0 auto;
}
.ui-stepper-step + .ui-stepper-step {
  flex: 1 1 auto;
}
.ui-stepper-step + .ui-stepper-step::before {
  content: '';
  flex: 1 1 auto;
  min-width: 20px;
  height: 1px;
  margin: 0 var(--space-3);
  background: var(--border);
}
.ui-stepper-step--done::before,
.ui-stepper-step--current::before { background: var(--color-dark); }
.ui-stepper-marker {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--white);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  line-height: 1;
}
.ui-stepper-step--done .ui-stepper-marker {
  border-color: transparent;
  background: var(--color-dark);
  color: var(--white);
}
.ui-stepper-step--current .ui-stepper-marker {
  border-color: transparent;
  background: var(--color-primary);
  color: var(--white);
}
.ui-stepper-label {
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
  text-decoration: none;
}
.ui-stepper-step--done .ui-stepper-label { color: var(--color-dark); }
.ui-stepper-step--current .ui-stepper-label { color: var(--color-primary); font-weight: var(--fw-bold); }
a.ui-stepper-label:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 640px) {
  .ui-stepper-label { display: none; }
  .ui-stepper-step--current .ui-stepper-label { display: inline; }
  .ui-stepper-step + .ui-stepper-step::before { margin: 0 var(--space-3); }
}
@media (max-width: 960px) {
  .ui-stepper--serre .ui-stepper-label { display: none; }
  .ui-stepper--serre .ui-stepper-step--current .ui-stepper-label { display: inline; }
  .ui-stepper--serre .ui-stepper-step + .ui-stepper-step::before { margin: 0 var(--space-3); }
}
@media (max-width: 560px) {
  .ui-stepper--serre .ui-stepper-step { gap: var(--space-2); }
  .ui-stepper--serre .ui-stepper-marker { width: 24px; height: 24px; }
  .ui-stepper--serre .ui-stepper-step + .ui-stepper-step::before {
    min-width: 8px;
    margin: 0 var(--space-2);
  }
  .ui-stepper--serre .ui-stepper-label { letter-spacing: 0.04em; }
}
.ui-calendar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.ui-calendar-month { flex: 0 0 auto; }
.ui-calendar-caption {
  margin-bottom: var(--space-3);
  color: var(--color-dark);
  font: var(--fw-medium) var(--fs-h5) / var(--lh-heading) var(--font-display);
}
.ui-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, var(--control-h));
  align-items: start;
  gap: var(--space-1);
}
.ui-calendar-weekday {
  display: grid;
  place-items: center;
  height: var(--space-4);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
}
.ui-calendar-day {
  display: grid;
  place-items: center;
  width: var(--control-h);
  height: var(--control-h);
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--white);
  color: var(--color-dark);
  font-family: var(--font-base);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  font-variant-numeric: tabular-nums;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ui-calendar-day:hover:not(:disabled) {
  border-color: var(--color-dark-soft);
  background: var(--color-dark-soft);
  color: var(--white);
}
.ui-calendar-day:disabled {
  border-color: var(--border);
  background: var(--surface-douce);
  color: var(--text-muted);
  cursor: not-allowed;
}
.ui-calendar-day.is-full {
  border-color: var(--color-danger);
  background: var(--danger-subtle);
  color: var(--color-danger);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.ui-calendar-day.is-selected,
.ui-calendar-day.is-selected:hover {
  border-color: transparent;
  background: var(--color-primary);
  color: var(--white);
  box-shadow: var(--shadow-md);
}
@media (max-width: 560px) {
  .ui-calendar { gap: var(--space-4); }
  .ui-calendar-month { flex: 1 1 100%; }
}
.ui-field-intitule { margin-top: calc(var(--space-3) + var(--space-1)); }
.ui-field-grid > .ui-field-suite { margin-top: 0; }
.ui-field-grid {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.25rem;
}
.ui-field .ui-form-label { margin-bottom: var(--space-2); }
.ui-field .ui-form-control { width: 100%; }
.ui-field .ui-form-text { margin: var(--space-2) 0 0; }
.ui-field .form-check {
  padding-left: 0;
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  min-height: 44px;
  margin: 0;
}
.ui-field .form-check-input {
  float: none;
  flex: 0 0 auto;
  margin: 2px 0 0;
  width: 20px;
  height: 20px;
}
.ui-field .form-switch .form-check-input {
  width: 36px;
  border-radius: var(--radius-pill);
}
.ui-field .form-check-label {
  color: var(--color-dark);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: 1.5;
}
.ui-field .form-check-label strong { font-weight: var(--fw-bold); }
.ui-groupe-carte {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.ui-groupe-titre a::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
}
.ui-groupe-carte:has(.ui-groupe-titre a):hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.ui-groupe-carte:has(.ui-groupe-titre a:focus-visible) {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}
.ui-groupe-titre a:focus-visible { outline: none; }
@media (prefers-reduced-motion: reduce) {
  .ui-groupe-carte { transition: box-shadow 0.2s ease; }
  .ui-groupe-carte:has(.ui-groupe-titre a):hover { transform: none; }
}
.ui-groupe-photo {
  position: relative;
}
.ui-groupe-photo > img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.ui-groupe-lieu {
  position: absolute;
  inset-block-start: var(--space-3);
  inset-inline-start: var(--space-3);
}
.ui-groupe-corps {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: var(--space-4);
}
.ui-groupe-titre {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-h5);
  font-weight: var(--fw-bold);
  line-height: var(--lh-heading);
  color: var(--color-titre);
  font-family: var(--font-titre);
}
.ui-groupe-titre a {
  color: inherit;
  text-decoration: none;
}
.ui-groupe-carte:hover .ui-groupe-titre a,
.ui-groupe-titre a:focus-visible { color: var(--color-primary); }
.ui-groupe-texte {
  margin: 0 0 var(--space-4);
  color: var(--text-muted);
  font-size: var(--fs-fixe);
}
.ui-groupe-corps > .ui-groupe-texte:last-of-type { margin-bottom: auto; }
.ui-groupe-pied {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: var(--carte-pied-h);
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}
.ui-groupe-acces {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  white-space: nowrap;
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-groupe-acces .material-symbols-outlined { font-size: var(--icon-md); }
.ui-groupe-membres {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}
.ui-groupe-membres > span { display: inline-flex; }
.ui-groupe-membres img {
  width: 30px;
  height: 30px;
  margin-left: calc(var(--space-2) * -1);
  border: 3px solid var(--surface-card);
  border-radius: var(--radius-photo);
  object-fit: cover;
}
.ui-groupe-membres img:first-child { margin-left: 0; }
.ui-groupe-compteur {
  margin-left: var(--space-1);
}
.ui-groupe-membres:has(img) { gap: 0; }
.ui-groupe-membres:has(img) .ui-groupe-compteur {
  min-width: 30px;
  height: 30px;
  padding-inline: var(--space-2);
  margin-left: calc(var(--space-2) * -1);
  border: 3px solid var(--surface-card);
  white-space: nowrap;
}
.ui-search-bar {
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
}
.ui-search-row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.5rem;
  align-items: end;
}
.ui-search-label {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-dark);
}
.ui-search-controls {
  display: flex;
  gap: var(--space-2);
}
.ui-search-controls > .ui-form-select {
  flex: 1 1 0;
  min-width: 0;
}
.ui-search-submit {
  width: 100%;
  white-space: nowrap;
}
@media (max-width: 575px) {
  .ui-search-bar { padding: var(--space-4); }
}
.ui-list-group {
  --bs-list-group-color: var(--text);
  --bs-list-group-bg: var(--white);
  --bs-list-group-border-color: var(--border);
  --bs-list-group-border-radius: var(--radius-sm);
  --bs-list-group-item-padding-y: var(--space-2);
  --bs-list-group-item-padding-x: var(--space-3);
  --bs-list-group-action-hover-bg: var(--surface-douce);
  --bs-list-group-active-color: var(--white);
  --bs-list-group-active-bg: var(--color-primary);
  --bs-list-group-active-border-color: var(--color-primary);
}
.ui-nav-tabs {
  --bs-nav-tabs-border-color: var(--border);
  --bs-nav-tabs-border-radius: var(--radius-sm);
  --bs-nav-tabs-link-hover-border-color: var(--surface-appuyee) var(--surface-appuyee) var(--border);
  --bs-nav-tabs-link-active-color: var(--color-dark);
  --bs-nav-tabs-link-active-bg: var(--white);
  --bs-nav-tabs-link-active-border-color: var(--border) var(--border) var(--white);
  --bs-nav-link-color: var(--text-muted);
  --bs-nav-link-hover-color: var(--color-dark);
  --bs-nav-link-font-size: var(--fs-base);
}
.ui-nav-pills {
  --bs-nav-pills-border-radius: var(--radius-sm);
  --bs-nav-pills-link-active-color: var(--white);
  --bs-nav-pills-link-active-bg: var(--color-primary);
  --bs-nav-link-color: var(--text-muted);
  --bs-nav-link-hover-color: var(--color-dark);
  --bs-nav-link-font-size: var(--fs-base);
}
.ui-toast {
  --bs-toast-bg: var(--white);
  --bs-toast-border-color: var(--border);
  --bs-toast-border-radius: var(--radius-sm);
  --bs-toast-header-bg: var(--surface-douce);
  --bs-toast-header-color: var(--color-dark);
  --bs-toast-color: var(--text-muted);
  --bs-toast-font-size: var(--fs-sm);
  --bs-toast-padding-y: var(--space-2);
  --bs-toast-padding-x: var(--space-3);
  --bs-toast-box-shadow: var(--shadow-md);
}
.ui-side-nav {
  flex-wrap: nowrap;
  align-items: stretch;
  margin-left: 0;
  gap: 1px;
}
.ui-side-nav .nav-link,
.ui-membre-onglet,
.ui-membre-sous-nav-lien {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
  font-weight: var(--fw-normal);
  color: var(--text);
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.ui-side-nav .nav-link:after { content: none; }
.ui-side-nav .nav-link:hover,
.ui-side-nav .nav-link:focus,
.ui-membre-onglet:hover,
.ui-membre-onglet:focus-visible,
.ui-membre-sous-nav-lien:hover,
.ui-membre-sous-nav-lien:focus-visible { background: var(--teinte-neutre); color: var(--color-dark-soft); text-decoration: none; }
.ui-side-nav .nav-link.active,
.ui-membre-onglet.is-current,
.ui-membre-onglet.is-current:hover,
.ui-membre-sous-nav-lien.is-current {
  background: var(--teinte-neutre);
  color: var(--color-dark-soft);
  font-weight: var(--fw-semibold);
}
.ui-side-nav .ui-menu-actions-item,
.ui-side-nav .ui-publication-menu-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}
.ui-side-nav .ui-menu-actions-item > .material-symbols-outlined,
.ui-side-nav .ui-publication-menu-item > .material-symbols-outlined {
  font-size: var(--icon-md);
  color: var(--color-primary);
}
.ui-side-nav .ui-menu-actions-item--danger,
.ui-side-nav .ui-menu-actions-item--danger > .material-symbols-outlined,
.ui-side-nav .ui-publication-menu-item--danger,
.ui-side-nav .ui-publication-menu-item--danger > .material-symbols-outlined {
  color: var(--color-danger);
}
.ui-side-nav .ui-side-nav-toggle {
  justify-content: space-between;
  align-items: center;
  background: none;
  text-align: left;
  border: 0;
  width: 100%;
  font: inherit;
  display: flex;
}
.ui-side-nav .ui-side-nav-toggle::after {
  content: 'expand_more';
  font-family: 'Material Symbols Outlined';
  font-size: var(--fs-lead);
  line-height: 1;
  transition: transform 0.2s ease;
}
.ui-side-nav .ui-side-nav-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.ui-side-nav-sub-list {
  flex-direction: column;
  margin-left: var(--space-3);
  padding-top: 1px;
  gap: 1px;
  display: flex;
}
.ui-side-nav-sub-list .nav-link { font-size: var(--fs-sm); }
.ui-side-nav--filled .nav-link:hover,
.ui-side-nav--filled .nav-link:focus,
.ui-side-nav--filled .nav-link.active { background: var(--border); color: var(--color-dark-soft); }
.ui-article-grid {
  --bs-gutter-x: 1.25rem;
  --bs-gutter-y: 1.25rem;
}
.ui-article-grid + .ui-article-grid { margin-top: 0; }
@media (min-width: 576px) {
  .ui-article-grid + .ui-article-grid { margin-top: var(--space-4); }
}
@media (min-width: 992px) {
  .ui-article-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: var(--space-4);
    row-gap: var(--space-4);
    margin: 0;
  }
  .ui-article-grid > .ui-grid-item { padding: 0; width: auto; max-width: none; }
  .ui-article-grid > .ui-grid-item:nth-child(1) { grid-column: 1 / 7; grid-row: 1 / 3; }
  .ui-article-grid > .ui-grid-item:nth-child(2) { grid-column: 7 / 13; grid-row: 1; }
  .ui-article-grid > .ui-grid-item:nth-child(3) { grid-column: 7 / 13; grid-row: 2; }
  .ui-article-grid > .ui-grid-item .ui-article-card:not(.ui-article-card--featured) {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    column-gap: var(--space-4);
    height: 100%;
  }
  .ui-article-grid > .ui-grid-item .ui-article-card:not(.ui-article-card--featured) .ui-article-art { grid-column: 1 / 4; margin-right: calc(var(--space-4) * -1); height: 100%; min-height: 0; }
  .ui-article-grid > .ui-grid-item .ui-article-card:not(.ui-article-card--featured) .ui-article-content { grid-column: 4 / 7; }
  .ui-article-grid--quad > .ui-grid-item:nth-child(n) { grid-column: span 6; grid-row: auto; }
}
@media (min-width: 576px) and (max-width: 991.98px) {
  .ui-article-grid {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: var(--space-4);
    margin: 0;
  }
  .ui-article-grid > .ui-grid-item { padding: 0; width: auto; max-width: none; }
  .ui-article-grid > .ui-grid-item .ui-article-card {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: var(--space-4);
    height: auto;
  }
  .ui-article-grid > .ui-grid-item .ui-article-art { grid-column: 1 / 5; margin-right: calc(var(--space-4) * -1); height: 100%; min-height: 160px; }
  .ui-article-grid > .ui-grid-item .ui-article-content { grid-column: 5 / 13; }
}
.ui-profil {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
  transition: transform 0.25s ease;
}
.ui-profil:hover {
  transform: translateY(-6px);
}
.ui-profil-photo {
  position: relative;
  aspect-ratio: 1;
}
.ui-profil-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ui-profil-statut {
  position: absolute;
  top: 0.9375rem;
  left: 0.9375rem;
}
.ui-profil-diagnostic {
  position: absolute;
  right: var(--space-2);
  bottom: var(--space-2);
  left: var(--space-2);
  z-index: 1;
  margin: 0;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--color-dark) 70%, transparent);
  color: var(--white);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-base);
  pointer-events: none;
}
.ui-profil-statut > span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-success);
}
.ui-profil-statut--hors-ligne > span {
  background: var(--color-danger);
}
.ui-profil-actions {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  display: flex;
  gap: var(--space-2);
}
.ui-profil-passe {
  margin-right: auto;
}
.ui-profil-passe,
.ui-profil-favori,
.ui-profil-like,
.ui-profil-message {
  display: grid;
  place-items: center;
  width: var(--control-h-sm);
  height: var(--control-h-sm);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--white);
  color: var(--text-muted);
  cursor: pointer;
  box-shadow: var(--shadow-md);
}
.ui-profil-like {
  color: var(--color-primary);
}
.ui-profil-favori[aria-pressed="true"],
.ui-profil-like[aria-pressed="true"] {
  color: var(--white);
}
.ui-profil-favori[aria-pressed="true"] {
  background: var(--text-muted);
}
.ui-profil-like[aria-pressed="true"] {
  background: var(--color-primary);
}
.ui-profil-favori[aria-pressed="true"] .material-symbols-outlined,
.ui-profil-like[aria-pressed="true"] .material-symbols-outlined {
  font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 20;
}
.ui-profil-passe .material-symbols-outlined,
.ui-profil-favori .material-symbols-outlined,
.ui-profil-like .material-symbols-outlined,
.ui-profil-message .material-symbols-outlined {
  font-size: var(--icon-md);
}
.ui-profil-corps {
  position: relative;
  padding: var(--space-4) var(--space-4) var(--space-4);
}
.ui-profil-corps .ui-card-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.ui-profil-corps :is(button, .ui-profil-form, .ui-profil-glisse, [data-bs-toggle="tooltip"]) {
  position: relative;
  z-index: 2;
}
.ui-profil-photo-lien {
  position: absolute;
  inset: 0;
}
.ui-profil-titre {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}
.ui-profil-titre .ui-card-title {
  margin: 0;
  letter-spacing: -0.025em;
}
.ui-profil-scores {
  position: absolute;
  top: 0.9375rem;
  right: 0.9375rem;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1);
}
.ui-profil-score {  }
.ui-profil-score--elle {
  color: var(--genre-elle);
  background: var(--genre-elle-voile);
}
.ui-profil-score--lui {
  color: var(--genre-lui);
  background: var(--genre-lui-voile);
}
.ui-profil-corps > p,
.ui-profil-entete > p {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  margin: var(--space-2) 0 var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-profil-corps > p .material-symbols-outlined,
.ui-profil-entete > p .material-symbols-outlined {
  font-size: var(--icon-sm);
}
.ui-profil-demande {
  position: absolute;
  top: 0.9375rem;
  left: 0.9375rem;
  z-index: 1;
}
.ui-profil-demande + .ui-profil-demande { top: 3.25rem; }
.ui-profil:not(.ui-profil--compacte) .ui-profil-demande + .ui-profil-demande + .ui-profil-statut { top: 5.5625rem; }
.ui-profil-demande + .ui-profil-statut { top: 3.25rem; }
.ui-profil-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.ui-profil-tags > span,
.ui-profil-tags > a {
  padding: var(--space-2) var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: 600;
}
.ui-profil--compacte .ui-profil-corps {
  padding: var(--space-4) var(--space-3) var(--space-4);
}
.ui-profil--compacte .ui-profil-titre .ui-card-title {
  font-size: var(--fs-base);
}
.ui-profil--compacte .ui-profil-corps > p {
  margin: var(--space-1) 0 0;
}
.ui-profil-menu {
  position: absolute;
  top: 0.9375rem;
  right: 0.9375rem;
  z-index: 2;
}
.ui-profil-match {
  position: absolute;
  bottom: 0.9375rem;
  left: 0.9375rem;
  z-index: 1;
  margin: 0;
  box-shadow: var(--shadow-md);
}
.ui-profil--compacte {
  overflow: visible;
}
.ui-profil--compacte .ui-profil-photo {
  overflow: hidden;
  border-radius: var(--radius) var(--radius) 0 0;
}
.ui-profil--compacte .ui-profil-photo:has(> .ui-profil-menu) { overflow: visible; }
.ui-profil--compacte .ui-profil-photo:has(> .ui-profil-menu) > img {
  border-radius: var(--radius) var(--radius) 0 0;
}
.ui-profil--compacte:has(.ui-menu-actions-menu.show) { z-index: 5; }
.ui-profil--compacte .ui-profil-statut {
  top: auto;
  bottom: 0.9375rem;
}
.ui-profil--compacte .ui-profil-envoye--coin + .ui-profil-statut { bottom: 3.25rem; }
.ui-profil-mini {
  position: relative;
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--color-dark) 6%, transparent);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-md);
}
.ui-profil-mini--vous {
  border-color: var(--color-primary);
}
.ui-profil-mini-marque {
  position: absolute;
  z-index: 2;
  top: 0.625rem;
  left: 0.625rem;
  box-shadow: var(--shadow-md);
}
.ui-profil-mini > img {
  display: block;
  width: calc(100% + 4px);
  margin: -2px -2px 0;
  height: 145px;
  object-fit: cover;
}
.ui-profil-mini-corps {
  padding: var(--space-2) var(--space-3) var(--space-2);
}
.ui-profil-mini-titre {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
}
.ui-profil-mini-titre strong {
  font-size: var(--fs-base);
}
.ui-profil-mini-titre span {
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-profil-mini-titre .ui-profil-mini-score {
  padding: 0.0625rem var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--color-brand-pink-soft);
  color: var(--color-brand-pink-ink);
  font-size: var(--fs-caption);
  font-weight: 550;
}
.ui-profil-mini-note {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  margin: var(--space-2) 0 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-profil-mini-note .material-symbols-outlined {
  color: var(--color-success);
  font-size: var(--icon-sm);
}
.ui-selection-mini {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.5rem;
}
.ui-profil-mini .ui-profil-scores { top: var(--space-2); right: var(--space-2); }
.ui-selection-mini > [class*="col-"] > .ui-profil-mini {
  height: 100%;
}
.ui-selection-mini > [class*="col-"]:nth-child(odd) .ui-profil-mini { transform: rotate(-2deg); }
.ui-selection-mini > [class*="col-"]:nth-child(even) .ui-profil-mini { transform: rotate(2deg); }
.ui-evenement-carte {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.ui-evenement-titre a::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
}
.ui-evenement-communaute a {
  position: relative;
  z-index: 2;
}
.ui-evenement-carte:has(.ui-evenement-titre a):hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.ui-evenement-carte:has(.ui-evenement-titre a:focus-visible) {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}
.ui-evenement-titre a:focus-visible { outline: none; }
@media (prefers-reduced-motion: reduce) {
  .ui-evenement-carte { transition: box-shadow 0.2s ease; }
  .ui-evenement-carte:has(.ui-evenement-titre a):hover { transform: none; }
}
.ui-evenement-photo {
  position: relative;
}
.ui-evenement-photo > img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.ui-evenement-date {
  position: absolute;
  inset-block-end: var(--space-3);
  inset-inline-start: var(--space-3);
  display: grid;
  place-content: center;
  min-width: 56px;
  padding: var(--space-2) var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--surface-card);
  color: var(--color-brand-pink-ink);
  text-align: center;
  line-height: 1.1;
}
.ui-evenement-date b {
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ui-evenement-date strong { font-size: var(--fs-h5); }
.ui-evenement-date i {
  font-size: var(--fs-caption);
  font-style: normal;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ui-evenement-lieu {
  position: absolute;
  inset-block-start: var(--space-3);
  inset-inline-start: var(--space-3);
}
.ui-evenement-corps {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: var(--space-4);
}
.ui-evenement-heure {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  color: var(--color-brand-pink-ink);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
}
.ui-evenement-heure .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-evenement-heure > span:not(.material-symbols-outlined):not(.visually-hidden) {
  margin-inline: var(--space-1);
  opacity: 0.6;
}
.ui-evenement-titre {
  margin: 0 0 auto;
  font-size: var(--fs-h5);
  font-weight: var(--fw-bold);
  line-height: var(--lh-heading);
  color: var(--color-titre);
  font-family: var(--font-titre);
}
.ui-evenement-titre a {
  color: inherit;
  text-decoration: none;
}
.ui-evenement-carte:hover .ui-evenement-titre a,
.ui-evenement-titre a:focus-visible { color: var(--color-primary); }
.ui-evenement-communaute {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: var(--carte-pied-h);
  margin: var(--space-4) 0 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-evenement-communaute > .material-symbols-outlined { flex: 0 0 auto; }
.ui-evenement-communaute .material-symbols-outlined {
  font-size: var(--icon-md);
  color: var(--color-primary);
}
.ui-evenement-communaute a,
.ui-evenement-communaute strong {
  overflow: hidden;
  color: var(--text);
  font-weight: var(--fw-semibold);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-evenement-communaute a:hover,
.ui-evenement-communaute a:focus-visible { color: var(--color-primary); }
.ui-filtres {
  padding: var(--space-4);
  border-radius: var(--radius);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
}
.ui-filtres-row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 1.25rem;
  align-items: end;
}
@media (min-width: 1200px) {
  .ui-filtres-groupe--long { flex-grow: 1.3; }
}
.ui-filtres-label {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.ui-filtres-controles {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.ui-filtres-controles > * { flex: 1 1 0; min-width: 8rem; }
.ui-filtres-recherche {
  position: relative;
  display: block;
}
.ui-filtres-recherche .material-symbols-outlined {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0.875rem;
  transform: translateY(-50%);
  color: var(--text-muted);
  font-size: var(--icon-md);
  pointer-events: none;
}
.ui-filtres-recherche .ui-form-control {
  width: 100%;
  padding-inline-start: var(--space-5);
}
.ui-filtres-date { flex: 1 1 0; min-width: 8rem; }
.ui-filtres-date-bouton {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  text-align: start;
  color: var(--text);
  font-size: var(--fs-sm);
  cursor: pointer;
}
.ui-filtres-date-bouton .material-symbols-outlined {
  color: var(--text-muted);
  font-size: var(--icon-md);
}
.ui-filtres-calendrier {
  padding: var(--space-3);
  border: 0;
  border-radius: var(--radius-sm);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
}
.ui-filtres-action {
  display: flex;
  justify-content: flex-end;
  margin-inline-start: auto;
}
.ui-filtres-action .ui-btn { width: 100%; }
@media (min-width: 768px) {
  .ui-filtres-action .ui-btn { width: auto; }
}
@media (max-width: 560px) {
  .ui-filtres { padding: var(--space-3); }
  .ui-filtres-controles > *,
  .ui-filtres-date { flex-basis: 100%; }
}
.ui-lieu {
  position: relative;
  display: block;
}
.ui-lieu-champ {
  width: 100%;
  padding-inline-end: var(--space-5);
  cursor: pointer;
}
.ui-lieu-fleche {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 0.75rem;
  transform: translateY(-50%);
  color: var(--text-muted);
  font-size: var(--icon-md);
  pointer-events: none;
}
.ui-lieu-liste {
  position: absolute;
  z-index: 20;
  inset-block-start: calc(100% + var(--space-1));
  inset-inline: 0;
  max-height: 17rem;
  overflow-y: auto;
  margin: 0;
  padding: var(--space-1);
  border-radius: var(--radius-sm);
  background: var(--surface-card);
  box-shadow: var(--shadow-md);
  list-style: none;
}
.ui-lieu-option {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
}
.ui-lieu-option--ville {
  padding-inline-start: var(--space-4);
  color: var(--text-muted);
  font-weight: var(--fw-normal);
}
.ui-lieu-option[data-lieu-distant] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-3);
  padding-inline-start: var(--space-3);
  color: var(--text);
}
.ui-lieu-aide {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-lieu-aide .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-lieu-detail {
  color: var(--text-muted);
  font-size: var(--fs-caption);
  white-space: nowrap;
}
.ui-lieu-option:hover,
.ui-lieu-option.is-active {
  background: var(--surface-douce);
  color: var(--color-dark);
}
.ui-lieu-option[aria-selected="true"] {
  color: var(--color-primary);
}
.ui-lieu-vide {
  padding: var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  text-align: center;
}
.ui-publication {
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
  padding: var(--space-4) var(--space-4) var(--space-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.ui-publication-galerie {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-3);
}
.ui-publication-galerie-ouvre {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  transform: rotate(var(--inclinaison, 0deg));
  transition: transform 0.25s ease;
  cursor: zoom-in;
}
.ui-publication-galerie-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-md);
  display: block;
}
.ui-publication-galerie-reste {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--color-dark) 55%, transparent);
  color: var(--white);
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
}
.ui-publication-galerie-ouvre--pleine { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.ui-publication-galerie-ouvre--vedette { grid-column: span 7; }
.ui-publication-galerie-ouvre--cote { grid-column: span 5; aspect-ratio: 1; }
.ui-publication-galerie-ouvre--ample { grid-column: span 8; grid-row: span 2; }
.ui-publication-galerie-ouvre--moyenne { grid-column: span 4; aspect-ratio: 1; }
.ui-publication-galerie-ouvre:nth-child(5n+1) { --inclinaison: -1.6deg; }
.ui-publication-galerie-ouvre:nth-child(5n+2) { --inclinaison: 1.1deg; }
.ui-publication-galerie-ouvre:nth-child(5n+3) { --inclinaison: -0.7deg; }
.ui-publication-galerie-ouvre:nth-child(5n+4) { --inclinaison: 1.8deg; }
.ui-publication-galerie-ouvre:nth-child(5n+5) { --inclinaison: -1.2deg; }
.ui-publication-galerie-ouvre.ui-publication-galerie-ouvre--pleine,
.ui-publication-galerie-ouvre.ui-publication-galerie-ouvre--ample,
.ui-publication-galerie-ouvre.ui-publication-galerie-ouvre--vedette { --inclinaison: -0.6deg; }
.ui-publication--photos { --cadre-billet: 6px; }
@media (max-width: 767px) {
  .ui-publication--photos { --cadre-billet: 3px; }
}
.ui-publication--photos .ui-publication-galerie-ouvre {
  border: var(--cadre-billet) solid var(--surface-appuyee);
  background: var(--surface-appuyee);
}
.ui-publication--photos .ui-publication-galerie-image,
.ui-publication--photos .ui-publication-galerie-reste {
  border-radius: calc(var(--radius-md) - var(--cadre-billet));
}
.ui-publication.ui-publication--vitrine {
  background: none;
  border: 0;
  padding: 0;
  gap: 0;
}
.ui-publication--vitrine { box-shadow: none; }
.ui-publication--vitrine > .ui-publication-entete {
  margin-bottom: var(--space-3);
  padding-inline: var(--space-4);
  border-inline: 1px solid transparent;
}
.ui-publication--vitrine > .ui-publication-galerie,
.ui-publication--vitrine > .ui-publication-jointe {
  margin: 0 0 var(--space-3);
  width: 100%;
}
.ui-publication.ui-publication--vitrine > .ui-publication-jointe {
  margin-bottom: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: var(--surface-card);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
}
.ui-publication--vitrine > .ui-publication-jointe .ui-evenement-carte,
.ui-publication--vitrine > .ui-publication-jointe .ui-evenement-carte:hover {
  border-radius: 0;
  box-shadow: none;
  transform: none;
}
.ui-publication--vitrine .ui-evenement-corps {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: var(--space-3);
  padding-bottom: var(--space-3);
}
.ui-publication--vitrine .ui-evenement-heure { grid-area: 1 / 1; margin: 0; }
.ui-publication--vitrine .ui-evenement-communaute {
  grid-area: 1 / 2;
  justify-self: end;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
}
.ui-publication--vitrine .ui-evenement-titre {
  grid-area: 2 / 1 / 3 / 3;
  margin-top: var(--space-2);
}
.ui-publication--vitrine > .ui-publication-jointe > .ui-publication-legende {
  margin: 0;
  padding: 0 var(--space-4) var(--space-3);
}
.ui-publication-legende > p:last-child { margin-bottom: 0; }
.ui-publication--vitrine > .ui-publication-jointe > .ui-publication-compteurs {
  padding: 0 var(--space-4) var(--space-3);
}
.ui-publication--vitrine > .ui-publication-jointe > .ui-publication-actions {
  padding: var(--space-1) var(--space-4) var(--space-2);
}
.ui-publication.ui-publication--sortie {
  overflow: hidden;
  background: var(--surface-card);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
}
.ui-publication--sortie > .ui-publication-entete {
  margin-bottom: 0;
  padding-block: var(--space-4) var(--space-3);
}
.ui-publication.ui-publication--sortie > .ui-publication-jointe {
  border-radius: 0;
  box-shadow: none;
}
@media (max-width: 560px) {
  .ui-publication--sortie > .ui-publication-entete { padding-top: var(--space-3); }
  .ui-publication--vitrine > .ui-publication-jointe > .ui-publication-legende,
  .ui-publication--vitrine > .ui-publication-jointe > .ui-publication-compteurs,
  .ui-publication--vitrine > .ui-publication-jointe > .ui-publication-actions { padding-inline: var(--space-3); }
}
.ui-publication--vitrine > :is(.ui-publication-galerie, .ui-publication-jointe) ~ * {
  margin: 0;
  padding-inline: var(--space-4);
  background: var(--surface-card);
  border-inline: 1px solid var(--border);
}
.ui-publication--vitrine > :is(.ui-publication-galerie, .ui-publication-jointe) + * {
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}
.ui-publication--vitrine > .ui-publication-texte,
.ui-publication--vitrine > .ui-publication-compteurs { padding-bottom: var(--space-3); }
.ui-publication--vitrine > :last-child {
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
}
@media (max-width: 560px) {
  .ui-publication--vitrine > .ui-publication-entete,
  .ui-publication--vitrine > :is(.ui-publication-galerie, .ui-publication-jointe) ~ * { padding-inline: var(--space-3); }
}
.ui-publication-galerie-ouvre:hover,
.ui-publication-galerie-ouvre:focus-visible {
  transform: rotate(0) translateY(-3px);
}
.ui-publication-galerie-ouvre:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .ui-publication-galerie-ouvre { transition: none; }
}
.ui-publication-entete {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
}
.ui-publication-portee {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
.ui-publication-portee::before {
  content: '·';
  margin-inline-end: var(--space-1);
}
.ui-publication-portee > .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-publication-gerer {
  margin-inline-start: auto;
  flex: 0 0 auto;
}
.ui-menu-actions-bouton::after,
.ui-publication-gerer-bouton::after { display: none; }
.ui-menu-actions {
  margin-inline-start: auto;
  align-self: center;
}
.ui-menu-actions-bouton,
.ui-publication-gerer-bouton {
  background: var(--white);
  border-color: var(--border);
  color: var(--text-muted);
}
.ui-publication-gerer-bouton {
  opacity: 0;
  transition: opacity 0.15s ease, background 0.2s ease, color 0.2s ease;
}
.ui-publication:hover .ui-publication-gerer-bouton,
.ui-publication-gerer-bouton:focus-visible,
.ui-publication-gerer-bouton[aria-expanded="true"] {
  opacity: 1;
}
.ui-menu-actions-bouton > .material-symbols-outlined,
.ui-publication-gerer-bouton > .material-symbols-outlined { font-size: var(--icon-md); }
.ui-publication-avatar {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-publication-identite { flex: 1; min-width: 0; }
.ui-publication-auteur {
  margin: 0;
  color: var(--text);
  font-weight: 700;
  line-height: 1.3;
}
.ui-publication-auteur span {
  color: var(--text-muted);
  font-weight: 400;
}
.ui-publication-source {
  color: var(--color-primary);
  font-weight: 700;
}
.ui-publication-source:hover { text-decoration: underline; }
.ui-publication-meta {
  margin: 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-publication-auteur .ui-publication-match {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-inline-start: var(--space-2);
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-brand-pink-ink) 12%, var(--white));
  color: var(--color-brand-pink-ink);
  font-weight: 400;
}
.ui-publication-auteur .ui-publication-match--contact {
  background: color-mix(in srgb, var(--color-primary) 12%, var(--white));
  color: var(--color-primary);
}
.ui-publication-auteur:has(.ui-publication-match) {
  display: flex;
  align-items: center;
}
.ui-publication-auteur .ui-publication-match > .material-symbols-outlined {
  color: inherit;
  font-size: var(--icon-sm);
  font-variation-settings: 'FILL' 1;
}
.ui-publication-etiquette { flex-shrink: 0; }
.ui-publication-etiquette--profil {
  background: color-mix(in srgb, var(--color-titre) 12%, var(--white));
  color: var(--color-titre);
}
.ui-publication-etiquette--match {
  background: var(--color-brand-pink-soft);
  color: var(--color-brand-pink-ink);
}
.ui-publication-etiquette--match .material-symbols-outlined {
  font-variation-settings: 'FILL' 1, 'wght' 500;
}
.ui-publication-texte {
  margin: 0;
  color: var(--text);
  line-height: var(--lh-base);
}
.ui-publication-signature {
  margin: var(--space-3) 0 calc(var(--space-4) + var(--space-1) * 1.5);
  color: var(--color-titre);
  font-weight: var(--fw-semibold);
}
.ui-lien-interdit {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--color-danger);
  font-weight: var(--fw-semibold);
}
.ui-lien-interdit .material-symbols-outlined { font-size: var(--icon-sm); }
p.ui-lien-interdit { margin: var(--space-2) 0 0; font-size: var(--fs-sm); }
.ui-publication-texte a {
  color: var(--color-titre);
  font-weight: var(--fw-semibold);
  text-decoration: underline;
}
.ui-publication-visuel,
.ui-publication-jointe {
  margin-inline: calc(var(--space-4) * -1);
  width: calc(100% + var(--space-4) * 2);
}
.ui-publication-visuel {
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.ui-publication-jointe {
  margin-inline: 0;
  width: 100%;
}
.ui-publication-compteurs {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-publication-compteurs .material-symbols-outlined {
  color: var(--color-brand-pink);
  font-size: var(--icon-sm);
  font-variation-settings: 'FILL' 1;
}
.ui-publication-compteurs--prive { color: var(--text-muted); }
.ui-publication-compteurs--prive .material-symbols-outlined {
  color: var(--text-muted);
  font-size: var(--icon-sm);
  font-variation-settings: 'FILL' 0;
}
.ui-publication-compteurs--ouvre {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--color-titre);
  font-family: inherit;
  text-align: start;
  cursor: pointer;
}
.ui-publication-compteurs--ouvre .material-symbols-outlined { color: var(--color-titre); }
.ui-publication-compteurs--ouvre { transition: color 0.2s ease; }
.ui-publication-compteurs--ouvre:hover,
.ui-publication-compteurs--ouvre:focus-visible,
.ui-publication-compteurs--ouvre:hover .material-symbols-outlined,
.ui-publication-compteurs--ouvre:focus-visible .material-symbols-outlined {
  color: var(--color-primary-hover);
}
.ui-publication-commente {
  display: inline-flex;
  align-items: center;
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  text-align: start;
}
button.ui-publication-commente { cursor: pointer; transition: color 0.2s ease; }
button.ui-publication-commente:hover,
button.ui-publication-commente:focus-visible {
  color: var(--color-titre);
  text-decoration: underline;
}
.ui-publication-avatars {
  display: inline-flex;
  flex-shrink: 0;
  margin-inline-end: 0.125rem;
}
.ui-publication-avatars img {
  width: 22px;
  height: 22px;
  border-radius: var(--radius-photo);
  border: 2px solid var(--surface-card);
  object-fit: cover;
}
.ui-publication-avatars img + img { margin-inline-start: calc(var(--space-2) * -1); }
.ui-publication-actions {
  display: flex;
  border-top: 1px solid var(--border);
  padding-top: var(--space-1);
}
.ui-publication-action {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  min-height: var(--control-h-sm);
  padding: 0 var(--space-2);
  color: var(--text-muted);
  font-family: inherit;
  font-size: var(--fs-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.ui-publication-action .material-symbols-outlined { font-size: var(--icon-md); }
.ui-publication-action:hover,
.ui-publication-action:focus-visible {
  background: var(--surface-douce);
  color: var(--color-titre);
}
.ui-publication-action.is-active,
.ui-publication-action.is-active:hover,
.ui-publication-action.is-active:focus-visible {
  color: var(--color-brand-pink-ink);
}
.ui-publication-action.is-active .material-symbols-outlined {
  font-variation-settings: 'FILL' 1;
}
.ui-publication-action--prive { color: var(--color-titre); }
.ui-publication-action--prive:hover,
.ui-publication-action--prive:focus-visible {
  background: color-mix(in srgb, var(--color-titre) 12%, var(--white));
  color: var(--color-primary-hover);
}
@media (max-width: 560px) {
  .ui-publication { padding: var(--space-3) var(--space-3) var(--space-2); }
  .ui-publication-visuel {
    margin-inline: calc(var(--space-3) * -1);
    width: calc(100% + var(--space-3) * 2);
  }
  .ui-publication-action { font-size: 0; gap: 0; }
  .ui-publication-action .material-symbols-outlined { font-size: var(--icon-md); }
}
.ui-discussion-dialog {
  max-width: 640px;
  max-height: 88vh;
}
.ui-discussion-content {
  border: 0;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.ui-discussion-entete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  border-bottom: 1px solid var(--border);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}
.ui-discussion-titre {
  margin: 0;
  color: var(--text);
  font-size: var(--fs-h5);
  font-weight: 700;
}
.ui-discussion-corps { padding: var(--space-4); }
.ui-discussion-billet { margin-bottom: var(--space-3); }
.ui-discussion-billet-entete {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.ui-discussion-billet-entete img {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-discussion-billet-entete > div { display: flex; flex-direction: column; }
.ui-discussion-entete > .ui-discussion-billet-entete { margin-bottom: 0; min-width: 0; }
.ui-discussion-billet-texte {
  margin: 0;
  color: var(--text);
  line-height: var(--lh-base);
}
.ui-discussion-billet-visuel {
  display: block;
  margin: var(--space-3) calc(var(--space-4) * -1) 0;
  width: calc(100% + var(--space-4) * 2);
  max-height: 380px;
  object-fit: cover;
}
.ui-discussion-compte {
  border-bottom: 1px solid var(--border);
  margin: 0 0 var(--space-3);
  padding-bottom: var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-sm);
}
.ui-discussion-fil,
.ui-discussion-reponses {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.ui-discussion-reponses {
  margin-top: var(--space-2);
  padding-inline-start: var(--space-3);
}
.ui-discussion-message {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
}
.ui-discussion-message > img {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-discussion-message > div { flex: 1; min-width: 0; }
.ui-discussion-bulle {
  width: fit-content;
  max-width: 100%;
  border-radius: var(--radius-md);
  background: var(--surface-douce);
  padding: var(--space-2) var(--space-3);
}
.ui-discussion-nom {
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1.3;
}
.ui-discussion-bulle p {
  margin: 0.125rem 0 0;
  color: var(--text);
  font-size: var(--fs-sm);
  line-height: 1.5;
}
.ui-discussion-meta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: var(--space-1) 0 0;
  padding-inline-start: var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-discussion-billet-entete .ui-discussion-meta { padding-inline-start: 0; }
.ui-discussion-lien {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--text-muted);
  font-family: inherit;
  font-size: var(--fs-caption);
  font-weight: 700;
  cursor: pointer;
}
.ui-discussion-lien:hover,
.ui-discussion-lien:focus-visible { color: var(--color-titre); text-decoration: underline; }
.ui-discussion-pied {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  border-top: 1px solid var(--border);
  background: var(--surface-card);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}
.ui-discussion-pied > img {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-discussion-champ {
  position: relative;
  flex: 1;
}
.ui-discussion-champ input {
  width: 100%;
  border-radius: var(--radius-pill);
  background: var(--surface-douce);
  padding-inline-end: var(--space-5);
}
.ui-discussion-champ:has(.ui-discussion-emoji) input { padding-inline-start: var(--space-5); }
.ui-discussion-emoji {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 0.25rem;
  transform: translateY(-50%);
  z-index: 1;
}
.ui-discussion-outils {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 0.25rem;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 0.125rem;
}
.ui-discussion-emoji .ui-icon-button,
.ui-discussion-emoji .ui-icon-button.show,
.ui-discussion-emoji .ui-icon-button:active,
.ui-discussion-emoji .ui-icon-button:focus {
  width: 34px;
  height: 34px;
  border: 0;
  background: transparent;
  color: var(--color-titre);
  box-shadow: none;
}
.ui-discussion-emoji .ui-icon-button:hover { background: var(--surface-douce); }
.ui-discussion-envoi {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--color-titre);
  cursor: pointer;
  transition: background 0.2s ease;
}
.ui-discussion-envoi:hover,
.ui-discussion-envoi:focus-visible { background: var(--surface-appuyee); }
@media (max-width: 560px) {
  .ui-discussion-dialog { max-height: 94vh; }
  .ui-discussion-corps,
  .ui-discussion-entete,
  .ui-discussion-pied { padding-inline: var(--space-3); }
  .ui-discussion-billet-visuel {
    margin-inline: calc(var(--space-3) * -1);
    width: calc(100% + var(--space-3) * 2);
  }
  .ui-discussion-reponses { padding-inline-start: var(--space-4); }
}
.ui-publication-jaime {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  transition: color 0.2s ease;
}
.ui-publication-jaime:hover,
.ui-publication-jaime:focus-visible {
  color: var(--color-titre);
}
.ui-jaime-dialog { max-width: 420px; max-height: 78vh; }
.ui-jaime-content {
  border: 0;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.ui-jaime-entete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  border-bottom: 1px solid var(--border);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}
.ui-jaime-titre {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  color: var(--text);
  font-size: var(--fs-h5);
  font-weight: 700;
}
.ui-jaime-titre .material-symbols-outlined {
  color: var(--color-brand-pink);
  font-size: var(--icon-md);
  font-variation-settings: 'FILL' 1;
}
.ui-jaime-corps { padding: var(--space-2) var(--space-4) var(--space-4); }
.ui-jaime-liste { list-style: none; margin: 0; padding: 0; }
.ui-jaime-personne {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-block: var(--space-2);
}
.ui-jaime-avatar {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-jaime-corps-texte { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ui-jaime-nom {
  color: var(--text);
  font-weight: 700;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-jaime-nom:hover { color: var(--color-titre); }
.ui-jaime-meta {
  color: var(--text-muted);
  font-size: var(--fs-sm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-jaime-action {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: transparent;
  padding: var(--space-2) var(--space-3);
  color: var(--color-titre);
  font-family: inherit;
  font-size: var(--fs-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.ui-jaime-action .material-symbols-outlined { font-size: var(--icon-md); }
.ui-jaime-action:hover,
.ui-jaime-action:focus-visible {
  background: var(--color-titre);
  border-color: var(--color-titre);
  color: var(--white);
}
@media (max-width: 560px) {
  .ui-jaime-entete,
  .ui-jaime-corps { padding-inline: var(--space-3); }
  .ui-jaime-action { font-size: 0; gap: 0; padding: var(--space-2); }
  .ui-jaime-action .material-symbols-outlined { font-size: var(--icon-md); }
}
.ui-criteres-dialog { max-width: 720px; max-height: 88vh; }
.ui-criteres-content {
  border: 0;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.ui-criteres--aere .ui-criteres-corps { padding: var(--space-3) var(--space-4) var(--space-4); }
.ui-criteres--aere .ui-criteres-entete,
.ui-criteres--aere .ui-criteres-pied { padding-inline: var(--space-4); }
.ui-criteres--aere .ui-criteres-grille {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ui-criteres--aere .ui-criteres-champ { padding: var(--space-4) 0; }
.ui-criteres--aere .ui-criteres-champ + .ui-criteres-champ { border-top: 1px solid var(--border); }
.ui-criteres--aere .ui-criteres-grille { flex-flow: row wrap; }
.ui-criteres--aere .ui-criteres-champ { flex: 1 1 100%; }
.ui-criteres--aere .ui-criteres-champ--demi { flex: 0 0 50%; min-width: 0; }
.ui-criteres--aere .ui-criteres-champ.ui-criteres-champ--etroit > .ui-form-select { max-width: 50%; }
.ui-criteres--aere .ui-criteres-champ--demi + .ui-criteres-champ--demi { padding-left: var(--space-4); }
.ui-criteres-champ-tete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.ui-criteres .ui-criteres-champ-nom {
  color: var(--color-titre);
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
}
.ui-criteres--aere .ui-criteres-cases { gap: var(--space-2); }
.ui-criteres--aere .ui-criteres-champ-tete .ui-criteres-important { margin: 0; }
.ui-criteres--aere .ui-criteres-champ > .ui-form-select { max-width: 360px; }
.ui-criteres--page .ui-criteres-content {
  display: flex;
  flex-direction: column;
  background: var(--surface-card);
  overflow: visible;
}
.ui-criteres--page .ui-criteres-pied {
  position: sticky;
  bottom: 0;
  z-index: 2;
  border-top: 1px solid var(--border);
  background: var(--surface-card);
}
.ui-criteres-retour { margin-inline-end: auto; }
.ui-criteres-entete,
.ui-criteres-pied {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}
.ui-criteres-entete {
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
}
.ui-criteres-titre {
  margin: 0;
  color: var(--text);
  font-size: var(--fs-h5);
  font-weight: 700;
}
.ui-criteres-corps { padding: var(--space-4); }
.ui-criteres-intro {
  margin: 0 0 var(--space-4);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}
.ui-criteres-groupe + .ui-criteres-groupe { border-top: 1px solid var(--border); }
.ui-criteres-groupe-tete { margin: 0; }
.ui-criteres-groupe-bouton {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  border: 0;
  background: transparent;
  padding: var(--space-3) 0;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.ui-criteres-groupe-titre {
  flex-shrink: 0;
  color: var(--color-titre);
  font-size: var(--fs-base);
  font-weight: 700;
  transition: color 0.2s ease;
}
.ui-criteres-groupe-bouton:hover .ui-criteres-groupe-titre,
.ui-criteres-groupe-bouton:focus-visible .ui-criteres-groupe-titre { color: var(--color-titre); }
.ui-criteres-groupe-titre { flex-shrink: 0; }
.ui-criteres-groupe-choix {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-criteres-groupe-bouton .ui-espace-important { flex-shrink: 0; }
.ui-criteres-groupe-bouton .ui-criteres-chevron { margin-inline-start: auto; }
.ui-criteres-groupe-choix + .ui-criteres-chevron,
.ui-espace-important + .ui-criteres-chevron { margin-inline-start: 0; }
.ui-criteres-resume {
  flex-shrink: 0;
  min-width: 1.375rem;
  border-radius: var(--radius-pill);
  background: var(--color-titre);
  padding: 0.0625rem var(--space-2);
  color: var(--white);
  font-size: var(--fs-caption);
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}
.ui-criteres-chevron {
  margin-inline-start: auto;
  flex-shrink: 0;
  color: var(--text-muted);
  font-size: var(--icon-lg);
  transition: transform 0.2s ease;
}
.ui-criteres-groupe-bouton[aria-expanded="true"] .ui-criteres-chevron { transform: rotate(180deg); }
.ui-criteres-groupe-corps { padding-bottom: var(--space-4); }
.ui-criteres-grille {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-3);
}
.ui-criteres-champ {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}
.ui-criteres-champ label {
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: 700;
}
.ui-criteres--ecrans:not(.is-edition) .ui-criteres-pied,
.ui-criteres--ecrans:not(.is-edition) .ui-criteres-precedent,
.ui-criteres--ecrans:not(.is-edition) .ui-criteres-groupe-corps,
.ui-criteres--ecrans.is-edition :is(.ui-criteres-intro, .ui-criteres-groupe:not(.is-ouvert), .ui-criteres-groupe-tete) { display: none; }
.ui-criteres--ecrans.is-edition .ui-criteres-groupe { border-top: 0; }
.ui-criteres--ecrans.is-edition .ui-criteres-groupe-corps { padding-bottom: 0; animation: ui-criteres-glisse 0.25s ease; }
@keyframes ui-criteres-glisse {
  from { opacity: 0; transform: translateX(100%); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ui-criteres--ecrans.is-edition .ui-criteres-groupe-corps { animation: none; }
}
.ui-criteres--ecrans .ui-criteres-corps { overflow-x: hidden; }
@media (min-width: 768px) {
  .ui-criteres--ecrans .ui-criteres-content { height: min(88vh, 40rem); }
}
.ui-criteres--ecrans .ui-criteres-groupe-bouton { padding: var(--space-3) 0; }
.ui-criteres-groupe-icone { flex-shrink: 0; color: var(--color-primary); font-size: var(--icon-lg); }
.ui-criteres-groupe-texte { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.ui-criteres-groupe-texte .ui-criteres-groupe-choix { flex: none; }
.ui-criteres-groupe-choix.is-vide { font-style: italic; }
.ui-criteres-modifier {
  flex-shrink: 0;
  border: 1px solid var(--color-titre);
  border-radius: var(--radius-pill);
  padding: var(--space-1) var(--space-3);
  color: var(--color-titre);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.ui-criteres-groupe-bouton:hover .ui-criteres-modifier { background: var(--color-titre); color: var(--white); }
.ui-criteres-precedent {
  display: grid;
  flex-shrink: 0;
  place-items: center;
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--color-titre);
}
.ui-criteres-precedent .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-criteres--ecrans .ui-criteres-titre { flex: 1; }
.ui-criteres--ecrans .ui-criteres-pied > [data-criteres-retour] { margin-inline-end: auto; }
.ui-criteres-pied {
  justify-content: flex-end;
  border-top: 1px solid var(--border);
  background: var(--surface-card);
}
@media (max-width: 767px) {
  .ui-criteres-entete,
  .ui-criteres-corps,
  .ui-criteres-pied,
  .ui-criteres--aere .ui-criteres-entete,
  .ui-criteres--aere .ui-criteres-corps,
  .ui-criteres--aere .ui-criteres-pied { padding-inline: var(--space-3); }
}
@media (max-width: 560px) {
  .ui-criteres-grille { grid-template-columns: minmax(0, 1fr); }
  .ui-criteres-pied .ui-btn { flex: 1 1 0; }
}
.ui-criteres-champ--cases {
  grid-column: 1 / -1;
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.ui-criteres-champ--cases legend {
  float: none;
  width: auto;
  margin-bottom: var(--space-2);
  padding: 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: 700;
}
.ui-criteres-champ .ui-criteres-important {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-2) 0 0;
  padding-left: 2.5em;
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: 600;
  cursor: pointer;
}
.ui-criteres-important .form-check-input { cursor: pointer; }
.ui-criteres-important:has(input:checked) { color: var(--color-titre); }
.ui-criteres-cases {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.ui-criteres-case input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.ui-criteres-case > span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface-card);
  padding: var(--space-2) var(--space-3);
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.ui-criteres-case > span .material-symbols-outlined {
  font-size: var(--icon-md);
  color: var(--text-muted);
  flex-shrink: 0;
}
.ui-criteres-case input:checked + span .material-symbols-outlined { color: inherit; }
.ui-criteres-case > span:hover {
  border-color: var(--color-titre);
  color: var(--color-titre);
}
.ui-criteres-case input:checked + span {
  background: var(--color-titre);
  border-color: var(--color-titre);
  color: var(--white);
}
.ui-criteres-case input:focus-visible + span {
  outline: 3px solid color-mix(in srgb, var(--color-titre) 40%, transparent);
  outline-offset: 2px;
}
.ui-confirmation .ui-modal-content,
.ui-confirmation-like .ui-modal-content {
  max-width: 420px;
  margin-inline: auto;
}
.ui-confirmation .ui-modal-title,
.ui-confirmation-like .ui-modal-title {
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--text-muted);
}
.ui-confirmation-texte {
  margin: var(--space-2) 0 var(--space-3);
  color: var(--text);
  line-height: var(--lh-base);
}
.ui-confirmation-question {
  margin: 0 0 var(--space-4);
  color: var(--color-titre);
  font-weight: 600;
}
.ui-confirmation-actions {
  flex-wrap: wrap;
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
}
.ui-msg {
  display: flex;
  align-items: flex-end;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.ui-msg--moi { justify-content: flex-end; }
.ui-msg-avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-msg-corps {
  display: flex;
  flex-direction: column;
  max-width: 84%;
  min-width: 0;
}
.ui-msg-ligne {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}
.ui-msg--moi .ui-msg-ligne { flex-direction: row-reverse; }
.ui-msg-bloc {
  position: relative;
  min-width: 0;
}
.ui-msg-bulle { min-width: 0; }
.ui-msg-photos {
  display: grid;
  gap: var(--space-1);
  width: min(16rem, 100%);
  margin-bottom: var(--space-1);
}
.ui-msg--moi .ui-msg-photos { margin-left: auto; }
.ui-msg-photos--plusieurs { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: end; }
.ui-msg-photos--plusieurs .ui-msg-photo:first-child:not(:nth-last-child(2)) { grid-row: span 2; }
.ui-msg-photo { position: relative; display: block; overflow: hidden; border: 0; border-radius: var(--radius-sm); background: none; padding: 0; cursor: zoom-in; }
.ui-msg-photo img { display: block; width: 100%; height: auto; border-radius: var(--radius-sm); }
.ui-msg-photos--plusieurs .ui-msg-photo img { aspect-ratio: 1; object-fit: cover; }
.ui-msg-photo[hidden] { display: none; }
.ui-msg-photo-reste {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--color-dark) 55%, transparent);
  color: var(--white);
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
}
.ui-msg-bloc:has(.ui-msg-reactions) .ui-msg-bulle { padding-bottom: var(--space-4); }
.ui-msg-cite {
  display: flex;
  flex-direction: column;
  max-width: 100%;
  margin-bottom: var(--space-1);
  border-inline-start: 3px solid var(--color-primary);
  border-radius: var(--radius-sm);
  background: var(--surface-douce);
  padding: var(--space-2) var(--space-2);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  line-height: 1.4;
  text-decoration: none;
}
.ui-msg-cite:hover { background: var(--surface-appuyee); }
.ui-msg-cite-auteur { color: var(--color-titre); font-weight: var(--fw-semibold); }
.ui-msg-cite-texte {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.ui-msg--moi .ui-msg-cite { align-self: flex-end; }
.ui-msg:target .ui-msg-bulle { outline: 2px solid var(--color-brand-pink-ink); outline-offset: 2px; }
.ui-msg-bulle {
  margin: 0;
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-3);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  overflow-wrap: anywhere;
}
@media (max-width: 767px) {
  .ui-msg-bulle { font-size: var(--fs-lead); }
}
.ui-msg--moi .ui-msg-bulle {
  background: var(--color-titre);
  color: var(--white);
  border-end-end-radius: 4px;
}
.ui-msg--lui .ui-msg-bulle {
  background: var(--surface-douce);
  color: var(--text);
  border-end-start-radius: 4px;
}
.ui-msg--moi .ui-msg-bulle--supprime,
.ui-msg--lui .ui-msg-bulle--supprime {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  border: 1px dashed var(--border);
  background: transparent;
  color: var(--text-muted);
  font-style: italic;
}
.ui-msg-bulle--supprime > .material-symbols-outlined { font-size: var(--icon-sm); font-style: normal; }
.ui-msg-meta {
  margin: var(--space-1) 0 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-msg--moi .ui-msg-meta { text-align: right; }
.ui-msg-reactions {
  position: absolute;
  bottom: -0.6875rem;
  inset-inline-end: 0.625rem;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin: 0;
}
.ui-msg--moi .ui-msg-reactions {
  inset-inline-end: auto;
  inset-inline-start: 0.625rem;
}
.ui-msg-reagir { display: contents; }
.ui-msg-reaction.is-moi {
  border-color: color-mix(in srgb, var(--color-brand-pink-ink) 40%, transparent);
  background: var(--color-brand-pink-soft);
  color: var(--color-brand-pink-ink);
}
.ui-msg-reaction {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface-card);
  padding: 0.125rem var(--space-2);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  line-height: 1.6;
}
.ui-msg-actions {
  display: flex;
  align-items: center;
  gap: 0.125rem;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.ui-msg:hover .ui-msg-actions,
.ui-msg:focus-within .ui-msg-actions { opacity: 1; }
.ui-msg-action {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text-muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.ui-msg-action:hover,
.ui-msg-action:focus-visible {
  background: var(--teinte-neutre);
  color: var(--color-titre);
}
.ui-msg-action > .material-symbols-outlined { font-size: var(--icon-md); }
.ui-msg-palette {
  gap: 0.125rem;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--space-1);
  box-shadow: var(--shadow-md);
}
.ui-msg-palette.show { display: grid; grid-template-columns: repeat(4, auto); }
.ui-msg-emoji {
  border: 0;
  border-radius: 50%;
  background: transparent;
  padding: var(--space-1);
  font-size: var(--icon-md);
  line-height: 1;
  transition: background 0.15s ease, transform 0.15s ease;
}
.ui-msg-emoji:hover,
.ui-msg-emoji:focus-visible {
  background: var(--teinte-neutre);
  transform: scale(1.15);
}
.ui-msg-jeux {
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
}
.ui-msg-jeux.show { display: flex; }
.dropdown:has(> .ui-msg-jeux.show) { z-index: 1060; }
.ui-msg-voile {
  position: fixed;
  inset: 0;
  z-index: 1055;
  background: var(--black);
  opacity: 0.5;
  animation: ui-msg-jeux-voile 0.15s linear both;
}
@keyframes ui-msg-jeux-voile { from { opacity: 0; } }
.ui-msg-jeu {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 15rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  padding: var(--space-2) var(--space-3);
  box-shadow: var(--shadow-md);
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  text-align: start;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ui-msg-jeu > .material-symbols-outlined { font-size: var(--icon-lg); color: var(--color-primary); transition: color 0.15s ease; }
.ui-msg-jeu:hover,
.ui-msg-jeu:focus-visible {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--on-dark);
}
.ui-msg-jeu:hover > .material-symbols-outlined,
.ui-msg-jeu:focus-visible > .material-symbols-outlined { color: var(--on-dark); }
.ui-msg-jeux.show > .ui-msg-jeu { animation: ui-msg-jeu-rebond 0.75s ease-out both; transform-origin: 1.5rem 100%; }
.ui-msg-jeux.show > .ui-msg-jeu:first-child { animation-delay: 0.09s; }
@keyframes ui-msg-jeu-rebond {
  0% { opacity: 0; transform: translateY(40px) scale(0.4); }
  40% { opacity: 1; transform: translateY(-14px) scale(1.06); }
  60% { transform: translateY(5px) scale(0.98); }
  78% { transform: translateY(-4px) scale(1.01); }
  90% { transform: translateY(1px); }
  100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ui-msg-jeux.show > .ui-msg-jeu,
  .ui-msg-voile { animation: none; }
}
.ui-defi > .ui-msg-corps { flex: 1; max-width: none; }
.ui-defi .ui-msg-bloc { flex: 1; }
.ui-defi-bulle {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
}
.ui-defi-titre {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  font-weight: var(--fw-semibold);
}
.ui-defi-titre > .material-symbols-outlined { font-size: var(--icon-md); color: var(--color-primary); }
.ui-defi-etat { margin: 0; color: var(--text-muted); }
.ui-defi-score {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2);
  margin: 0;
}
.ui-defi-score strong { font-size: var(--fs-lead); }
.ui-defi-score > span { white-space: nowrap; }
.ui-defi-score > .ui-defi-etat { margin-left: var(--space-1); }
@media (max-width: 767px) {
  .ui-defi-score > .ui-defi-etat { flex-basis: 100%; margin-left: 0; }
}
.ui-defi-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-self: stretch;
  gap: var(--space-2);
}
.ui-defi-actions form { margin: 0; }
.ui-conv {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  border-radius: var(--radius-sm);
  padding: var(--space-2);
  color: var(--text);
  text-decoration: none;
  transition: background 0.15s ease;
}
.ui-conv:hover,
.ui-conv:focus-visible,
.ui-conv.is-current { background: var(--teinte-neutre); }
.ui-conv.is-current .ui-conv-nom { font-weight: var(--fw-semibold); }
.ui-conv-avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-conv-corps {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  flex: 1;
  min-width: 0;
}
.ui-conv-tete {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
}
.ui-conv-nom {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-titre);
}
.ui-conv-heure {
  flex-shrink: 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-conv-extrait {
  color: var(--text-muted);
  font-size: var(--fs-caption);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-pastille-nouveaux {
  margin-inline-start: var(--space-2);
  vertical-align: 1px;
}
.ui-visionneuse-content {
  flex-direction: row;
  border: 0;
  border-radius: 0;
  background: var(--color-voile);
}
.ui-visionneuse-vue {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: var(--space-3);
}
.ui-visionneuse-barre {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-4) 0;
  margin-bottom: var(--space-3);
  flex-shrink: 0;
}
.ui-visionneuse-marque {
  width: 132px;
  height: auto;
  display: block;
}
.ui-visionneuse-compte {
  margin: 0;
  color: var(--on-dark-subtle);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.ui-visionneuse-supprimer { margin: 0; }
.ui-visionneuse-outils {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  justify-self: end;
}
.ui-visionneuse .ui-menu-actions-bouton,
.ui-visionneuse .ui-visionneuse-supprimer-bouton,
.ui-visionneuse .ui-close-button {
  border: 1px solid color-mix(in srgb, var(--white) 40%, transparent);
  background: transparent;
  color: var(--white);
}
.ui-visionneuse .ui-close-button::before { font-size: var(--icon-md); }
.ui-visionneuse .ui-menu-actions-bouton:hover,
.ui-visionneuse .ui-visionneuse-supprimer-bouton:hover,
.ui-visionneuse .ui-close-button:hover {
  background: color-mix(in srgb, var(--white) 12%, transparent);
  color: var(--white);
}
.ui-visionneuse-scene {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ui-visionneuse-image {
  max-width: 98%;
  max-height: 98%;
  border: var(--space-2) solid var(--white);
  background: var(--white);
  border-radius: var(--radius-sm);
  object-fit: contain;
  transform: rotate(var(--visionneuse-inclinaison, 0deg));
}
.ui-visionneuse-precedent,
.ui-visionneuse-suivant {
  position: absolute;
  z-index: 1;
  top: 50%;
  transform: translateY(-50%);
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-voile) 70%, transparent);
  color: var(--white);
  transition: background 0.15s ease;
}
.ui-visionneuse-precedent { inset-inline-start: var(--space-3); }
.ui-visionneuse-suivant { inset-inline-end: var(--space-3); }
.ui-visionneuse-precedent:hover,
.ui-visionneuse-suivant:hover,
.ui-visionneuse-precedent:focus-visible,
.ui-visionneuse-suivant:focus-visible { background: var(--color-voile); }
.ui-visionneuse-precedent > .material-symbols-outlined,
.ui-visionneuse-suivant > .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-visionneuse-panneau {
  display: flex;
  flex-direction: column;
  width: 380px;
  min-height: 0;
  padding: var(--space-3);
  gap: var(--space-3);
  flex-shrink: 0;
}
.ui-visionneuse-tete,
.ui-visionneuse-echanges {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-card);
}
.ui-visionneuse-echanges {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.ui-visionneuse-tete {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}
.ui-visionneuse-auteur {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.ui-visionneuse-auteur img {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-visionneuse-nom {
  margin: 0;
  color: var(--color-titre);
  font-weight: 600;
  line-height: 1.3;
}
.ui-visionneuse-texte {
  max-height: 40vh;
  overflow-y: auto;
  color: var(--text);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}
.ui-visionneuse-texte > :last-child { margin-bottom: 0; }
.ui-visionneuse-texte--brut {
  margin: 0;
  white-space: pre-line;
}
.ui-visionneuse-date {
  margin: 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-visionneuse-reactions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
}
.ui-visionneuse-fil {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  background-image:
    radial-gradient(ellipse 260px 220px at 106% 12%, var(--decor-disque) 0 99%, transparent 100%),
    linear-gradient(to bottom, color-mix(in srgb, var(--surface-douce) 50%, var(--white)), var(--surface-appuyee));
  background-repeat: no-repeat;
  padding: var(--space-4);
}
.ui-visionneuse .ui-discussion-fil > .ui-discussion-message > div > .ui-discussion-bulle {
  background: var(--surface-card);
}
@media (max-width: 900px) {
  .ui-visionneuse-content { flex-direction: column; }
  .ui-visionneuse-vue { flex: 1 1 auto; min-height: 45%; }
  .ui-visionneuse-image { border-width: var(--space-1); }
  .ui-visionneuse-panneau {
    width: auto;
    flex: 0 1 auto;
    max-height: 55%;
    overflow-y: auto;
    border-top: 0;
  }
  .ui-visionneuse-tete,
  .ui-visionneuse-fil { padding-inline: var(--space-3); }
  .ui-visionneuse-marque { display: none; }
  .ui-visionneuse-barre {
    grid-template-columns: 1fr auto;
    padding: var(--space-2) var(--space-2) 0;
  }
  .ui-visionneuse-compte { text-align: start; }
}
.ui-monprofil-galerie-case,
.ui-monprofil-zones .ui-monprofil-photo-case,
.ui-monprofil-photos .ui-monprofil-photo-case,
.ui-monprofil-vignette,
.ui-monprofil-avatar { cursor: zoom-in; }
.ui-pastilles {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.ui-pastilles-legende {
  float: none;
  width: auto;
  margin-bottom: var(--space-2);
  padding: 0;
  color: var(--color-titre);
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
}
.ui-pastilles-liste {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-2);
}
.ui-pastille input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.ui-pastille > span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface-card);
  padding: var(--space-2) var(--space-3);
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.ui-pastille > span .material-symbols-outlined {
  font-size: var(--icon-sm);
  color: var(--text-muted);
  flex-shrink: 0;
}
.ui-pastille input:checked + span .material-symbols-outlined { color: inherit; }
.ui-pastille > span:hover {
  border-color: var(--color-titre);
  color: var(--color-titre);
}
.ui-pastille input:checked + span {
  background: var(--color-titre);
  border-color: var(--color-titre);
  color: var(--white);
}
.ui-pastille input:focus-visible + span {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}
.ui-pastilles--cartes .ui-pastilles-liste {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: var(--space-2);
}
.ui-pastilles--cartes .ui-pastille { display: flex; }
.ui-pastilles--cartes .ui-pastille > span {
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  border-radius: var(--radius-md);
  padding: var(--space-3);
}
.ui-pastilles--cartes .ui-pastille > span .material-symbols-outlined { font-size: var(--icon-md); }
.ui-pastille-titre { font-size: var(--fs-base); }
.ui-pastille-texte { color: var(--text-muted); font-size: var(--fs-caption); font-weight: var(--fw-normal); }
.ui-pastille input:checked + span .ui-pastille-texte { color: inherit; }
.ui-pastilles-aide {
  margin: var(--space-2) 0 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-champ-photo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.ui-champ-photo-apercu {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 96px;
  height: 96px;
  border: 1px solid var(--border);
  border-radius: var(--radius-photo);
  background: var(--surface-douce);
  overflow: hidden;
}
.ui-champ-photo-apercu img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ui-champ-photo-apercu:not(.ui-champ-photo-apercu--plusieurs) { position: relative; }
.ui-champ-photo-apercu:not(.ui-champ-photo-apercu--plusieurs) > img { position: absolute; inset: 0; }
.ui-champ-photo-apercu--cadrable { width: 160px; height: 160px; cursor: grab; touch-action: none; }
.ui-champ-photo-apercu--cadrable:active { cursor: grabbing; }
.ui-champ-photo-apercu--cadrable img { pointer-events: none; user-select: none; }
.ui-champ-photo--couverture,
.ui-champ-photo--paysage { flex-direction: column; align-items: stretch; }
.ui-champ-photo--paysage .ui-champ-photo-apercu,
.ui-champ-photo--paysage .ui-champ-photo-apercu--cadrable { width: 100%; height: auto; aspect-ratio: 3 / 2; }
.ui-champ-photo--couverture .ui-champ-photo-apercu,
.ui-champ-photo--couverture .ui-champ-photo-apercu--cadrable { width: 100%; height: auto; aspect-ratio: 4 / 1; }
.ui-champ-photo-ajout {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  width: 100%;
  height: 100%;
  color: var(--color-primary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
}
.ui-champ-photo-ajout:hover { background: var(--teinte-neutre); }
.ui-champ-photo-apercu .ui-champ-photo-ajout .material-symbols-outlined { color: var(--color-primary); font-size: var(--icon-xl); }
.ui-champ-photo:has(.ui-champ-photo-ajout) .ui-champ-photo-bouton { display: none; }
.ui-champ-photo-apercu .material-symbols-outlined {
  font-size: var(--icon-2xl);
  color: var(--text-muted);
}
.ui-champ-photo-corps {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
}
.ui-champ-photo-bouton {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border: 1px solid var(--color-titre);
  border-radius: var(--radius-pill);
  background: var(--surface-card);
  padding: var(--space-2) var(--space-3);
  color: var(--color-titre);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.ui-champ-photo-bouton .material-symbols-outlined { font-size: var(--icon-md); }
.ui-champ-photo-bouton:hover {
  background: var(--color-titre);
  color: var(--white);
}
.ui-champ-photo-fichier {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.ui-champ-photo-fichier:focus-visible + .ui-champ-photo-bouton {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}
.ui-champ-photo-aide {
  margin: 0;
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
@media (max-width: 340px) {
  .ui-champ-photo {
    flex-direction: column;
    align-items: flex-start;
  }
}
.ui-edition-dialog { max-width: 720px; max-height: 88vh; }
.ui-edition-content {
  border: 0;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.ui-edition-entete,
.ui-edition-pied {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  flex-shrink: 0;
}
.ui-edition-entete {
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
}
.ui-edition-titre {
  margin: 0;
  color: var(--text);
  font-size: var(--fs-h5);
  font-weight: 700;
}
.ui-edition-corps { padding: var(--space-4) var(--space-4) var(--space-5); }
.ui-edition-intro {
  margin: 0 0 var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}
.ui-edition-bloc + .ui-edition-bloc {
  margin-top: var(--space-5);
  border-top: 1px solid var(--border);
  padding-top: var(--space-5);
}
.ui-edition-bloc .ui-pastilles + .ui-field-grid,
.ui-edition-bloc .ui-field-grid + .ui-pastilles { margin-top: var(--space-4); }
.ui-edition-bloc .ui-pastilles + .ui-pastilles {
  margin-top: var(--space-4);
  border-top: 1px solid var(--border);
  padding-top: var(--space-4);
}
.ui-edition-bloc .ui-pastilles-legende { margin-bottom: var(--space-3); font-size: var(--fs-base); font-weight: var(--fw-semibold); }
.ui-edition-bloc .ui-form-label {
  color: var(--color-titre);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.ui-edition-bloc-titre {
  margin: 0 0 var(--space-4);
  color: var(--color-titre);
  font-size: var(--fs-h5);
  font-weight: var(--fw-bold);
}
.ui-edition-bloc-tete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin: 0 0 var(--space-4);
}
.ui-edition-bloc-tete .ui-edition-bloc-titre { margin: 0; }
.ui-edition-bloc-tete .ui-criteres-important {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  padding-left: 2.5em;
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: 600;
  cursor: pointer;
}
.ui-edition-pied {
  justify-content: flex-end;
  border-top: 1px solid var(--border);
  background: var(--surface-card);
}
.ui-edition-supprimer {
  margin-inline-end: auto;
  border-color: var(--color-danger);
  color: var(--color-danger);
}
.ui-edition-supprimer:hover,
.ui-edition-supprimer:focus-visible {
  border-color: var(--color-danger);
  background: var(--color-danger);
  color: var(--white);
}
@media (max-width: 767px) {
  .ui-edition-entete,
  .ui-edition-corps,
  .ui-edition-pied { padding-inline: var(--space-3); }
  .ui-modal-content { padding: var(--space-3); }
}
@media (max-width: 560px) {
  .ui-edition-entete,
  .ui-edition-corps,
  .ui-edition-pied { padding-inline: var(--space-3); }
  .ui-edition-pied { flex-wrap: wrap; }
  .ui-edition-pied .ui-btn { flex: 1 1 0; }
  .ui-edition-supprimer { flex-basis: 100%; margin-inline-end: 0; }
}
.ui-publication-action-form,
.ui-publication-menu-form,
.ui-discussion-lien-form { display: contents; }
.ui-discussion-lien.is-active { color: var(--color-brand-pink-ink); }
.ui-profil-form { display: contents; }
.ui-menu-actions-form { display: contents; }
.ui-discussion-contenu { min-width: 0; }
.ui-discussion-ligne { display: flex; align-items: center; gap: var(--space-1); }
.ui-discussion-bloc { position: relative; min-width: 0; }
.ui-discussion-bloc:has(.ui-msg-reactions) .ui-discussion-bulle { padding-bottom: var(--space-4); }
.ui-discussion-bloc:has(.ui-msg-reactions) { margin-bottom: var(--space-3); }
.ui-discussion-ligne:hover > .ui-msg-actions,
.ui-discussion-ligne:focus-within > .ui-msg-actions { opacity: 1; }
@media (hover: none) {
  .ui-discussion-ligne > .ui-msg-actions { opacity: 1; }
}
.ui-msg-action-form { display: contents; }
.ui-discussion-modifier { display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-2); }
.ui-discussion-modifier[hidden] { display: none; }
.ui-discussion-modifier-pied { display: flex; justify-content: flex-end; gap: var(--space-2); }
.ui-publication-profil { color: inherit; text-decoration: none; }
.ui-publication-profil:hover { text-decoration: underline; }
.ui-publication-entete > .ui-publication-profil { display: contents; }
.ui-discussion-billet-entete a { color: inherit; text-decoration: none; }
.ui-discussion-billet-entete a.ui-discussion-nom:hover { text-decoration: underline; }
.ui-profil-envoye {  }
.ui-profil-envoye--coin {
  position: absolute;
  bottom: 0.9375rem;
  left: 0.9375rem;
  z-index: 1;
}
.ui-profil-actions .ui-profil-envoye { margin-inline-end: auto; align-self: center; }
.ui-monprofil-actions > .ui-profil-envoye { align-self: center; background: var(--surface-douce); }
.ui-badge-verifie,
.ui-badge-rencontre {
  margin-inline-start: var(--space-1);
  color: var(--color-primary);
  font-size: 0.9em;
  font-variation-settings: 'FILL' 1;
  vertical-align: -0.1em;
  cursor: help;
}
.ui-profil-rencontre { align-self: flex-start; margin-top: var(--space-3); }
.ui-profil-rencontre--faite { display: flex; align-items: center; gap: var(--space-2); color: var(--color-primary); font-weight: 600; }
.ui-profil-rencontre .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-moderation-photos { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.ui-moderation-photos > img { width: 160px; height: 200px; object-fit: cover; border-radius: var(--radius-sm); }
.ui-moderation-photos > img:first-child { outline: 3px solid var(--color-primary); }
.ui-menu-actions-separateur { margin: var(--space-1) 0; border: 0; border-top: 1px solid var(--border); opacity: 1; }
@media (min-width: 768px) {
  .ui-menu-actions--mobile { display: none; }
}
.ui-profil-score--a-completer { outline: 1px dashed currentColor; outline-offset: -3px; text-decoration: none; }
.ui-profil-score--a-completer:hover { text-decoration: none; filter: brightness(0.97); }
.ui-profil-favori[aria-disabled="true"],
.ui-profil-like[aria-disabled="true"] { cursor: default; }
.ui-ecran-match {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: grid;
  place-items: center;
  padding: var(--space-3);
  background: linear-gradient(160deg,
    color-mix(in srgb, var(--color-bouton) 94%, transparent) 0%,
    color-mix(in srgb, var(--color-brand-pink-ink) 92%, transparent) 100%);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.ui-ecran-match.is-visible { opacity: 1; }
.ui-ecran-match-boite {
  width: min(100%, 420px);
  text-align: center;
  color: var(--white);
}
.ui-ecran-match-photos {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: var(--space-4);
}
.ui-ecran-match-photo {
  width: 132px;
  height: 132px;
  border: 5px solid var(--white);
  border-radius: 50%;
  object-fit: cover;
  background: var(--white);
  box-shadow: var(--shadow-md);
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1.2);
}
.ui-ecran-match-photo--moi { transform: translateX(-60px) rotate(-8deg); margin-right: calc(var(--space-3) * -1); }
.ui-ecran-match-photo--autre { transform: translateX(60px) rotate(8deg); margin-left: calc(var(--space-3) * -1); }
.ui-ecran-match.is-visible .ui-ecran-match-photo--moi { transform: translateX(0) rotate(-6deg); }
.ui-ecran-match.is-visible .ui-ecran-match-photo--autre { transform: translateX(0) rotate(6deg); }
.ui-ecran-match-coeur {
  position: absolute;
  left: 50%;
  bottom: -14px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--white);
  color: var(--color-brand-pink-ink);
  font-size: var(--icon-xl);
  font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  transform: translateX(-50%) scale(0);
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1.4) 0.35s;
}
.ui-ecran-match.is-visible .ui-ecran-match-coeur { transform: translateX(-50%) scale(1); }
.ui-ecran-match-surtitre {
  margin: 0 0 var(--space-1);
  font-weight: 600;
  opacity: 0.9;
}
.ui-ecran-match-surtitre:empty { display: none; }
.ui-ecran-match-titre {
  margin: 0 0 var(--space-2, 0.5rem);
  color: var(--white);
  font-family: var(--font-display);
  font-size: var(--fs-display-5);
  line-height: 1.05;
}
.ui-ecran-match-texte { margin: 0 0 var(--space-4); opacity: 0.95; }
.ui-ecran-match-actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 0.5rem);
  align-items: center;
}
.ui-ecran-match-actions .ui-btn { min-width: 240px; justify-content: center; }
.ui-ecran-match-ecrire.ui-btn-primary {
  border-color: var(--white);
  background: var(--white);
  color: var(--color-dark);
}
.ui-ecran-match-ecrire.ui-btn-primary:hover,
.ui-ecran-match-ecrire.ui-btn-primary:focus-visible { border-color: var(--color-dark); background: var(--color-dark); color: var(--white); }
.ui-ecran-match .ui-ecran-match-actions .ui-ecran-match-profil { border-color: var(--white); background: transparent; color: var(--white); box-shadow: none; }
.ui-ecran-match .ui-ecran-match-actions .ui-ecran-match-profil:hover,
.ui-ecran-match .ui-ecran-match-actions .ui-ecran-match-profil:focus-visible { background: var(--white); color: var(--color-dark); }
.ui-ecran-match .ui-ecran-match-actions .ui-ecran-match-continuer { color: var(--white); border-color: transparent; background: transparent; box-shadow: none; }
.ui-ecran-match .ui-ecran-match-actions .ui-ecran-match-continuer:hover,
.ui-ecran-match .ui-ecran-match-actions .ui-ecran-match-continuer:focus-visible { color: var(--white); background: color-mix(in srgb, var(--white) 12%, transparent); }
@media (prefers-reduced-motion: reduce) {
  .ui-ecran-match,
  .ui-ecran-match-photo,
  .ui-ecran-match-coeur { transition: none; }
}
@media (hover: hover) and (min-width: 576.02px) {
  .ui-profil-actions :is(.ui-profil-passe, .ui-profil-favori, .ui-profil-like, .ui-profil-message) {
    opacity: 0;
    transition: opacity 0.2s ease;
  }
  .ui-profil:is(:hover, :focus-within) .ui-profil-actions :is(.ui-profil-passe, .ui-profil-favori, .ui-profil-like, .ui-profil-message) {
    opacity: 1;
  }
  .ui-profil .ui-profil-menu { display: none; }
  .ui-profil .ui-profil-titre > .ui-menu-actions { display: none; }
}
.ui-profil-actions .ui-profil-passe { flex-shrink: 0; }
@media (max-width: 576px), (hover: none) {
  .ui-profil:not(.ui-profil--compacte) .ui-profil-actions {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% - var(--space-5));
    gap: var(--space-3);
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--white) 25%, transparent);
    padding: var(--space-2);
    box-shadow: var(--shadow-md);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }
  .ui-profil-actions .ui-profil-passe { margin-right: var(--space-4); }
  .ui-profil:not(.ui-profil--compacte) .ui-profil-actions:not(:has(.ui-profil-passe, .ui-profil-favori, .ui-profil-like, .ui-profil-message)) {
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
.ui-profil:not(.ui-profil--compacte, .ui-liste-section--swipe .ui-profil) .ui-profil-actions:has(> :only-child:is(form, button, a)) { display: none; }
.ui-profil-actions .ui-profil-envoye {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
:is(.ui-profil-corps, .ui-profil-entete) > p:has(+ .ui-profil-presence) { margin-bottom: 0; }
:is(.ui-profil-corps, .ui-profil-entete) > .ui-profil-presence { margin-top: 0; margin-bottom: 0; }
.ui-profil-presence--en-ligne .material-symbols-outlined { color: var(--color-success); font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 20; }
@media (max-width: 560px) {
  .ui-ecran-match-titre { font-size: var(--fs-h1); }
}
.ui-profil-diapos,
.ui-profil-infos,
.ui-profil-glisse,
.ui-profil-fiche-lien { display: none; }
@media (max-width: 576px) {
  .ui-profil-diapos { display: block; position: absolute; inset: 0; }
  .ui-profil-diapo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
  }
  .ui-profil-diapo.is-current { opacity: 1; }
  .ui-profil-diapos-barres {
    position: absolute;
    inset: 10px var(--space-2) auto;
    z-index: 1;
    display: flex;
    justify-content: center;
    gap: var(--space-1);
  }
  .ui-profil-diapos-barres > span {
    flex: 0 0 var(--space-4);
    height: 3px;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--white) 40%, transparent);
  }
  .ui-profil-diapos-barres > .is-current { background: var(--white); }
  .ui-profil-diapo-prec,
  .ui-profil-diapo-suiv {
    position: absolute;
    inset-block: 0;
    width: 50%;
    padding: 0;
    border: 0;
    background: none;
  }
  .ui-profil-diapo-prec { inset-inline-start: 0; }
  .ui-profil-diapo-suiv { inset-inline-end: 0; }
  .ui-profil-diapos ~ * { z-index: 1; }
  .ui-profil-photo:has(> .ui-profil-diapos) > :is(.ui-profil-scores, .ui-profil-demande) { top: calc(0.9375rem + 10px); }
  .ui-profil-photo:has(> .ui-profil-diapos) > .ui-profil-demande + .ui-profil-demande { top: calc(3.25rem + 10px); }
  .ui-profil-infos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4) var(--space-3);
    margin: 0;
  }
  .ui-profil-infos--haut {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
  }
  .ui-profil-infos--haut > .ui-profil-info,
  .ui-profil-fiche > .ui-profil-infos:not(.ui-profil-infos--haut) {
    border-radius: var(--radius);
    background: var(--surface-card);
    padding: var(--space-4);
    box-shadow: var(--shadow-md);
  }
  .ui-profil-infos--haut + .ui-profil-infos { margin-top: var(--space-3); }
  .ui-profil-info dt {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--text-muted);
    font-size: var(--fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .ui-profil-info dt .material-symbols-outlined { font-size: var(--icon-sm); color: var(--color-primary); }
  .ui-profil-info dd { margin: var(--space-1) 0 0; color: var(--text); font-size: var(--fs-base); }
  .ui-profil-info dd.ui-profil-tags { margin-top: calc(var(--space-3) - 2px); }
  .ui-profil-info dd.ui-profil-tags > span {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-titre);
    font-size: var(--fs-base);
    font-weight: 600;
  }
  .ui-profil-info dd.ui-profil-tags > span > .material-symbols-outlined {
    font-size: var(--icon-sm);
    color: var(--color-titre);
  }
  .ui-profil-glisse {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: var(--space-2) 0;
    color: var(--text-muted);
    font-size: var(--fs-caption);
  }
  .ui-profil-glisse-bouton {
    display: grid;
    place-items: center;
    width: var(--control-h-tactile);
    height: var(--control-h-tactile);
    border: 0;
    background: none;
    padding: 0;
    color: var(--color-titre);
  }
  .ui-profil-entete { color: inherit; }
  .ui-profil-fiche-lien { display: flex; width: 100%; margin-top: calc(var(--space-4) + var(--space-2) - 2px); }
}
.ui-tableau { display: flex; flex-direction: column; gap: var(--space-3); }
.ui-tableau-outils { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.ui-tableau-recherche {
  position: relative;
  flex: 1 1 260px;
  max-width: 420px;
  margin: 0;
}
.ui-tableau-recherche > .material-symbols-outlined {
  position: absolute;
  top: 50%;
  left: var(--space-3);
  transform: translateY(-50%);
  color: var(--text-muted);
  font-size: var(--icon-md);
  pointer-events: none;
}
.ui-tableau-recherche > .form-control { padding-left: calc(var(--space-3) + var(--space-4)); }
.ui-tableau-filtres {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  scrollbar-width: none;
}
.ui-tableau-filtres::-webkit-scrollbar { display: none; }
.ui-tableau-filtre {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-h-sm);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface-card);
  padding: 0 var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.ui-tableau-filtre:hover { border-color: var(--color-titre); color: var(--color-titre); }
.ui-tableau-filtre.is-current { border-color: var(--color-titre); background: var(--color-titre); color: var(--white); }
.ui-tableau-nombre {
  margin-left: var(--space-2);
  color: inherit;
  font-weight: var(--fw-bold);
  opacity: 0.7;
}
.ui-tableau-compte { margin: 0; color: var(--text-muted); font-size: var(--fs-sm); }
.ui-tableau-selection { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; }
.ui-tableau-selection .ui-tableau-filtre { gap: var(--space-1); white-space: normal; }
.ui-tableau-selection .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-tableau > .ui-tableau-cadre { border-radius: var(--radius-md); padding: 0; overflow: hidden; }
.ui-tableau > .ui-tableau-cadre:hover { transform: none; box-shadow: var(--shadow-md); }
.ui-tableau > .ui-tableau-vide { border-radius: var(--radius-md); }
.ui-tableau-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ui-tableau-table th {
  height: 57px;
  border-bottom: 1px solid var(--border);
  background: var(--surface-douce);
  padding: var(--space-2) var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
.ui-tableau-table td {
  border-bottom: 1px solid var(--border);
  padding: var(--space-2) var(--space-3);
  color: var(--text);
  vertical-align: middle;
}
.ui-tableau-table tbody tr:last-child > td { border-bottom: 0; }
.ui-tableau-table tbody tr:hover > td { background: var(--teinte-neutre); }
.ui-tableau-actions { width: 1%; text-align: right; white-space: nowrap; }
.ui-tableau-personne { display: flex; align-items: center; gap: var(--space-2); color: inherit; text-decoration: none; }
a.ui-tableau-personne:hover .ui-tableau-nom,
button.ui-tableau-personne:hover .ui-tableau-nom { text-decoration: underline; }
button.ui-tableau-personne { padding: 0; border: 0; background: none; font: inherit; text-align: start; cursor: pointer; }
.ui-tableau-personne > span { display: flex; flex-direction: column; min-width: 0; }
.ui-tableau-avatar {
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: var(--radius-photo);
  object-fit: cover;
}
.ui-tableau-nom { color: var(--color-titre); font-weight: var(--fw-semibold); }
.ui-tableau-sous { color: var(--text-muted); font-size: var(--fs-caption); }
.ui-tableau-etat {
  display: inline-block;
  margin: 2px var(--space-1) 2px 0;
  border-radius: var(--radius-pill);
  background: var(--surface-douce);
  padding: 2px var(--space-2);
  color: var(--color-titre);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}
.ui-tableau-etat--ok { background: color-mix(in srgb, var(--color-success) 12%, var(--white)); color: var(--color-success); }
.ui-tableau-etat--alerte { background: var(--color-brand-pink-soft); color: var(--color-brand-pink-ink); }
.ui-tableau-etat--attente { background: var(--teinte-neutre); color: var(--text-muted); }
.ui-tableau-etat--icone { display: inline-grid; place-items: center; padding-inline: var(--space-1); color: var(--color-titre); cursor: default; }
.ui-tableau-etat--icone .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-tableau-vide {
  flex-direction: row;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  color: var(--text-muted);
}
.ui-tableau-pied { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.ui-tableau-pages { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-1); }
.ui-tableau-choix { margin: 0; }
.ui-tableau-choix > .form-select { width: auto; min-width: 200px; }
.ui-tableau-groupe { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; }
.ui-tableau-groupe-compte { margin-right: auto; color: var(--text-muted); font-size: var(--fs-sm); }
.ui-tableau-groupe > .form-select { width: auto; min-width: 200px; }
.ui-tableau-table .ui-tableau-coche { width: 1%; padding-right: 0; }
.ui-tableau-coche > .form-check-input { margin: 0; font-size: var(--fs-sm); cursor: pointer; }
.ui-tableau-table tbody tr:has(.ui-tableau-coche > :checked) > td { background: var(--teinte-neutre); }
@media (max-width: 767px) {
  .ui-tableau-recherche { max-width: none; }
  .ui-tableau-table thead { display: none; }
  .ui-tableau-table,
  .ui-tableau-table tbody,
  .ui-tableau-table tr,
  .ui-tableau-table td { display: block; width: 100%; }
  .ui-tableau-table tr {
    position: relative;
    border-bottom: 1px solid var(--border);
    padding: var(--space-3);
  }
  .ui-tableau-table tbody tr:last-child { border-bottom: 0; }
  .ui-tableau-table td { border: 0; padding: var(--space-1) 0; }
  .ui-tableau-table td[data-label]:not(.ui-tableau-tete)::before {
    content: attr(data-label);
    display: block;
    color: var(--text-muted);
    font-size: var(--fs-caption);
    font-weight: var(--fw-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .ui-tableau-table td.ui-tableau-tete { padding-right: var(--control-h-tactile); }
  .ui-tableau-table tr:has(> .ui-tableau-coche) { padding-left: calc(var(--space-3) + var(--space-5)); }
  .ui-tableau-table td.ui-tableau-coche {
    position: absolute;
    top: calc(var(--space-3) + var(--space-3));
    left: var(--space-3);
    width: auto;
    padding: 0;
  }
  .ui-tableau-groupe > .form-select { flex: 1 1 auto; min-width: 0; }
  .ui-tableau-table .ui-tableau-actions {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    width: auto;
    padding: 0;
  }
}
.ui-champ-photo-apercu.ui-champ-photo-apercu--plusieurs {
  grid-template-columns: repeat(5, 2.75rem);
  gap: var(--space-1);
  width: auto;
  height: auto;
  border-radius: var(--radius-md);
  padding: var(--space-1);
}
.ui-champ-photo-apercu--plusieurs img { width: 2.75rem; height: 2.75rem; border-radius: var(--radius-photo); object-fit: cover; }
.ui-envoi {
  position: fixed;
  left: 50%;
  bottom: var(--space-4);
  z-index: 1090;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  width: max-content;
  max-width: calc(100% - var(--space-4));
  text-align: center;
  transform: translateX(-50%);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-pill);
  background: var(--color-dark);
  color: var(--white);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  box-shadow: var(--shadow-md);
}
.ui-envoi-roue {
  width: var(--space-3);
  height: var(--space-3);
  flex-shrink: 0;
  border: 2px solid color-mix(in srgb, var(--white) 40%, transparent);
  border-top-color: var(--white);
  border-radius: 50%;
  animation: ui-envoi-tourne 0.8s linear infinite;
}
@keyframes ui-envoi-tourne { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .ui-envoi-roue { animation: none; }
}
@media (max-width: 900px) {
  .ui-envoi { bottom: calc(64px + var(--space-3) + env(safe-area-inset-bottom)); }
}
.ui-fil-encart {
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-4);
  padding: var(--space-4);
}
.ui-fil-encart:last-child { margin-bottom: 0; }
.ui-fil-encart-titre {
  margin: 0 0 var(--space-3);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.ui-fil-encart-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-block: var(--space-2);
}
.ui-fil-encart-avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-photo);
  object-fit: cover;
  flex-shrink: 0;
}
.ui-fil-encart-icone {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-photo);
  background: var(--surface-appuyee);
  color: var(--color-primary);
  font-size: var(--icon-md);
}
.ui-fil-encart-corps { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ui-fil-encart-nom {
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ui-fil-encart-nom:hover { color: var(--color-titre); }
.ui-fil-encart-meta {
  color: var(--text-muted);
  font-size: var(--fs-caption);
}
.ui-fil-encart-item.is-current {
  margin-inline: calc(var(--space-2) * -1);
  padding-inline: var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--surface-appuyee);
}
.ui-fil-encart-vide { margin: 0; color: var(--text-muted); font-size: var(--fs-sm); }
.ui-fil-encart-action {
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: transparent;
  color: var(--color-titre);
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.ui-fil-encart-action .material-symbols-outlined { font-size: var(--icon-md); }
.ui-fil-encart-action:hover,
.ui-fil-encart-action:focus-visible {
  background: var(--color-titre);
  border-color: var(--color-titre);
  color: var(--white);
}
.ui-fil-encart-lien {
  display: block;
  width: fit-content;
  margin-top: var(--space-3);
  color: var(--color-brand-pink-ink);
  font-size: var(--fs-sm);
  font-weight: 700;
}
.ui-fil-encart-lien:hover { text-decoration: underline; }
.ui-fil-encart-lien + .ui-fil-encart-lien { margin-top: var(--space-2); }
.ui-fil-encart-pied { margin-top: var(--space-3); }
.ui-fil-encart-pied > .ui-btn { width: 100%; }
.ui-fil-encart-externe { width: 100%; margin-top: var(--space-3); }
.ui-fil-encart-externe.ui-btn { justify-content: flex-start; }
.ui-fil-encart-participer { margin-top: var(--space-3); }
.ui-fil-encart-participer > .ui-btn { width: 100%; }
.ui-fil-encart-participer > .ui-btn { justify-content: flex-start; }
.ui-fil-encart-participer > .dropdown, .ui-fil-encart-participer > .dropdown > .ui-btn { width: 100%; }
.ui-fil-encart-participer > .dropdown > .dropdown-toggle { justify-content: flex-start; }
.ui-fil-encart-participer > .dropdown > .dropdown-toggle::after { margin-inline-start: auto; }
.ui-fil-encart--essentiel { margin-bottom: var(--space-4); }
@media (max-width: 900px) {
  .ui-fil-encart--repli {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0 0 var(--space-3);
    border: 0;
    background: none;
    padding: 0;
    box-shadow: none;
  }
  .ui-fil-encart--repli > :not(.ui-fil-encart-lien) { display: none; }
  .ui-fil-encart--repli > .ui-fil-encart-lien {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    margin: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--surface-card);
    padding: 0 var(--space-3);
    color: var(--color-titre);
    white-space: nowrap;
  }
}
.ui-cookies {
  position: fixed;
  right: var(--space-3);
  bottom: var(--space-3);
  left: var(--space-3);
  z-index: 1045;
  max-width: 560px;
  margin-inline: auto;
  border-radius: var(--radius);
  background: var(--surface-card);
  padding: var(--space-4);
  box-shadow: var(--shadow-md);
}
.ui-cookies[hidden] { display: none; }
@media (max-width: 900px) {
  body:has(.ui-membre-barre-bas) .ui-cookies { bottom: calc(64px + var(--space-3) + env(safe-area-inset-bottom)); }
}
.ui-cookies--apercu { position: static; margin: 0; }
.ui-cookies-titre {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  color: var(--color-titre);
  font-size: var(--fs-h5);
}
.ui-cookies-titre .material-symbols-outlined { font-size: var(--icon-md); }
.ui-cookies-texte {
  margin: 0 0 var(--space-3);
  color: var(--text);
  font-size: var(--fs-sm);
}
.ui-cookies-choix {
  display: grid;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  font-size: var(--fs-sm);
}
.ui-cookies-choix[hidden] { display: none; }
.ui-cookies-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
}
.ui-lancement {
  position: relative;
  z-index: 0;
  overflow: hidden;
  margin: var(--space-5) 0;
  border-radius: var(--radius);
  background:
    radial-gradient(circle 260px at 92% -8%, color-mix(in srgb, var(--white) 6%, transparent) 99%, transparent 100%),
    radial-gradient(circle 340px at 4% 118%, color-mix(in srgb, var(--white) 6%, transparent) 99%, transparent 100%),
    radial-gradient(ellipse 45% 18% at 50% 0%, color-mix(in srgb, var(--white) 12%, transparent) 0%, transparent 100%),
    radial-gradient(circle at 90% 110%, var(--color-brand-pink) 0%, transparent 60%),
    linear-gradient(160deg,
      color-mix(in srgb, var(--color-brand-pink) 40%, var(--black)) 0%,
      color-mix(in srgb, var(--color-brand-pink) 55%, var(--black)) 45%,
      color-mix(in srgb, var(--color-brand-pink) 90%, var(--black)) 100%);
  padding: var(--space-5) var(--space-4);
  color: var(--on-dark);
  text-align: center;
  box-shadow: var(--shadow-md);
}
.ui-lancement::before,
.ui-lancement::after {
  content: "";
  position: absolute;
  z-index: -1;
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--white) 25%, transparent);
  border-radius: 50%;
  pointer-events: none;
}
.ui-lancement::before {
  top: -650px;
  right: -600px;
  width: 1000px;
}
.ui-lancement::after {
  bottom: -550px;
  left: -600px;
  width: 900px;
  border-color: color-mix(in srgb, var(--white) 12%, transparent);
}
.ui-lancement-pastille {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
  border-radius: var(--radius-pill);
  background: var(--white);
  padding: var(--space-1) var(--space-3);
  color: var(--color-brand-pink-ink);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.ui-lancement-pastille .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-lancement-titre {
  margin: 0;
  color: var(--white);
  font-size: var(--fs-display-6);
  line-height: var(--lh-heading);
}
.ui-lancement-titre .ui-accent { color: var(--white); }
.ui-lancement-sous-titre {
  margin: var(--space-2) 0 0;
  color: var(--white);
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
}
.ui-lancement-texte {
  max-width: 640px;
  margin: var(--space-3) auto 0;
  color: var(--on-dark);
  font-size: var(--fs-lead);
}
.ui-lancement-compteur-titre {
  margin: var(--space-5) 0 var(--space-3);
  color: var(--white);
  font-size: var(--fs-lead);
  font-weight: var(--fw-semibold);
}
.ui-lancement-compteur {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  max-width: 680px;
  margin: 0 auto;
}
.ui-lancement-compteur:has([data-unite="jours"] > :nth-child(3)) { grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr)); max-width: 760px; }
.ui-lancement-compteur:has([data-unite="jours"] > :nth-child(4)) { grid-template-columns: 2fr repeat(3, minmax(0, 1fr)); max-width: 840px; }
.ui-lancement-unite {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}
.ui-lancement-valeur {
  display: flex;
  justify-content: center;
  gap: var(--space-1);
  width: 100%;
}
.ui-lancement-chiffre {
  position: relative;
  display: flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  max-width: 72px;
  aspect-ratio: 0.8;
  border: 1px solid color-mix(in srgb, color-mix(in srgb, var(--color-brand-pink) 55%, var(--white)) 70%, transparent);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--black) 25%, transparent) 0%,
    color-mix(in srgb, var(--black) 40%, transparent) 100%);
  box-shadow: var(--shadow-md), inset 0 1px 0 color-mix(in srgb, var(--white) 25%, transparent);
  color: var(--white);
  font-size: var(--fs-display-5);
  font-weight: var(--fw-bold);
  line-height: 1;
}
.ui-lancement-chiffre::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  height: 1px;
  background: color-mix(in srgb, var(--black) 40%, transparent);
}
.ui-lancement-libelle {
  color: var(--white);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ui-lancement-action { margin-top: var(--space-5); }
.ui-lancement .ui-btn-primary,
.ui-lancement .ui-btn-primary:hover {
  background: var(--white);
  color: var(--color-brand-pink-ink);
  box-shadow: var(--shadow-md);
}
@media (max-width: 576px) {
  .ui-lancement { padding: var(--space-5) var(--space-3); }
  .ui-lancement-titre { font-size: var(--fs-h3); }
  .ui-lancement-sous-titre { font-size: var(--fs-h5); }
  .ui-lancement-compteur { gap: var(--space-2); }
  .ui-lancement-chiffre { font-size: var(--fs-h3); }
  .ui-lancement-libelle { font-size: var(--fs-caption); letter-spacing: 0.04em; }
  .ui-lancement-compteur:has([data-unite="jours"] > :nth-child(3)) { gap: var(--space-1); }
  .ui-lancement-compteur:has([data-unite="jours"] > :nth-child(3)) .ui-lancement-valeur { gap: 2px; }
  .ui-lancement-compteur:has([data-unite="jours"] > :nth-child(3)) .ui-lancement-chiffre { font-size: var(--fs-h5); }
  .ui-lancement-compteur:has([data-unite="jours"] > :nth-child(3)) .ui-lancement-libelle { letter-spacing: 0; }
}
.ui-tarifs-formules { row-gap: var(--space-4); }
.ui-tarif {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-card);
  padding: var(--space-5) var(--space-4) var(--space-4);
  box-shadow: var(--shadow-md);
}
.ui-tarif--plus { border-color: var(--color-brand-pink); }
.ui-tarif-badge {
  position: absolute;
  top: calc(var(--space-3) * -1);
  left: var(--space-4);
  margin: 0;
  background: var(--color-brand-pink-ink);
  color: var(--white);
}
.ui-tarif-nom {
  margin: 0 0 var(--space-2);
  color: var(--color-titre);
  font-size: var(--fs-h4);
}
.ui-tarif-prix {
  margin: 0;
  color: var(--color-titre);
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  line-height: 1.1;
}
.ui-tarif-periode {
  color: var(--text-muted);
  font-size: var(--fs-base);
  font-weight: var(--fw-normal);
}
.ui-tarif-note {
  margin: var(--space-2) 0 0;
  color: var(--color-brand-pink-ink);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.ui-tarif-intro { margin: var(--space-4) 0 0; color: var(--text); font-weight: var(--fw-semibold); }
.ui-tarif-liste {
  display: grid;
  gap: var(--space-2);
  margin: var(--space-3) 0 var(--space-4);
  padding: 0;
  list-style: none;
  color: var(--text);
}
.ui-tarif-liste li { display: flex; gap: var(--space-2); }
.ui-tarif-liste .ui-tarif-ailleurs {
  align-self: center;
  background: var(--color-brand-pink-soft);
  color: var(--color-brand-pink-ink);
}
.ui-tarif-liste .material-symbols-outlined { color: var(--color-success); font-size: var(--icon-md); }
.ui-tarif--plus .ui-tarif-liste .material-symbols-outlined { color: var(--color-brand-pink-ink); }
.ui-tarif-liste .ui-tarif-exclu { color: var(--text-muted); text-decoration: line-through; }
.ui-tarif-liste .ui-tarif-exclu .material-symbols-outlined { color: var(--text-muted); }
.ui-tarif > .ui-btn { margin-top: auto; align-self: flex-start; }
.ui-wysiwyg {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--white);
  overflow: hidden;
}
.ui-wysiwyg:focus-within { border-color: var(--focus-border); box-shadow: 0 0 0 0.25rem var(--focus-ring); }
.ui-wysiwyg.is-invalid { border-color: var(--color-danger); }
.ui-saisie-emoji { display: grid; grid-template-columns: minmax(0, 1fr); }
.ui-saisie-emoji > .ui-form-label { grid-row: 1; grid-column: 1; }
.ui-saisie-emoji > textarea { grid-row: 2; grid-column: 1; padding-block-end: var(--space-6); }
.ui-saisie-emoji > .ui-form-text,
.ui-saisie-emoji > .ui-form-error { grid-row: 3; grid-column: 1; }
.ui-saisie-emoji-bouton {
  grid-row: 2;
  grid-column: 1;
  align-self: end;
  justify-self: start;
  margin: var(--space-2);
  z-index: 1;
}
.ui-saisie-emoji-bouton .ui-icon-button,
.ui-saisie-emoji-bouton .ui-icon-button.show,
.ui-saisie-emoji-bouton .ui-icon-button:active,
.ui-saisie-emoji-bouton .ui-icon-button:focus {
  width: 34px;
  height: 34px;
  border: 0;
  background: var(--surface-douce);
  color: var(--color-titre);
  box-shadow: none;
}
.ui-saisie-emoji-bouton .ui-icon-button:hover { background: var(--teinte-neutre); }
.ui-wysiwyg-compteur { margin: var(--space-2) 0 0; color: var(--text-muted); font-size: var(--fs-caption); text-align: right; }
.ui-wysiwyg-compteur.is-depasse { color: var(--color-danger); font-weight: var(--fw-semibold); }
.ui-wysiwyg-barre {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border-soft);
  background: var(--surface-douce);
}
.ui-wysiwyg-bouton {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: var(--radius-sm);
  background: none;
  color: var(--color-titre);
}
.ui-wysiwyg-bouton:hover { background: var(--surface-appuyee); }
.ui-wysiwyg-bouton .material-symbols-outlined { font-size: var(--icon-md); }
.ui-wysiwyg-zone {
  min-height: 12rem;
  max-height: 32rem;
  overflow-y: auto;
  padding: var(--space-2) var(--space-3);
  color: var(--text);
  line-height: var(--lh-base);
  outline: 0;
}
#envoiFormulaire .ui-wysiwyg-zone { min-height: 22rem; }
#adminCommunication .ui-wysiwyg-zone { min-height: 17.25rem; }
.ui-field-grid + .ui-champ-photo { margin-top: var(--space-4); }
.ui-wysiwyg-zone > :first-child { margin-top: 0; }
.ui-wysiwyg-zone p { margin: 0 0 var(--space-2); }
.ui-wysiwyg-zone h3 { margin: var(--space-3) 0 var(--space-2); font-size: var(--fs-h5); }
.ui-wysiwyg-zone ul,
.ui-wysiwyg-zone ol { margin: 0 0 var(--space-2); padding-left: var(--space-4); }
.ui-choix-image {
  position: relative;
  display: block;
  width: 100%;
  max-width: 320px;
  aspect-ratio: 16 / 9;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--surface-douce);
}
.ui-choix-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ui-choix-image-legende {
  position: absolute;
  inset: auto var(--space-2) var(--space-2) auto;
  background: var(--white);
  color: var(--color-titre);
  box-shadow: var(--shadow-md);
}
.ui-choix-image:hover .ui-choix-image-legende { background: var(--surface-douce); }
.ui-choix-image-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--space-3);
  margin-top: var(--space-3);
}
.ui-choix-image-option {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: 0;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  background: none;
  color: var(--text-muted);
  font-size: var(--fs-caption);
  text-align: left;
  overflow: hidden;
}
.ui-choix-image-option img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border-radius: var(--radius-sm); }
.ui-choix-image-option span { padding: 0 var(--space-1) var(--space-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-choix-image-option:hover img { opacity: 0.85; }
.ui-choix-image-option.is-choisie { border-color: var(--color-primary); color: var(--color-titre); font-weight: var(--fw-semibold); }
.ui-choix-image-ajout {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  aspect-ratio: 16 / 9;
  padding: var(--space-2);
  border: 2px dashed var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-douce);
  color: var(--color-titre);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
}
.ui-choix-image-ajout .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-choix-image-ajout:hover,
.ui-choix-image-ajout:focus-visible { border-color: var(--color-primary); }
.ui-choix-image-ajout[disabled] { opacity: 0.6; cursor: progress; }
.ui-choix-image-erreur { margin: var(--space-2) 0 0; color: var(--color-danger); font-size: var(--fs-sm); }
.ui-choix-image-erreur:empty { display: none; }
.ui-activites-titre { margin-bottom: var(--space-2); }
.ui-activites-liste {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ui-activites-ligne {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  padding: var(--space-2) var(--space-3);
}
.ui-activites-ligne--nouvelle { border-style: dashed; }
.ui-activites-lecture { display: none; align-items: center; gap: var(--space-3); }
.ui-activites-ligne.is-lecture > .ui-activites-lecture { display: flex; }
.ui-activites-ligne.is-lecture > .ui-activites-edition { display: none; }
.ui-activites-icone { font-size: var(--icon-md); color: var(--color-titre); }
.ui-activites-texte { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ui-activites-texte > strong { color: var(--color-titre); }
.ui-activites-texte > span { color: var(--text-muted); font-size: var(--fs-sm); }
.ui-activites-gestes { display: flex; gap: var(--space-1); }
.ui-activites-edition {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 2fr) auto;
  align-items: center;
  gap: var(--space-2);
}
.ui-activites-ligne--nouvelle > .ui-activites-edition { grid-template-columns: auto minmax(0, 1fr) minmax(0, 2fr); }
@media (max-width: 767.98px) {
  .ui-activites-edition,
  .ui-activites-ligne--nouvelle > .ui-activites-edition { grid-template-columns: auto minmax(0, 1fr); }
  .ui-activites-edition > input[name="activiteTexte"],
  .ui-activites-edition > [data-activite-ok] { grid-column: 1 / -1; }
}
.ui-questions-edition { display: grid; gap: var(--space-2); }
.ui-activites-ligne.is-lecture > .ui-questions-edition { display: none; }
.ui-activites-texte > .ui-questions-reponse {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.ui-questions-ajouter { margin-top: var(--space-2); }
.ui-choix-icone {
  display: grid;
  place-items: center;
  width: var(--control-h-tactile);
  height: var(--control-h-tactile);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-card);
  color: var(--color-titre);
  cursor: pointer;
}
.ui-choix-icone:hover { border-color: var(--color-titre); }
.ui-choix-icone .material-symbols-outlined { font-size: var(--icon-md); }
.ui-choix-icone-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(calc(var(--control-h-tactile) + var(--space-3)), 1fr));
  gap: var(--space-1);
  max-height: 22rem;
  margin-top: var(--space-3);
  overflow-y: auto;
}
.ui-choix-icone-grille > button {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: none;
  color: var(--color-titre);
  cursor: pointer;
}
.ui-choix-icone-grille > button:hover,
.ui-choix-icone-grille > button:focus-visible { border-color: var(--color-titre); background: var(--teinte-neutre); }
.ui-choix-icone-grille > button[aria-pressed="true"] { background: var(--color-titre); color: var(--white); }
.ui-choix-icone-grille .material-symbols-outlined { font-size: var(--icon-xl); }
.ui-choix-filtres { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-2); }
.ui-choix-nombre { margin: var(--space-2) 0 0; color: var(--text-muted); font-size: var(--fs-caption); }
.ui-edition-onglets { margin-bottom: var(--space-4); }
.ui-edition-fil {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
  padding: 0;
  list-style: none;
}
.ui-edition-fil-etape {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-bottom: var(--space-2);
  border-bottom: 3px solid var(--border);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
}
.ui-edition-fil-num {
  display: grid;
  flex: none;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--teinte-neutre);
  color: var(--text-muted);
}
.ui-edition-fil-etape.is-active,
.ui-edition-fil-etape.is-faite { border-bottom-color: var(--color-primary); color: var(--color-titre); }
.ui-edition-fil-etape.is-active .ui-edition-fil-num { background: var(--color-primary); color: var(--white); }
.ui-edition-fil-etape.is-faite .ui-edition-fil-num { background: var(--teinte-neutre-forte); color: var(--color-titre); }
.ui-edition-etape:not(.is-active) { display: none; }
.ui-edition-precedent { margin-right: auto; }
@media (max-width: 575.98px) {
  .ui-edition-fil-etape:not(.is-active) > span:last-child { display: none; }
}
.ui-tableau-avatar-cadre { position: relative; display: inline-flex; flex-shrink: 0; }
.ui-tableau-en-ligne {
  position: absolute;
  inset-block-start: calc(-1 * var(--space-1));
  inset-inline-start: calc(-1 * var(--space-1));
  width: var(--space-3);
  height: var(--space-3);
  border: 2px solid var(--white);
  border-radius: var(--radius-pill);
  background: var(--color-success);
}
.ui-tableau-presence { display: inline-flex; align-items: center; gap: var(--space-1); white-space: nowrap; }
.ui-tableau-presence .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-tableau-presence--en-ligne { color: var(--color-success); font-weight: var(--fw-semibold); }
.ui-profil-reponse { display: flex; gap: var(--space-2); margin-top: var(--space-2); }
.ui-profil-reponse .ui-profil-form { flex: 1 1 0; }
.ui-profil-reponse .ui-btn { width: 100%; justify-content: center; }
.ui-email-attente { padding-top: var(--space-3); }
.ui-email-attente--profil { padding-top: 0; }
.ui-email-attente .ui-alert { flex-wrap: wrap; margin: 0; }
.ui-email-attente-texte { flex: 1 1 260px; margin: 0; }
.ui-email-attente-form { margin: 0; }
.ui-alerte-erreur { padding-top: var(--space-3); }
.ui-alerte-erreur .ui-alert { margin: 0; }
.ui-profil-ouvrir,
.ui-profil-criteres,
.ui-profil-retour,
.ui-profil-plein-ecran {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: var(--control-h-tactile);
  height: var(--control-h-tactile);
  border-radius: 50%;
  background: color-mix(in srgb, var(--white) 25%, transparent);
  color: var(--white);
  text-decoration: none;
  box-shadow: var(--shadow-md);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.ui-profil-ouvrir .material-symbols-outlined,
.ui-profil-criteres .material-symbols-outlined,
.ui-profil-retour .material-symbols-outlined,
.ui-profil-plein-ecran .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-profil-criteres,
.ui-profil-retour,
.ui-profil-plein-ecran { border: 0; padding: 0; cursor: pointer; }
.ui-profil-retour:disabled { cursor: default; }
.ui-profil-retour:disabled .material-symbols-outlined { opacity: 0.4; }
.ui-profil-titre-age { white-space: nowrap; }
.ui-profil-prenom { overflow-wrap: break-word; }
.ui-profil-fiche { display: block; }
.ui-tableau-entete-icone { font-size: var(--icon-md); vertical-align: middle; }
.ui-tableau-tri { display: inline-flex; align-items: center; gap: var(--space-1); color: inherit; text-decoration: none; }
.ui-tableau-tri:hover, .ui-tableau-tri:focus-visible { color: var(--color-primary); }
.ui-tableau-tri.is-current { color: var(--color-primary); }
.ui-tableau-tri-sens { font-size: var(--icon-sm); }
.ui-tableau-tri-sens.is-croissant { transform: rotate(180deg); }
.ui-tableau-icone { color: var(--color-titre); font-size: var(--icon-lg); vertical-align: middle; cursor: default; }
@media (min-width: 992px) { .ui-tableau-col-etat { width: 375px; } }
@media (min-width: 992px) { .ui-tableau-table :is(th, td).ui-tableau-centre { text-align: center; } }
.ui-profil-fermer {
  position: absolute;
  top: 0.9375rem;
  right: 0.9375rem;
  z-index: 3;
  display: grid;
  place-items: center;
  width: var(--control-h-tactile);
  height: var(--control-h-tactile);
  border-radius: 50%;
  background: color-mix(in srgb, var(--white) 25%, transparent);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  color: var(--white);
  text-decoration: none;
}
.ui-profil-fermer:hover,
.ui-profil-fermer:focus-visible { background: color-mix(in srgb, var(--white) 40%, transparent); color: var(--white); }
.ui-profil-fermer .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-jeu-sortie {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  padding: var(--space-5);
}
.ui-jeu-sortie .ui-eyebrow { display: inline-flex; align-items: center; gap: var(--space-1); }
.ui-jeu-sortie .ui-eyebrow .material-symbols-outlined { font-size: var(--icon-md); }
.ui-jeu-sortie-titre { margin: 0; font-size: var(--fs-h3); line-height: var(--lh-heading); color: var(--color-titre); }
.ui-jeu-sortie-lead { margin: var(--space-3) 0 0; color: var(--text-muted); }
.ui-jeu-sortie-etapes { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-4); margin: 0; padding: 0; list-style: none; }
.ui-jeu-sortie-etapes li { display: flex; align-items: flex-start; gap: var(--space-3); }
.ui-jeu-sortie-etapes .ui-edition-fil-num { background: var(--color-primary); color: var(--white); font-size: var(--fs-caption); font-weight: var(--fw-bold); }
.ui-jeu-sortie-etapes strong { display: block; color: var(--color-titre); }
.ui-jeu-sortie-etapes li > span:last-child { color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-sortie-resume { display: flex; flex-wrap: wrap; grid-column: 1 / -1; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.ui-jeu-sortie-resume li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-pill);
  background: var(--teinte-neutre);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
}
.ui-jeu-sortie-resume .material-symbols-outlined { font-size: var(--icon-sm); color: var(--color-primary); }
.ui-jeu-sortie-pied { display: flex; flex-wrap: wrap; grid-column: 1 / -1; justify-content: space-between; gap: var(--space-2); }
@media (max-width: 767.98px) {
  .ui-jeu-sortie { padding: var(--space-4); }
  .ui-jeu-sortie-etapes { grid-template-columns: minmax(0, 1fr); }
  .ui-jeu-sortie-pied .ui-btn { flex: 1 1 100%; justify-content: center; }
}
.ui-jeu-fenetre .ui-edition-fil-etape { cursor: pointer; }
.ui-jeu-bloc-tete { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.ui-jeu-bloc-tete .ui-edition-bloc-titre { margin: 0; }
.ui-jeu-bloc .ui-edition-intro { margin-top: var(--space-2); }
.ui-jeu-bloc-pied { display: flex; justify-content: flex-end; margin-top: var(--space-3); }
.ui-jeu-bloc-points { display: flex; flex-direction: column; gap: var(--space-2); margin: var(--space-2) 0 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
.ui-jeu-bloc-points li { display: flex; align-items: flex-start; gap: var(--space-2); }
.ui-jeu-bloc-points .material-symbols-outlined { color: var(--color-primary); font-size: var(--icon-md); }
.ui-jeu-fenetre .ui-edition-etape > .ui-edition-intro { margin-bottom: var(--space-4); }
.ui-jeu-precedent,
.ui-jeu-raz { margin-right: auto; }
.ui-jeu-activites { display: grid; gap: var(--space-2); margin: 0 0 var(--space-2); padding: 0; list-style: none; }
.ui-jeu-activites > li { min-width: 0; }
.ui-jeu-activite { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-card); }
.ui-jeu-activite[open] { box-shadow: var(--shadow-md); }
.ui-jeu-activite > summary { list-style: none; cursor: pointer; }
.ui-jeu-activite > summary::-webkit-details-marker { display: none; }
.ui-jeu-activite-ligne { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3); }
.ui-jeu-activite-poignee {
  display: grid;
  flex: none;
  place-items: center;
  margin-left: calc(var(--space-2) * -1);
  color: var(--text-muted);
  cursor: grab;
  touch-action: none;
}
.ui-jeu-activite-poignee .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-jeu-activites > li:only-child .ui-jeu-activite-poignee { display: none; }
.ui-jeu-activites.is-glisse { cursor: grabbing; user-select: none; }
.ui-jeu-activites.is-glisse .ui-jeu-activite-poignee { cursor: grabbing; }
.ui-jeu-activites > li.is-glissee { position: fixed; z-index: 1080; margin: 0; pointer-events: none; }
.ui-jeu-activites > li.is-glissee > .ui-jeu-activite {
  border-color: var(--color-primary);
  box-shadow: var(--shadow-md);
  transform: rotate(-1deg) scale(1.02);
  transition: transform 0.15s ease;
}
.ui-jeu-activites > li.is-posee > .ui-jeu-activite { transform: none; }
.ui-jeu-activites-place {
  border: 2px dashed var(--color-primary);
  border-radius: var(--radius-md);
  background: var(--surface-douce);
}
.ui-jeu-activite-vignette {
  display: grid;
  flex: none;
  place-items: center;
  width: 4rem;
  aspect-ratio: 3 / 2;
  border-radius: var(--radius-sm);
  background: var(--surface-douce);
  overflow: hidden;
}
.ui-jeu-activite-vignette img { width: 100%; height: 100%; object-fit: cover; }
.ui-jeu-activite-vignette .material-symbols-outlined { color: var(--color-primary); font-size: var(--icon-lg); }
.ui-jeu-activite-texte { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.ui-jeu-activite-texte strong { color: var(--color-titre); }
.ui-jeu-activite-texte span { overflow: hidden; color: var(--text-muted); font-size: var(--fs-sm); text-overflow: ellipsis; white-space: nowrap; }
.ui-jeu-activite-modifier { display: grid; flex: none; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; color: var(--color-primary); }
.ui-jeu-activite-ligne:hover .ui-jeu-activite-modifier,
.ui-jeu-activite[open] .ui-jeu-activite-modifier { background: var(--teinte-neutre); }
.ui-jeu-activite-form {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr);
  gap: var(--space-3) var(--space-4);
  padding: var(--space-3);
  border-top: 1px solid var(--border);
}
.ui-jeu-activite-image .ui-champ-photo-aide { font-size: var(--fs-caption); }
.ui-jeu-activite-champs .ui-field-grid { --bs-gutter-y: var(--space-3); }
.ui-jeu-activite-pied { display: flex; grid-column: 1 / -1; justify-content: space-between; gap: var(--space-2); }
.ui-jeu-activite-pied .ui-btn-primary:only-child { margin-left: auto; }
.ui-jeu-activite-pied--espace { margin-top: var(--space-4); }
.ui-quiz-theme { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin-bottom: var(--space-4); padding-bottom: var(--space-4); border-bottom: 1px solid var(--border); }
.ui-quiz-theme-form { display: flex; flex: 1 1 20rem; flex-wrap: wrap; align-items: flex-end; gap: var(--space-2); }
.ui-quiz-theme-options { display: flex; flex-basis: 100%; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.ui-quiz-theme-champ { flex: 0 1 24rem; }
.ui-quiz-theme-champ .ui-form-control { width: 100%; }
.ui-quiz-theme:has(.ui-jeu-confirmer[open]) > .ui-quiz-theme-form { display: none; }
.ui-jeu-ajout { border-style: dashed; }
.ui-jeu-ajout[open] { border-style: solid; }
.ui-jeu-ajout--haut { margin-bottom: var(--space-4); }
.ui-jeu-ajout-bouton { display: flex; align-items: center; justify-content: center; gap: var(--space-2); padding: var(--space-3); color: var(--color-primary); font-weight: var(--fw-semibold); }
.ui-jeu-ajout[open] .ui-jeu-ajout-bouton { justify-content: flex-start; }
.ui-jeu-exemple { margin-bottom: var(--space-2); border-style: dashed; background: var(--surface-douce); opacity: 0.9; }
.ui-jeu-exemple-badge { flex: none; padding: var(--space-1) var(--space-2); border-radius: var(--radius-pill); background: var(--teinte-neutre); color: var(--text-muted); font-size: var(--fs-caption); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: 0.06em; }
.ui-jeu-confirmer > summary { list-style: none; }
.ui-jeu-confirmer > summary::-webkit-details-marker { display: none; }
.ui-jeu-confirmer[open] { flex-basis: 100%; }
.ui-jeu-confirmer[open] > summary { display: none; }
.ui-jeu-confirmer-panneau.ui-alert { margin: 0; }
.ui-jeu-confirmer-panneau .ui-alert-body { flex: 1; min-width: 0; }
.ui-jeu-confirmer-panneau p { margin: 0 0 var(--space-3); font-size: var(--fs-sm); }
.ui-jeu-confirmer-boutons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.ui-jeu-activite-pied:has(.ui-jeu-confirmer[open]) > .ui-btn-primary { display: none; }
.ui-jeu-bloc-pied:has(.ui-jeu-confirmer[open]) { justify-content: stretch; }
.ui-jeu-equipes-pied { flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.ui-jeu-equipes-pied:has(.ui-jeu-confirmer[open]) > .ui-jeu-confirmer:not([open]) { display: none; }
.ui-jeu-confirmer-panneau .ui-jeu-tirage-ligne { margin-bottom: var(--space-3); }
.ui-jeu-icone-fermer { display: none; }
.ui-jeu-activite[open] .ui-jeu-icone-ouvrir { display: none; }
.ui-jeu-activite[open] .ui-jeu-icone-fermer { display: inline-block; }
.ui-jeu-ajout-bouton .ui-jeu-icone-fermer { margin-left: auto; }
[data-jeu-etape="activites"]:has(.ui-jeu-activites .ui-jeu-activite[open]) .ui-jeu-activites > li:not(:has(> .ui-jeu-activite[open])),
[data-jeu-etape="activites"]:has(.ui-jeu-activites .ui-jeu-activite[open]) .ui-jeu-ajout,
[data-jeu-etape="activites"]:has(.ui-jeu-ajout[open]) .ui-jeu-activites,
[data-jeu-etape="activites"]:has(.ui-jeu-ajout[open]) .ui-jeu-exemple { display: none; }
@media (max-width: 575.98px) {
  .ui-jeu-activite-form { grid-template-columns: minmax(0, 1fr); }
  .ui-jeu-activite-image { max-width: 12rem; }
}
.ui-jeu-tirage-resume { display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-3); font-weight: var(--fw-semibold); color: var(--color-titre); }
.ui-jeu-tirage-resume .material-symbols-outlined { color: var(--color-primary); }
.ui-jeu-tirage-form { padding: var(--space-3); border-top: 1px solid var(--border); }
.ui-jeu-tirage-form .ui-edition-intro { margin: 0 0 var(--space-3); }
.ui-jeu-tirage-direct { padding: 0; border-top: 0; }
.ui-jeu-tirage-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.ui-jeu-tirage-ligne .ui-form-label { margin: 0; }
.ui-jeu-tirage-ligne .ui-form-control { flex: none; width: 6rem; max-width: 50%; margin-right: auto; text-align: center; }
.ui-jeu-tour { display: flex; align-items: center; gap: var(--space-1); margin-top: var(--space-2); color: var(--text-muted); font-size: var(--fs-sm); font-weight: var(--fw-bold); }
.ui-jeu-tour .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-jeu-pause { color: var(--color-primary); }
.ui-jeu-horaire + .ui-jeu-horaire { margin-top: var(--space-3); }
.ui-jeu-match-terrain { display: inline-flex; align-items: center; gap: var(--space-1); }
.ui-jeu-match-terrain .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-jeu-actions-admin { gap: var(--space-2); }
.ui-jeu-tirer-titre { margin: 0; }
.ui-jeu-classement-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); margin: var(--space-4) 0 var(--space-3); }
.ui-jeu-planning-titre { margin-top: calc(var(--space-4) * 2); }
.ui-jeu-orga-form > fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.ui-jeu-format { margin: 0 0 var(--space-4); }
.ui-jeu-format-fige { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-card); color: var(--text-muted); }
.ui-jeu-format-fige strong { color: var(--color-titre); }
.ui-jeu-format-fige .material-symbols-outlined { color: var(--color-primary); font-size: var(--icon-sm); }
.ui-jeu-orga-titre { margin: var(--space-4) 0 var(--space-2); }
.ui-jeu-orga-joue { margin-bottom: var(--space-4); }
.ui-jeu-orga-joue .ui-form-text { margin: var(--space-1) 0 0; }
.ui-jeu-orga-titre:first-child { margin-top: 0; }
.ui-jeu-orga-form .ui-jeu-orga-titre:first-child { margin-top: var(--space-4); }
.ui-jeu-terrains .ui-jeu-activite-texte { flex: 1; }
.ui-jeu-horaire { gap: var(--space-2) var(--space-4); }
.ui-jeu-horaire .ui-form-control { width: 5rem; }
.ui-jeu-horaire-champ { display: inline-flex; align-items: center; gap: var(--space-3); }
.ui-jeu-horaire-champ .ui-form-control { margin-right: 0; }
.ui-jeu-horaire-champ + .ui-jeu-horaire-champ { margin-left: auto; }
.ui-jeu-horaire-grille { display: grid; grid-template-columns: max-content 8rem; align-items: center; gap: var(--space-2) var(--space-4); }
.ui-jeu-horaire-grille .ui-form-label { margin: 0; }
.ui-jeu-horaire-grille .ui-form-control { width: 100%; text-align: center; }
.ui-jeu-horaire-aide { margin: var(--space-2) 0 0; }
.ui-jeu-terrain { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--space-2); }
.ui-jeu-terrain > .ui-jeu-activite { flex: 1; min-width: 0; }
.ui-jeu-terrain-supprimer > summary { margin-top: var(--space-2); }
.ui-jeu-terrain-actions { display: flex; flex: none; align-items: center; gap: var(--space-2); margin-left: auto; }
.ui-jeu-terrain-dispo .form-check { display: flex; align-items: center; gap: var(--space-2); margin: 0; font-size: var(--fs-sm); color: var(--text-muted); }
.ui-jeu-terrain.is-indisponible .ui-jeu-activite-texte { opacity: .55; }
.ui-jeu-terrain-form, .ui-jeu-terrain-confirmer { margin: 0 var(--space-3) var(--space-3); }
.ui-jeu-terrain-ajout .ui-form-control { margin-right: 0; }
.ui-jeu-terrain-ajout .ui-jeu-terrain-nom { flex: 1; width: auto; max-width: none; min-width: 10rem; text-align: left; }
.ui-jeu-tirage-vide { padding: var(--space-3); border: 1px dashed var(--border); border-radius: var(--radius-md); }
.ui-jeu-tirage-vide .ui-edition-intro { margin: 0 0 var(--space-3); }
.ui-jeu-equipes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: var(--space-4) 0 0; padding: 0; list-style: none; }
.ui-jeu-equipe { min-width: 0; padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-card); }
.ui-jeu-equipe-nom > summary { display: flex; align-items: center; gap: var(--space-2); list-style: none; cursor: pointer; }
.ui-jeu-equipe-nom > summary::-webkit-details-marker { display: none; }
.ui-jeu-equipe-titre { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.ui-jeu-equipe-titre strong { overflow: hidden; color: var(--color-titre); text-overflow: ellipsis; white-space: nowrap; }
.ui-jeu-equipe-titre span { color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-equipe-nom > summary:hover .ui-jeu-activite-modifier,
.ui-jeu-equipe-nom[open] .ui-jeu-activite-modifier { background: var(--teinte-neutre); }
.ui-jeu-equipe-renommer { display: flex; gap: var(--space-2); margin-top: var(--space-2); }
.ui-jeu-equipe-renommer .ui-form-control { flex: 1; min-width: 0; }
.ui-jeu-membres { display: flex; flex-wrap: wrap; gap: var(--space-1); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.ui-jeu-membres li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-2) var(--space-1) var(--space-1);
  border-radius: var(--radius-pill);
  background: var(--teinte-neutre);
  font-size: var(--fs-sm);
}
[data-jeu-deplacer] .ui-jeu-membres li { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
[data-jeu-deplacer] .ui-jeu-membres img { pointer-events: none; -webkit-user-drag: none; }
[data-jeu-deplacer].is-glisse,
[data-jeu-deplacer].is-glisse .ui-jeu-membres li { cursor: grabbing; }
.ui-jeu-membres > li.is-glissee { position: fixed; z-index: 1080; margin: 0; box-shadow: var(--shadow-md); pointer-events: none; transform: rotate(-2deg) scale(1.05); }
.ui-jeu-equipe { transition: border-color 0.15s ease, background-color 0.15s ease; }
.ui-jeu-equipe.is-cible { border-color: var(--color-primary); background: var(--surface-douce); }
.ui-jeu-membres img,
.ui-jeu-membre-initiale { flex: none; width: var(--icon-lg); height: var(--icon-lg); border-radius: 50%; object-fit: cover; }
.ui-jeu-membre-initiale { display: grid; place-items: center; background: var(--color-primary); color: var(--white); font-size: var(--fs-caption); font-weight: var(--fw-bold); }
@media (max-width: 575.98px) {
  .ui-jeu-equipes { grid-template-columns: minmax(0, 1fr); }
}
.ui-jeu-classement { display: grid; gap: var(--space-2); margin: 0; padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-douce); list-style: none; }
.ui-jeu-classement li { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 2fr) auto; align-items: center; gap: var(--space-3); }
.ui-jeu-classement-rang { display: grid; place-items: center; width: var(--icon-lg); height: var(--icon-lg); border-radius: 50%; background: var(--teinte-neutre-forte); color: var(--color-titre); font-size: var(--fs-caption); font-weight: var(--fw-bold); }
.ui-jeu-classement li:first-child .ui-jeu-classement-rang { background: var(--color-primary); color: var(--white); }
.ui-jeu-classement-nom { overflow: hidden; font-weight: var(--fw-semibold); text-overflow: ellipsis; white-space: nowrap; }
.ui-jeu-classement-barre { height: 6px; border-radius: var(--radius-pill); background: var(--teinte-neutre); overflow: hidden; }
.ui-jeu-classement-barre span { display: block; width: var(--part); height: 100%; border-radius: inherit; background: var(--color-primary); }
.ui-jeu-classement-total { color: var(--color-titre); text-align: right; }
.ui-jeu-scores-titre { margin: var(--space-4) 0 var(--space-2); }
.ui-jeu-scores-etat {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--teinte-neutre);
  color: var(--text-muted);
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
}
.ui-jeu-scores-etat .material-symbols-outlined { font-size: var(--icon-sm); }
.ui-jeu-scores-complete { background: color-mix(in srgb, var(--color-primary) 12%, transparent); color: var(--color-primary); }
.ui-jeu-scores-manque { background: color-mix(in srgb, var(--warning-ink) 12%, transparent); color: var(--warning-ink); }
.ui-jeu-points { padding: var(--space-3); border-top: 1px solid var(--border); }
.ui-jeu-points-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-4); margin: 0 0 var(--space-2); padding: 0; list-style: none; }
.ui-jeu-points-liste li { display: flex; align-items: center; gap: var(--space-2); }
.ui-jeu-points-equipe { flex: 1; min-width: 0; overflow: hidden; font-weight: var(--fw-semibold); text-overflow: ellipsis; white-space: nowrap; }
.ui-jeu-points-liste .ui-form-control { flex: none; width: 6rem; text-align: center; }
@media (max-width: 575.98px) {
  .ui-jeu-points-liste { grid-template-columns: minmax(0, 1fr); }
  .ui-jeu-classement li { grid-template-columns: auto minmax(0, 1fr) auto; }
  .ui-jeu-classement-barre { display: none; }
}
.ui-jeu-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.ui-jeu-modes > form,
.ui-jeu-modes > div { display: flex; }
.ui-jeu-mode {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  color: var(--text-muted);
  font-size: var(--fs-sm);
  text-align: left;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ui-jeu-mode:hover,
.ui-jeu-mode:focus-visible { border-color: var(--color-primary); box-shadow: var(--shadow-md); }
.ui-jeu-mode strong { color: var(--color-titre); font-size: var(--fs-h5); }
.ui-jeu-mode em { margin-top: auto; color: var(--color-primary); font-style: normal; font-weight: var(--fw-semibold); }
.ui-jeu-mode-icone { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: color-mix(in srgb, var(--color-primary) 12%, transparent); color: var(--color-primary); }
.ui-jeu-mode-icone .material-symbols-outlined { font-size: var(--icon-lg); }
.ui-jeu-mode-detail { display: flex; flex-direction: column; gap: var(--space-3); }
.ui-jeu-mode-detail > * { margin: 0; }
.ui-jeu-mode-detail-tete { display: flex; align-items: center; gap: var(--space-3); }
.ui-jeu-mode-detail-tete strong { color: var(--color-titre); font-size: var(--fs-h5); }
.ui-jeu-mode-sous-titre { margin-top: var(--space-2); color: var(--color-titre); font-size: var(--fs-base); font-weight: var(--fw-bold); }
.ui-jeu-mode-etapes { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.ui-jeu-mode-etapes li { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--fs-sm); }
.ui-jeu-mode-etapes .ui-edition-fil-num { flex: none; background: var(--color-primary); color: var(--white); font-size: var(--fs-caption); font-weight: var(--fw-bold); }
.ui-jeu-mode-facons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.ui-jeu-mode-facon { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-md); }
.ui-jeu-mode-facon .material-symbols-outlined { color: var(--color-primary); font-size: var(--icon-lg); }
.ui-jeu-mode-facon strong { color: var(--color-titre); font-size: var(--fs-sm); }
.ui-jeu-mode-facon span:last-child { color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-mode-detail-pied { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-2); }
.ui-jeu-mode-detail-pied > [data-jeu-demo] { margin-left: auto; }
.ui-jeu-demo {
  width: calc(100vw - var(--space-5) * 2);
  max-width: 100rem;
  height: calc(100vh - var(--space-5) * 2);
  padding: 0;
  border: 0;
  border-radius: var(--radius-md);
  background: var(--color-dark);
  overflow: hidden;
}
.ui-jeu-demo::backdrop { background: var(--color-voile); }
.ui-jeu-demo-cadre { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 767.98px) {
  .ui-jeu-demo { width: 100vw; max-width: none; height: 100vh; max-height: none; border-radius: 0; }
}
@media (max-width: 575px) {
  .ui-jeu-mode-facons { grid-template-columns: minmax(0, 1fr); }
  .ui-jeu-mode-detail-pied > .btn { flex: 1 1 100%; }
}
.ui-jeu-match-numero { color: var(--color-primary); font-weight: var(--fw-bold); }
.ui-jeu-activite-vignette.ui-jeu-match-numero { align-self: stretch; aspect-ratio: auto; }
.ui-jeu-match-contre { color: var(--text-muted); font-weight: var(--fw-normal); }
.ui-jeu-sortie-type { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin-top: var(--space-3); color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-sortie-type .material-symbols-outlined { color: var(--color-primary); font-size: var(--icon-md); }
.ui-jeu-sortie-type strong { color: var(--color-titre); }
.ui-jeu-sortie-type form { display: inline; }
.ui-jeu-sortie-changer { padding: 0; border: 0; background: none; color: var(--color-primary); font-weight: var(--fw-semibold); text-decoration: underline; cursor: pointer; }
@media (max-width: 575.98px) {
  .ui-jeu-modes { grid-template-columns: minmax(0, 1fr); }
}
.ui-jeu-admin { padding: var(--space-4); }
.ui-jeu-admin + .ui-parametres-encart { margin-top: var(--space-4); }
.ui-jeu-publier { margin: 0; }
.ui-jeu-publier .form-check { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0; }
.ui-jeu-publier .form-check-label { display: flex; flex-direction: column; color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-publier .form-check-label strong { color: var(--color-titre); font-size: var(--fs-base); }
.ui-jeu-sortie .ui-jeu-publier { padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-douce); }
.ui-jeu-admin--publier { margin-bottom: var(--space-4); }
.ui-jeu-sortie-votre { display: grid; gap: var(--space-3); padding-top: var(--space-5); border-top: 1px solid var(--border); }
.ui-jeu-sortie-votre-titre { margin: 0; font-size: var(--fs-h5); line-height: var(--lh-heading); color: var(--color-titre); }
.ui-jeu-sortie--votre { margin-top: var(--space-4); }
.ui-jeu-gps { display: grid; gap: var(--space-3); margin-top: var(--space-4); }
.ui-jeu-gps > form,
.ui-jeu-gps > div { display: flex; }
.ui-jeu-gp-case { position: relative; }
.ui-jeu-gp-supprimer { position: absolute; top: var(--space-3); right: var(--space-3); margin: 0; }
.ui-jeu-gp-boutons { position: absolute; right: var(--space-4); bottom: var(--space-4); display: flex; gap: var(--space-2); }
@media (max-width: 575.98px) {
  .ui-jeu-gp-case .ui-jeu-gp { padding-bottom: calc(var(--space-4) * 2 + var(--control-h-sm)); }
}
.ui-jeu-gp { color: var(--text-muted); text-decoration: none; }
.ui-jeu-gp.is-ouvert { border-color: var(--color-primary); }
.ui-jeu-gp-ajouter { border-style: dashed; }
.ui-jeu-reglages { display: grid; gap: calc(var(--space-4) * 2); }
.ui-jeu-reglages-bloc { display: grid; gap: var(--space-3); }
.ui-jeu-reglages-bloc > .ui-edition-bloc-titre { margin: 0; }
.ui-jeu-reglages-bloc .ui-edition-intro { margin: 0; }
.ui-jeu-reglages-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); }
.ui-jeu-reglages-tete .ui-edition-bloc-titre { margin: 0; }
.ui-jeu-reglages-bloc .ui-jeu-format { margin: 0; }
.ui-jeu-reglages-carte { padding: 0 var(--space-4); border: 1px solid var(--border); border-radius: var(--radius); }
.ui-jeu-reglages-carte > * { padding: var(--space-3) 0; }
.ui-jeu-reglages .ui-jeu-sortie-resume { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
.ui-jeu-reglages .ui-jeu-sortie-resume li { flex-direction: column; justify-content: center; gap: var(--space-1); padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-douce); text-align: center; }
.ui-jeu-reglages-qr .ui-jeu-sortie-reglage-texte .ui-jeu-reglage-boutons { align-self: flex-start; margin-top: var(--space-2); }
.ui-jeu-reglage-boutons { display: flex; flex: none; flex-wrap: wrap; gap: var(--space-2); }
.ui-jeu-reglages-qr .ui-jeu-qr-image { flex: none; width: 8rem; margin: 0; }
.ui-jeu-sortie-reglage.ui-jeu-reglages-qr { align-items: flex-start; }
.ui-jeu-sortie--votre .ui-jeu-sortie-votre { gap: var(--space-4); padding-top: 0; border-top: 0; }
.ui-jeu-sortie--votre .ui-jeu-sortie-votre-titre { font-size: var(--fs-h4); }
.ui-jeu-sortie-votre-tete { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.ui-jeu-sortie-votre-nom { flex: 1; min-width: 0; }
.ui-jeu-sortie-votre-nom .ui-eyebrow { margin: 0; }
.ui-jeu-sortie-votre-nom form { margin: var(--space-1) 0 0; font-size: var(--fs-sm); }
.ui-jeu-sortie-statut { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-sortie--votre .ui-jeu-sortie-resume { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
.ui-jeu-sortie--votre .ui-jeu-sortie-resume li { flex-direction: column; justify-content: center; gap: var(--space-1); padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-douce); text-align: center; }
.ui-jeu-sortie--votre .ui-jeu-sortie-resume .material-symbols-outlined { font-size: var(--icon-md); }
.ui-jeu-sortie-reglages { border-top: 1px solid var(--border); }
.ui-jeu-sortie-reglages > * { padding: var(--space-3) 0; border-bottom: 1px solid var(--border); }
.ui-jeu-sortie .ui-jeu-sortie-reglages .ui-jeu-publier { padding: var(--space-3) 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: none; }
.ui-jeu-sortie-reglages > :last-child { border-bottom: 0; }
.ui-jeu-sortie .ui-jeu-sortie-reglages .ui-jeu-publier:last-child { border-bottom: 0; }
.ui-jeu-sortie-reglage { display: flex; align-items: center; gap: var(--space-2) var(--space-3); }
.ui-jeu-sortie-reglage > .material-symbols-outlined { align-self: flex-start; margin-top: var(--space-1); color: var(--color-primary); font-size: var(--icon-md); }
.ui-jeu-sortie-reglage-texte { display: flex; flex: 1; flex-direction: column; min-width: 0; color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-sortie-reglage-texte strong { color: var(--color-titre); font-size: var(--fs-base); }
.ui-jeu-sortie-votre .ui-jeu-sortie-type,
.ui-jeu-sortie-votre .ui-jeu-sortie-resume { margin: 0; }
.ui-jeu-sortie-qr-lien { display: inline-flex; align-items: center; gap: var(--space-1) var(--space-2); margin-left: auto; }
.ui-jeu-sortie-qr-lien .material-symbols-outlined { color: var(--color-primary); }
.ui-jeu-qr-image { width: min(100%, 18rem); margin: var(--space-3) auto 0; padding: var(--space-2); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); }
.ui-jeu-qr-image svg { display: block; width: 100%; height: auto; }
.ui-jeu-genre {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.125rem; height: 1.125rem; margin-right: var(--space-2);
  border-radius: var(--radius-pill); background: color-mix(in srgb, var(--color-primary) 12%, transparent); color: var(--color-primary);
  font-size: var(--fs-micro); font-weight: var(--fw-bold); line-height: 1; vertical-align: middle; position: relative; top: -1px;
}
.ui-jeu-match-duel { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--space-3); }
.ui-jeu-match-cote { display: flex; flex-direction: column; min-width: 0; line-height: var(--lh-heading); }
.ui-jeu-match-cote strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-jeu-match-duel + .ui-jeu-match-terrain { margin-top: var(--space-1); color: var(--text-muted); font-size: var(--fs-sm); }
.ui-jeu-match-duel > .ui-jeu-match-contre { margin: 0 var(--space-4); }
.ui-jeu-retard { margin-bottom: var(--space-4); }
.ui-jeu-manquants { margin: var(--space-1) 0 0; padding-left: var(--space-4); }
