/* Couche finale de cohérence.
   Elle est volontairement chargée après les styles historiques et les
   préférences d’accessibilité afin que les mêmes fondations gagnent partout. */
:root {
  --ui-control-radius: 12px;
  --ui-card-radius: 20px;
  --ui-hero-radius: 24px;
  --ui-hairline: color-mix(in srgb, var(--border) 88%, transparent);
  --ui-surface: color-mix(in srgb, var(--card) 97%, var(--bg));
  --ui-soft: color-mix(in srgb, var(--accent) 7%, var(--card));
  --ui-shadow: 0 1px 2px color-mix(in srgb, var(--text) 5%, transparent),
               0 10px 28px color-mix(in srgb, var(--text) 6%, transparent);
  --ui-shadow-float: 0 18px 48px color-mix(in srgb, var(--text) 14%, transparent);
}

html { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; }
body { background: var(--bg); color: var(--text); }
.container,
.site-header .inner,
.context-nav-inner { width: 100%; max-width: var(--content-max-width); }
#main-content { min-width: 0; }

:where(.card,.admin-panel,.real-admin-card,.meeting-card,.forum-section-card,
  .forum-category-card,.discover-card,.public-club-card,.club-category-card,
  .profile-collapsible,.notification-card,.health-card,.protection-card) {
  min-width: 0;
  border-color: var(--ui-hairline);
  border-radius: var(--ui-card-radius);
  background: var(--ui-surface);
  color: var(--text);
  box-shadow: var(--ui-shadow);
}
:where(.community-hero,.page-hero,.club-hero,.public-club-hero,
  .club-directory-hero,.spaces-hub-hero,.discover-hero,.ideas-hero,
  .real-admin-hero,.club-admin-intro) {
  min-width: 0;
  border-radius: var(--ui-hero-radius);
}

:where(h1,h2,h3,strong,label,legend) { color: var(--text); }
:where(p,small,.page-sub,.field-hint,.form-help,.help-text) { overflow-wrap: anywhere; }
:where(.page-sub,.field-hint,.form-help,.help-text) { color: var(--text-sub); }
:where(.home-kicker,.section-kicker,.page-kicker,.admin-kicker) {
  color: var(--accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .09em;
  line-height: 1.3;
}

:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border-color: var(--ui-hairline);
  border-radius: var(--ui-control-radius);
  background: color-mix(in srgb, var(--card) 86%, var(--bg));
  color: var(--text);
  font: inherit;
}
:where(input,select,textarea)::placeholder { color: var(--text-sub); opacity: .72; }
:where(.btn,.button,button:not(.unstyled-button),summary) {
  max-width: 100%;
  border-radius: var(--ui-control-radius);
  font-family: inherit;
}
:where(.btn,.button,button:not(.unstyled-button)) { min-height: 42px; }
.btn-primary,
.button-primary {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accent-text, #fff);
  box-shadow: 0 5px 15px color-mix(in srgb, var(--accent) 20%, transparent);
}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 42%, transparent);
  outline-offset: 3px;
}

:where(form,.form-grid,.real-admin-form,.admin-edit-form,
  .profile-settings-content,.public-inline-editor-form) { min-width: 0; }
:where(.form-grid,.real-admin-two-col,.admin-edit-form-grid,
  .profile-form-grid,.public-editor-grid) > * { min-width: 0; }
:where(.form-actions,.admin-actions,.real-admin-actions,.email-composer-actions) {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

:where(table) { width: 100%; border-collapse: collapse; }
:where(th,td) { padding: 11px 12px; border-bottom: 1px solid var(--ui-hairline); text-align: left; }
:where(th) { color: var(--text-sub); font-size: .78rem; letter-spacing: .03em; }
:where(.table-wrap,.admin-table-wrap,.responsive-table) {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--ui-hairline);
  border-radius: var(--ui-card-radius);
  background: var(--ui-surface);
  -webkit-overflow-scrolling: touch;
}

:where(dialog,.modal-card,.event-preview-card,.display-menu-panel,
  .account-menu-panel,.space-switcher-menu,.nav-dropdown-menu,
  .admin-nav-dropdown-panel,.real-space-admin-dropdown-panel) {
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px);
  border-color: var(--ui-hairline);
  background: var(--ui-surface);
  color: var(--text);
  box-shadow: var(--ui-shadow-float);
}

/* Les deux consoles partagent exactement les mêmes états. */
.admin-nav.admin-nav-modern,
.real-space-admin-menu.real-space-admin-modern {
  border-color: var(--ui-hairline);
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow);
}
.admin-nav-modern :where(.admin-nav-primary a,.admin-nav-dropdown summary),
.real-space-admin-modern :where(.real-space-admin-primary a,.real-space-admin-dropdown summary) {
  color: var(--text-sub);
}
.admin-nav-modern :where(.admin-nav-primary a.is-active,.admin-nav-dropdown summary.is-active),
.real-space-admin-modern :where(.real-space-admin-primary a.is-active,.real-space-admin-dropdown summary.is-active) {
  border-color: color-mix(in srgb, var(--accent) 32%, var(--border));
  background: var(--ui-soft);
  color: var(--accent);
  box-shadow: none;
}

html[data-theme="dark"] :where(.card,.admin-panel,.real-admin-card,.meeting-card,
  .forum-section-card,.forum-category-card,.discover-card,.public-club-card,
  .club-category-card,.profile-collapsible,.notification-card,.health-card,
  .protection-card,.admin-nav,.real-space-admin-menu) {
  background: var(--ui-surface);
  color: var(--text);
}
html[data-theme="dark"] :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  background: color-mix(in srgb, var(--bg) 72%, var(--card));
  color: var(--text);
}

@media (max-width: 760px) {
  :root { --ui-card-radius: 18px; --ui-hero-radius: 20px; }
  .container,
  .site-header .inner,
  .context-nav-inner { padding-left: max(14px, env(safe-area-inset-left)); padding-right: max(14px, env(safe-area-inset-right)); }
  #main-content { overflow: clip; }
  :where(.card,.admin-panel,.real-admin-card,.meeting-card,
    .forum-section-card,.forum-category-card,.discover-card,.public-club-card,
    .club-category-card,.profile-collapsible,.notification-card,.health-card,
    .protection-card) { max-width: 100%; }
  :where(.form-grid,.real-admin-two-col,.admin-edit-form-grid,
    .profile-form-grid,.public-editor-grid) { grid-template-columns: minmax(0, 1fr); }
  :where(.form-actions,.admin-actions,.real-admin-actions,.email-composer-actions) {
    align-items: stretch;
    flex-direction: column;
  }
  :where(.form-actions,.admin-actions,.real-admin-actions,.email-composer-actions) > :where(.btn,.button,button) {
    width: 100%;
    justify-content: center;
  }
  :where(.btn,.button,button:not(.unstyled-button),input,select,textarea,summary) { min-height: 44px; }
  :where(dialog,.modal-card,.event-preview-card,.display-menu-panel) {
    width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px - env(safe-area-inset-bottom));
    overflow: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
