/* GENERATED by npm run build:styles. Edit assets/styles/, never this bundle. */
/* Module design-tokens. Ordre défini dans manifest.json. */
:root {
  /* Valeurs partagées : conserver la palette dynamique du site. */
  --font-body: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --site-header-height: 68px;
  --content-max-width: 1220px;
  --form-comfort-width: 860px;
  --reading-width: 760px;
  --radius-control: 12px;
  --radius-card: 20px;
  --radius-hero: 24px;
  --space-page: clamp(18px, 3vw, 30px);
  --surface-raised: color-mix(in srgb, var(--card) 97%, var(--bg));
  --bg: #f5f5f7;
  --card: #ffffff;
  --border: #d9d9de;
  --text: #1d1d1f;
  --text-sub: #6e6e73;
  --accent: #0071e3;
  --accent-dark: #005bb5;
  --danger: #d1453d;
  --ok: #1a8f5a;
  --radius: 16px;
  --shadow: 0 1px 2px rgba(20,30,50,.03), 0 6px 20px rgba(20,30,50,.045);
  --shadow-lift: 0 10px 30px rgba(20,30,50,.10);
}
/* Bascule manuelle (surcharge le prefers-color-scheme, voir bouton ☀️/🌙 dans l'en-tête) */
:root[data-theme="light"] {
  --bg: #f5f5f7; --card: #ffffff; --border: #d9d9de; --text: #1d1d1f; --text-sub: #6e6e73;
  --accent: #0071e3; --accent-dark: #005bb5;
  --shadow: 0 1px 2px rgba(20,30,50,.03), 0 6px 20px rgba(20,30,50,.045);
  --shadow-lift: 0 10px 30px rgba(20,30,50,.10);
}
:root[data-theme="dark"] {
  --bg: #10151f; --card: #171f2c; --border: #2a3444; --text: #e6eaf1; --text-sub: #93a0b4;
  --accent: #5b8cf0; --accent-dark: #7ba1f5;
  --shadow: 0 1px 2px rgba(0,0,0,.25), 0 2px 10px rgba(0,0,0,.2);
  --shadow-lift: 0 4px 20px rgba(0,0,0,.35);
}

/* Module base-typographie. Ordre défini dans manifest.json. */
* { box-sizing: border-box; }
body {
  margin: 0;
  padding-top: var(--site-header-height);
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.5;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.container { width: 100%; max-width: var(--content-max-width); margin: 0 auto; padding: 0 20px; }

/* Module en-tete. Ordre défini dans manifest.json. */
/* ── En-tête ── */
.site-header {
  background: var(--card);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 10;
}
.site-header .inner { display: flex; align-items: center; gap: 20px; width: 100%; max-width: var(--content-max-width); padding: 14px 24px; margin: 0 auto; }
.site-header .inner { width: 100%; box-sizing: border-box; min-width: 0; }
.brand-space { display: flex; align-items: center; gap: 9px; min-width: 0; }
.site-header .logo { font-weight: 800; font-size: 19px; color: var(--text); white-space: nowrap; min-width: 0; }
.space-switcher { position: relative; flex: none; }
.space-switcher summary { display: inline-flex; align-items: center; gap: 6px; max-width: 190px; min-height: 34px; padding: 6px 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); color: var(--text); cursor: pointer; list-style: none; font-size: 12px; font-weight: 800; }
.space-switcher summary::-webkit-details-marker { display: none; }
.space-switcher summary:hover { border-color: var(--accent); color: var(--accent); }
.space-switcher[open] summary { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--card)); }
.space-switcher-icon { font-size: 15px; flex: none; }
.space-switcher-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.space-switcher .nav-caret { flex: none; margin-left: 0; }
.space-switcher-menu { position: absolute; top: calc(100% + 7px); left: 0; z-index: 70; display: none; width: min(330px, calc(100vw - 28px)); max-height: min(460px, calc(100dvh - 100px)); overflow-y: auto; padding: 7px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); box-shadow: 0 16px 38px rgba(8,16,30,.2); }
.space-switcher[open] .space-switcher-menu { display: block; }
.space-switcher-menu a { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 10px; border-radius: 10px; color: var(--text); }
.space-switcher-menu a:hover, .space-switcher-menu a.is-active { background: color-mix(in srgb, var(--accent) 9%, var(--bg)); color: var(--accent); text-decoration: none; }
.space-switcher-menu a > span:first-child { font-size: 19px; }
.space-switcher-menu strong, .space-switcher-menu small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.space-switcher-menu strong { font-size: 12px; }
.space-switcher-menu small { margin-top: 1px; color: var(--text-sub); font-size: 10px; font-weight: 500; }
.space-switcher-menu em { color: var(--ok); font-size: 13px; font-style: normal; font-weight: 800; }
.space-switcher-menu .space-switcher-manage { margin-top: 5px; border-top: 1px solid var(--border); border-radius: 0; color: var(--accent); }
.site-header nav { display: flex; align-items: center; gap: 2px; flex: 1; flex-wrap: wrap; font-size: 14px; position: relative; }
.nav-link {
  display: inline-flex; align-items: center; gap: 6px; color: var(--text-sub); font-weight: 600;
  padding: 8px 12px; border-radius: 20px; background: none; border: none; font-size: 14px; font-family: inherit; cursor: pointer;
}
.nav-link:hover { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); text-decoration: none; }
.nav-icon { font-size: 15px; line-height: 1; }
.nav-dropdown { position: relative; }
.nav-dropdown > summary { list-style: none; }
.nav-dropdown > summary::-webkit-details-marker { display: none; }
.nav-caret { font-size: 10px; margin-left: -2px; }
.nav-dropdown-menu {
  display: none; position: absolute; top: 100%; left: 0; margin-top: 4px; min-width: 190px;
  background: var(--card); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow-lift);
  padding: 6px; flex-direction: column; gap: 2px; z-index: 20;
}
.nav-dropdown[open] .nav-dropdown-menu, .nav-dropdown-menu.is-open { display: flex; }
.nav-dropdown[open] .nav-caret { transform: rotate(180deg); }
.nav-dropdown-menu a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; color: var(--text); font-weight: 600; font-size: 13px; }
.nav-dropdown-menu a:hover { background: var(--bg); color: var(--accent); text-decoration: none; }
.nav-dropdown-menu .nav-club-manage-link { margin-top: 3px; border-top: 1px solid var(--border); border-radius: 0 0 8px 8px; color: var(--accent); font-weight: 800; }
.nav-dropdown-menu .nav-club-manage-link:hover { background: color-mix(in srgb, var(--accent) 9%, var(--bg)); }
.mobile-nav-search, .mobile-space-picker, .mobile-nav-primary-label, .mobile-nav-utilities, .mobile-admin-panel, .nav-scrim { display: none; }
.nav-link-mobile { display: none; }
.context-nav { border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--card) 94%, var(--bg)); }
.context-nav-inner { display: flex; align-items: center; gap: 4px; width: 100%; max-width: var(--content-max-width); margin: 0 auto; padding: 7px 20px; overflow-x: auto; scrollbar-width: none; }
.context-nav-inner::-webkit-scrollbar { display: none; }
.context-nav-place { display: inline-flex; align-items: center; gap: 7px; min-width: 0; margin-right: 8px; padding-right: 12px; border-right: 1px solid var(--border); color: var(--text); white-space: nowrap; }
.context-nav-place strong { max-width: 150px; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.context-nav-inner a { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; padding: 6px 9px; border-radius: 9px; color: var(--text-sub); font-size: 12px; font-weight: 720; white-space: nowrap; }
.context-nav-inner a:hover { background: var(--bg); color: var(--accent); text-decoration: none; }
.context-nav-inner a.is-active { background: color-mix(in srgb, var(--accent) 11%, var(--card)); color: var(--accent); }
.context-nav-inner .context-nav-manage { margin-left: auto; color: var(--accent); }
.nav-scrim[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.header-right { display: flex; align-items: center; gap: 10px; }
.mobile-account-menu { display: none; }
.header-logout-form { margin: 0; }
.header-logout-button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 11px 7px 9px; border: 1px solid var(--danger); border-radius: 999px; background: var(--danger); color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; white-space: nowrap; box-shadow: 0 3px 9px rgba(209,69,61,.22); }
.header-logout-button:hover { border-color: #b93831; background: #b93831; color: #fff; box-shadow: 0 5px 13px rgba(209,69,61,.28); }
.header-power-icon { font-size: 17px; line-height: 1; }
.header-admin-link { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 7px 10px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 8%, var(--card)); color: var(--accent); font-size: 12px; font-weight: 800; white-space: nowrap; }
.header-admin-link:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, var(--card)); color: var(--accent); text-decoration: none; }
.account-menu { position: relative; }
.account-menu summary { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; padding: 6px 9px; border: 1px solid var(--border); border-radius: 9px; color: var(--text-sub); cursor: pointer; font-size: 12px; font-weight: 800; list-style: none; }
.account-menu summary::-webkit-details-marker { display: none; }
.account-menu summary:hover, .account-menu[open] summary { border-color: var(--accent); color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.account-menu-panel { position: absolute; top: calc(100% + 7px); right: 0; z-index: 70; display: none; width: 270px; padding: 7px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); box-shadow: 0 16px 38px rgba(8,16,30,.2); }
.account-menu[open] .account-menu-panel { display: block; }
.account-menu-panel a { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px; border-radius: 10px; color: var(--text); }
.account-menu-panel a:hover { color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--bg)); text-decoration: none; }
.account-menu-panel a > span:first-child { font-size: 17px; }
.account-menu-panel strong, .account-menu-panel small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-menu-panel strong { font-size: 12px; }
.account-menu-panel small { margin-top: 1px; color: var(--text-sub); font-size: 10px; font-weight: 500; }
.account-menu-panel form { margin: 5px 0 0; padding-top: 5px; border-top: 1px solid var(--border); }
.account-menu-panel button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 10px; border: 0; border-radius: 10px; background: none; color: var(--danger); cursor: pointer; font: inherit; font-size: 12px; font-weight: 750; text-align: left; }
.account-menu-panel button:hover { background: color-mix(in srgb, var(--danger) 8%, var(--bg)); }
.avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; background: var(--border); flex: none; }
.avatar-lg { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; background: var(--border); flex: none; }
.avatar-fallback, .avatar-lg.avatar-fallback {
  display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff;
}
.theme-toggle { background: none; border: 1px solid var(--border); border-radius: 50%; width: 34px; height: 34px; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; color: var(--text-sub); }
.theme-toggle:hover { border-color: var(--accent); color: var(--accent); }
.nav-toggle { display: none; background: none; border: 1px solid var(--border); border-radius: 8px; width: 38px; height: 38px; cursor: pointer; font-size: 18px; color: var(--text); align-items: center; justify-content: center; }
.search-form { display: flex; }
.search-form { min-width: 0; }

/* Module en-tete. Ordre défini dans manifest.json. */
.search-form input { border: 1px solid var(--border); background: var(--bg); color: var(--text); border-radius: 20px; padding: 6px 14px; font-size: 13px; width: 160px; }

/* Module accueil-communautaire. Ordre défini dans manifest.json. */
/* ── Accueil communautaire ── */
.community-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(230px, .72fr); gap: 30px; padding: 30px; margin: 24px 0 14px; border: 1px solid var(--border); border-radius: 18px; background: linear-gradient(130deg, color-mix(in srgb, var(--accent) 13%, var(--card)), var(--card) 62%); box-shadow: var(--shadow); }
.community-hero::after { content: '◌'; position: absolute; right: -25px; bottom: -80px; font-size: 250px; line-height: 1; color: color-mix(in srgb, var(--accent) 8%, transparent); font-weight: 700; pointer-events: none; }
.community-hero-copy, .community-hero-note { position: relative; z-index: 1; }
.community-hero .page-title { max-width: 740px; margin: 8px 0 10px; font-size: clamp(28px, 3vw, 42px); line-height: 1.12; }
.community-hero-copy > p { max-width: 680px; margin: 0; color: var(--text-sub); font-size: 16px; }
.home-kicker { display: inline-block; color: var(--accent); font-size: 11px; line-height: 1.25; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.home-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.home-admin-link { margin-left: 4px; color: var(--accent); font-size: 13px; font-weight: 700; }
.community-hero-note { align-self: end; padding: 18px; border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border)); border-radius: 14px; background: color-mix(in srgb, var(--card) 78%, transparent); }
.community-hero-note span { display: block; margin-bottom: 7px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.community-hero-note strong { display: block; font-size: 16px; line-height: 1.35; }
.community-hero-note p { margin: 8px 0 0; color: var(--text-sub); font-size: 13px; }
.member-journey { margin: 22px 0; padding: 20px; }
.member-journey-head, .home-section-head, .admin-action-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.member-journey h2, .home-section-head h2, .community-spotlight h2, .admin-action-center h2 { margin: 4px 0 0; font-size: 19px; }
.journey-path-chip { flex: none; padding: 7px 10px; border: 1px solid var(--border); border-radius: 20px; background: var(--bg); font-size: 12px; font-weight: 700; }
.journey-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.journey-step { display: flex; gap: 10px; min-width: 0; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg); }
.journey-step.is-done { background: color-mix(in srgb, var(--ok) 8%, var(--card)); border-color: color-mix(in srgb, var(--ok) 30%, var(--border)); }
.journey-step-number { display: flex; align-items: center; justify-content: center; flex: none; width: 25px; height: 25px; border-radius: 50%; background: var(--card); border: 1px solid var(--border); color: var(--accent); font-size: 12px; font-weight: 800; }
.journey-step.is-done .journey-step-number { color: #fff; background: var(--ok); border-color: var(--ok); }
.journey-step strong { display: block; font-size: 13px; }
.journey-step p { min-height: 38px; margin: 5px 0 7px; color: var(--text-sub); font-size: 12px; line-height: 1.42; }
.journey-step a, .journey-step span { color: var(--accent); font-size: 12px; font-weight: 700; }
.journey-step.is-done span { color: var(--ok); }
.community-pulse { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(230px, .75fr); gap: 18px; margin: 22px 0 30px; }
.community-pulse-main, .community-spotlight { padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow); }
.stats-bar-compact { margin-bottom: 10px; }
.forum-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 32px 0 36px; }
.forum-directory-head { grid-column: 1 / -1; align-items: end; margin-bottom: 0; }
.forum-directory-head > div { min-width: 0; }
.forum-directory-head h2 { margin: 4px 0 5px; font-size: 23px; }
.forum-directory-head p { max-width: 670px; margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.forum-section-card { --section-accent: var(--accent); margin-top: 0; padding: 18px; border: 1px solid var(--border); border-top: 3px solid var(--section-accent); border-radius: 15px; background: var(--card); box-shadow: var(--shadow); }
.forum-section-card.section-tone-1 { --section-accent: #5b63d8; }
.forum-section-card.section-tone-2 { --section-accent: #188f9a; }
.forum-section-card.section-tone-3 { --section-accent: #d17b22; }
.forum-section-card.section-tone-4 { --section-accent: #8b55b8; }
.forum-section-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 13px; border-bottom: 1px solid var(--border); }
.forum-section-card h3 { margin: 0; font-size: 16px; }
.forum-section-card header span { display: block; margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.forum-section-card header > a { flex: none; font-size: 12px; font-weight: 750; }
.forum-category-grid { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 13px; }
.forum-section-card-single .forum-category-grid { grid-template-columns: 1fr; }
.forum-section-card-single .forum-category-card { min-height: 88px; padding: 14px 16px; }
.forum-directory > .card, .forum-directory > .discuss-directory-note { grid-column: 1 / -1; }
.forum-category-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 10px; min-height: 98px; padding: 11px; border: 1px solid color-mix(in srgb, var(--section-accent) 13%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--section-accent) 7%, var(--card)); color: var(--text); transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.forum-category-card:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); background: color-mix(in srgb, var(--accent) 7%, var(--bg)); color: var(--text); text-decoration: none; transform: translateY(-1px); }
.forum-category-card .cat-icon-box { width: 36px; height: 36px; border-radius: 10px; font-size: 17px; }
.forum-category-copy { min-width: 0; }
.forum-category-copy strong, .forum-category-copy small, .forum-category-copy em, .forum-category-copy .forum-category-count { display: block; }
.forum-category-copy strong { color: var(--section-accent); font-size: 13px; line-height: 1.35; }
.forum-category-copy small { display: -webkit-box; overflow: hidden; margin-top: 3px; color: var(--text-sub); font-size: 11px; line-height: 1.38; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.forum-category-copy em { margin-top: 6px; color: var(--text-sub); font-size: 10px; font-style: normal; }
.forum-category-copy .forum-category-count { margin-top: 2px; color: var(--text-sub); font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.forum-category-arrow { align-self: center; color: var(--section-accent); font-size: 15px; font-weight: 800; }
.home-section-head > a { flex: none; padding-top: 6px; font-size: 12px; font-weight: 700; }
.activity-list { margin-top: 15px; }
.activity-row { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-top: 1px solid var(--border); color: var(--text); }
.activity-row:hover { color: var(--accent); text-decoration: none; }
.activity-icon { display: flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; border-radius: 9px; background: var(--bg); }
.activity-copy { min-width: 0; flex: 1; }
.activity-copy strong, .activity-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-copy strong { font-size: 13px; }
.activity-copy small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.activity-row time { flex: none; color: var(--text-sub); font-size: 11px; }
.activity-empty { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 18px; border-radius: 12px; background: var(--bg); }
.activity-empty-icon { display: flex; align-items: center; justify-content: center; flex: none; width: 38px; height: 38px; border-radius: 11px; color: var(--accent); background: color-mix(in srgb, var(--accent) 13%, var(--card)); font-size: 18px; }
.activity-empty strong { font-size: 14px; }
.activity-empty p { margin: 3px 0 0; color: var(--text-sub); font-size: 12px; }
.activity-empty .btn { margin-left: auto; flex: none; }
.community-spotlight { background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 8%, var(--card)), var(--card)); }
.community-spotlight > p { margin: 10px 0 14px; color: var(--text-sub); font-size: 13px; }
.spotlight-link { display: block; margin-top: 11px; padding: 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--text); }
.spotlight-link:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.spotlight-link strong, .spotlight-link span { display: block; }
.spotlight-link strong { font-size: 13px; }
.spotlight-link span { margin-top: 4px; color: var(--text-sub); font-size: 11px; }
.spotlight-prompt { border-color: rgba(240, 141, 41, .38); background: linear-gradient(135deg, rgba(240, 141, 41, .09), var(--card)); }
.spotlight-prompt em { display: block; margin-top: 10px; color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; }
.visitor-start { margin: 26px 0 8px; }
.visitor-start .home-section-head { margin-bottom: 14px; }
.visitor-start .home-section-head p { max-width: 670px; margin: 4px 0 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.visitor-start-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.visitor-start-card { display: block; min-height: 148px; padding: 15px; border: 1px solid var(--border); border-top: 3px solid var(--visitor-card-accent, var(--accent)); border-radius: 13px; background: var(--card); color: var(--text); box-shadow: var(--shadow); }
.visitor-start-card:hover { border-color: var(--visitor-card-accent, var(--accent)); color: var(--text); text-decoration: none; transform: translateY(-1px); }
.visitor-start-card-learning { --visitor-card-accent: #5b63d8; }
.visitor-start-card-gallery { --visitor-card-accent: #188f9a; }

/* Module accueil-communautaire. Ordre défini dans manifest.json. */
.visitor-start-card-clubs { --visitor-card-accent: #d17b22; }
.visitor-start-card-agenda { --visitor-card-accent: #8b55b8; }
.visitor-start-card-forum { --visitor-card-accent: #3b6fd6; }
.visitor-start-icon { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-bottom: 10px; border-radius: 9px; background: color-mix(in srgb, var(--visitor-card-accent, var(--accent)) 13%, var(--card)); color: var(--visitor-card-accent, var(--accent)); font-size: 17px; }
.visitor-start-card strong, .visitor-start-card small, .visitor-start-card em { display: block; }
.visitor-start-card strong { font-size: 13px; }
.visitor-start-card small { min-height: 34px; margin-top: 4px; color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.visitor-start-card em { margin-top: 10px; color: var(--visitor-card-accent, var(--accent)); font-size: 11px; font-style: normal; font-weight: 800; }
.journey-feedback { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:15px; padding-top:12px; border-top:1px solid var(--border); color:var(--text-sub); font-size:11px; }
.journey-feedback a { color:var(--accent); font-weight:800; }

/* Module centre-d-action-administrateur. Ordre défini dans manifest.json. */
/* ── Centre d'action administrateur ── */
.admin-action-center { margin: 20px 0; padding: 20px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 14px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--card)), var(--card)); }
.admin-health { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.admin-health span { padding: 6px 9px; border: 1px solid var(--border); border-radius: 20px; background: var(--card); color: var(--text-sub); font-size: 11px; }
.admin-health b { color: var(--text); }
.admin-action-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-top: 18px; }
.admin-action-card { display: flex; gap: 11px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); color: var(--text); }
.admin-action-card:hover { border-color: var(--accent); box-shadow: var(--shadow); text-decoration: none; }
.admin-action-card > span { flex: none; font-size: 20px; }
.admin-action-card strong, .admin-action-card em { display: block; }
.admin-action-card strong { font-size: 13px; }
.admin-action-card p { margin: 5px 0 8px; color: var(--text-sub); font-size: 12px; line-height: 1.4; }
.admin-action-card em { color: var(--accent); font-size: 12px; font-style: normal; font-weight: 700; }
.admin-action-ready { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding: 14px; border-radius: 12px; background: color-mix(in srgb, var(--ok) 8%, var(--card)); }
.admin-action-ready > span { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ok); color: #fff; font-weight: 800; }
.admin-action-ready strong { font-size: 13px; }
.admin-action-ready p { margin: 3px 0 0; color: var(--text-sub); font-size: 12px; }

/* Module administration-complete. Ordre défini dans manifest.json. */
/* ── Administration complète ── */
.site-admin-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr); gap: 24px; margin: 24px 0 18px; padding: clamp(22px, 4vw, 34px); border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 13%, var(--card)), var(--card) 65%); }
.site-admin-hero .page-title, .site-settings-hero .page-title { margin: 6px 0 9px; font-size: clamp(30px, 4vw, 43px); line-height: 1.08; }
.site-admin-hero p, .site-settings-hero > p { max-width: 710px; margin: 0; color: var(--text-sub); line-height: 1.55; }
.site-admin-hero-actions, .site-settings-save { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.site-admin-health { display: grid; align-content: center; gap: 9px; }
.site-admin-health > div { display: flex; align-items: baseline; gap: 10px; padding: 13px 15px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--card) 90%, transparent); }
.site-admin-health b { min-width: 24px; color: var(--accent); font-size: 24px; line-height: 1; }
.site-admin-health span { color: var(--text-sub); font-size: 12px; font-weight: 700; }
.admin-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0 22px; }
.admin-kpi-grid .card { min-height: 114px; padding: 17px; }
.admin-kpi-grid strong, .admin-kpi-grid span, .admin-kpi-grid small { display: block; }
.admin-kpi-grid strong { font-size: 28px; line-height: 1.05; }
.admin-kpi-grid span { margin-top: 6px; font-size: 13px; font-weight: 800; }
.admin-kpi-grid small { margin-top: 3px; color: var(--text-sub); font-size: 11px; }
.admin-kpi-grid .is-alert { border-color: color-mix(in srgb, var(--danger) 55%, var(--border)); }
.admin-kpi-grid .is-alert strong { color: var(--danger); }
.admin-console-section { margin: 28px 0; }
.admin-console-section .home-section-head { margin-bottom: 12px; }
.admin-console-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.admin-console-card { display: flex; min-height: 155px; gap: 13px; padding: 17px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); color: var(--text); box-shadow: var(--shadow); transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.admin-console-card:hover { border-color: var(--accent); box-shadow: 0 12px 26px rgba(20, 32, 56, .12); text-decoration: none; transform: translateY(-2px); }
.admin-console-card > span { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); font-size: 20px; }
.admin-console-card strong, .admin-console-card p, .admin-console-card small { display: block; }
.admin-console-card strong { font-size: 14px; }
.admin-console-card p { margin: 6px 0 11px; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.admin-console-card small { color: var(--accent); font-size: 12px; font-weight: 800; }
.admin-console-card.is-priority { border-color: color-mix(in srgb, var(--danger) 55%, var(--border)); }
.admin-console-card.is-priority > span { background: color-mix(in srgb, var(--danger) 10%, var(--bg)); }
.admin-console-card-featured { grid-column: span 2; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--card)), var(--card)); }
.admin-recent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 28px 0; }
.admin-recent-grid .card { padding: 18px; }
.admin-recent-grid .home-section-head { align-items: baseline; margin-bottom: 8px; }
.admin-recent-grid h2 { margin: 0; font-size: 17px; }
.admin-recent-grid .home-section-head > a { font-size: 12px; font-weight: 800; }
.admin-recent-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--border); font-size: 13px; }
.admin-recent-row a { overflow: hidden; color: var(--text); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.admin-recent-row span { flex: none; color: var(--text-sub); font-size: 11px; }
.site-settings-hero { margin: 20px 0; }
.site-settings-form { display: grid; gap: 14px; max-width: 920px; }
.site-setting-card { padding: clamp(18px, 3vw, 24px); }
.site-setting-heading { display: flex; gap: 12px; margin-bottom: 18px; }
.site-setting-heading > span { display: flex; flex: none; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 11px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); font-size: 19px; }
.site-setting-heading h2 { margin: 0; font-size: 18px; }
.site-setting-heading p { margin: 4px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.site-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.site-setting-card > label, .site-settings-grid > label { display: block; margin-top: 13px; color: var(--text); font-size: 13px; font-weight: 800; }
.site-settings-grid > label { margin-top: 0; }
.site-setting-card input:not([type="color"]), .site-setting-card textarea { width: 100%; margin-top: 6px; }
.site-setting-card input[type="color"] { display: block; width: 60px; height: 42px; margin-top: 6px; padding: 3px; }
.site-setting-card textarea { resize: vertical; line-height: 1.5; }
.site-domain-setting { border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); }
.site-domain-note { display: grid; gap: 3px; margin-top: 13px; padding: 12px 13px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--accent) 6%, var(--card)); }
.site-domain-note strong { font-size: 12px; }
.site-domain-note span { color: var(--text-sub); font-size: 12px; line-height: 1.48; }
.site-domain-note a { font-weight: 750; overflow-wrap: anywhere; }
.setting-preview { display: flex; align-items: center; gap: 7px; margin-top: 8px; color: var(--text-sub); font-size: 11px; font-weight: 600; }
.setting-preview img { max-width: 80px; max-height: 34px; border: 1px solid var(--border); border-radius: 6px; object-fit: contain; }
.site-settings-save { position: sticky; bottom: 12px; justify-content: flex-end; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: color-mix(in srgb, var(--card) 92%, transparent); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.signup-admin-card { overflow: hidden; border-color: color-mix(in srgb, var(--accent) 26%, var(--border)); background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 5%, var(--card)), var(--card) 34%); }
.signup-admin-intro { display: grid; gap: 4px; margin: -2px 0 20px; padding: 12px 13px; border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--accent) 7%, var(--card)); }
.signup-admin-intro strong { font-size: 12px; }
.signup-admin-intro span { color: var(--text-sub); font-size: 12px; line-height: 1.48; }
.signup-admin-block { padding: 19px 0; border-top: 1px solid var(--border); }
.signup-admin-block:last-child { padding-bottom: 0; }
.signup-admin-block-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.signup-admin-block-head h3 { margin: 0; font-size: 15px; letter-spacing: -.015em; }
.signup-admin-block-head p { max-width: 680px; margin: 4px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.signup-admin-badge, .signup-question-status { flex: none; display: inline-flex; align-items: center; min-height: 25px; padding: 4px 8px; border: 1px solid var(--border); border-radius: 999px; color: var(--text-sub); font-size: 10px; font-weight: 800; white-space: nowrap; }
.signup-admin-badge { background: var(--card); }
.signup-admin-toggles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.signup-admin-toggle { display: flex !important; align-items: flex-start; gap: 10px; margin: 0 !important; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); color: var(--text) !important; cursor: pointer; }
.site-setting-card .signup-admin-toggle input[type="checkbox"], .site-setting-card .signup-field-row input[type="checkbox"], .site-setting-card .signup-admin-options input[type="checkbox"], .site-setting-card .signup-answer-options input[type="radio"] { flex: none; width: 16px; height: 16px; margin: 1px 0 0; padding: 0; accent-color: var(--accent); }
.signup-admin-toggle:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 52%, var(--border)); background: color-mix(in srgb, var(--accent) 7%, var(--card)); }
.signup-admin-toggle strong, .signup-admin-toggle small { display: block; }
.signup-admin-toggle strong { font-size: 12px; }
.signup-admin-toggle small { margin-top: 3px; color: var(--text-sub); font-size: 11px; font-weight: 500; line-height: 1.38; }
.signup-admin-selects { margin-top: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.site-setting-card .signup-admin-selects select { width: 100%; margin-top: 6px; }
.signup-field-settings { overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
.signup-field-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding: 12px; }
.signup-field-row + .signup-field-row { border-top: 1px solid var(--border); }
.signup-field-row > div strong, .signup-field-row > div small { display: block; }
.signup-field-row > div strong { font-size: 12px; }
.signup-field-row > div small { margin-top: 3px; color: var(--text-sub); font-size: 11px; line-height: 1.36; }
.signup-field-row > label { display: inline-flex; align-items: center; gap: 6px; color: var(--text-sub); font-size: 11px; font-weight: 750; cursor: pointer; white-space: nowrap; }
.signup-admin-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.signup-admin-options fieldset, .signup-answer-options { min-width: 0; margin: 0; padding: 13px; border: 1px solid var(--border); border-radius: 12px; }
.signup-admin-options legend, .signup-answer-options legend { padding: 0; color: var(--text); font-size: 12px; font-weight: 800; }

/* Module administration-complete. Ordre défini dans manifest.json. */
.signup-admin-options p { margin: 4px 0 9px; color: var(--text-sub); font-size: 11px; line-height: 1.38; }
.signup-admin-options fieldset > div { display: flex; flex-wrap: wrap; gap: 7px; }
.signup-admin-options label { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; margin: 0; padding: 5px 8px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text); font-size: 11px; font-weight: 700; cursor: pointer; }
.signup-admin-options label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 52%, var(--border)); background: color-mix(in srgb, var(--accent) 9%, var(--card)); color: var(--accent); }
.signup-question-list { display: grid; gap: 8px; }
.signup-question-editor { border: 1px solid var(--border); border-radius: 13px; background: color-mix(in srgb, var(--card) 92%, transparent); }
.signup-question-editor > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 62px; padding: 10px 13px; cursor: pointer; list-style: none; }
.signup-question-editor > summary::-webkit-details-marker { display: none; }
.signup-question-number { display: flex; align-items: center; justify-content: center; width: 27px; height: 27px; border-radius: 9px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); color: var(--accent); font-size: 12px; font-weight: 900; }
.signup-question-editor summary strong, .signup-question-editor summary small { display: block; }
.signup-question-editor summary strong { font-size: 12px; }
.signup-question-editor summary small { margin-top: 2px; color: var(--text-sub); font-size: 10px; line-height: 1.3; }
.signup-question-status.is-active { border-color: color-mix(in srgb, var(--ok) 45%, var(--border)); color: var(--ok); }
.signup-question-fields { display: grid; gap: 12px; padding: 0 13px 13px; border-top: 1px solid var(--border); }
.signup-question-fields > label:not(.signup-admin-toggle) { display: block; margin-top: 1px; color: var(--text); font-size: 12px; font-weight: 800; }
.signup-question-fields > label textarea { width: 100%; margin-top: 5px; }
.signup-answer-options { display: grid; gap: 8px; }
.signup-answer-options > label { display: grid; grid-template-columns: auto 73px minmax(0, 1fr); align-items: center; gap: 8px; margin: 0; color: var(--text-sub); font-size: 11px; font-weight: 750; }
.site-setting-card .signup-answer-options input[type="text"] { width: 100%; margin: 0; }
@media (max-width: 700px) {
  .signup-admin-toggles, .signup-admin-options, .signup-admin-selects { grid-template-columns: 1fr; }
  .signup-field-row { grid-template-columns: 1fr; gap: 8px; }
  .signup-field-row > label { min-height: 30px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 8px; background: color-mix(in srgb, var(--card) 82%, transparent); }
  .signup-question-editor > summary { grid-template-columns: auto minmax(0, 1fr); }
  .signup-question-status { display: none; }
  .signup-answer-options > label { grid-template-columns: auto minmax(0, 1fr); }
  .signup-answer-options > label > span { display: none; }
}
.external-avatar-current { display: flex; align-items: center; gap: 8px; margin-top: 8px; color: var(--text-sub); font-size: 12px; font-weight: 700; }
.external-avatar-current img { width: 34px; height: 34px; border: 1px solid var(--border); border-radius: 50%; object-fit: cover; }
.external-avatar-status.is-error { color: var(--danger); font-weight: 700; }

/* Module experience-d-administration-calme-progressive-et-lisible. Ordre défini dans manifest.json. */
/* ── Expérience d’administration : calme, progressive et lisible ── */
.admin-nav { display: flex; align-items: center; gap: 9px; min-height: 40px; margin: 15px 0 0; padding: 4px 7px 4px 11px; border: 1px solid var(--border); border-radius: 13px; background: color-mix(in srgb, var(--card) 90%, transparent); box-shadow: var(--shadow); }
.admin-nav-title { flex: none; color: var(--text-sub); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.admin-nav-links { display: flex; align-items: center; gap: 3px; min-width: 0; flex: 1 1 auto; flex-wrap: wrap; overflow: visible; }
.admin-nav-group { display: flex; align-items: center; gap: 2px; padding-left: 7px; border-left: 1px solid var(--border); }
.admin-nav-group:first-child { padding-left: 0; border-left: 0; }
.admin-nav-group-label { display: none; }
.admin-nav-links::-webkit-scrollbar { display: none; }
.admin-nav-links a { display: inline-flex; align-items: center; gap: 4px; min-height: 29px; padding: 5px 7px; border-radius: 8px; color: var(--text-sub); font-size: 11px; font-weight: 750; white-space: nowrap; }
.admin-nav-links a:hover { color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--bg)); text-decoration: none; }
.admin-nav-links a.is-active { background: var(--accent); color: #fff; box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 28%, transparent); }
.admin-nav-links a > span { font-size: 14px; line-height: 1; }
.admin-context-nav { display: flex; align-items: center; gap: 4px; margin: 10px 0 0; padding: 4px; border: 1px solid var(--border); border-radius: 11px; background: var(--bg); overflow-x: auto; }
.admin-context-nav > span { margin: 0 7px; color: var(--text-sub); font-size: 9px; font-weight: 850; letter-spacing: .08em; white-space: nowrap; }
.admin-context-nav a { padding: 7px 10px; border-radius: 8px; color: var(--text-sub); font-size: 11px; font-weight: 750; white-space: nowrap; }
.admin-context-nav a:hover, .admin-context-nav a.is-active { background: var(--card); color: var(--accent); text-decoration: none; box-shadow: var(--shadow); }
.space-admin-panel { margin: 12px 0 20px; padding: 13px; border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border)); border-radius: 16px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, var(--card)), var(--card) 70%); box-shadow: var(--shadow); }
.space-admin-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 2px 3px 12px; }
.space-admin-panel-head strong, .space-admin-panel-head small { display: block; }
.space-admin-panel-head strong { margin-top: 2px; font-size: 16px; }
.space-admin-panel-head small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.space-admin-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.space-admin-nav > div { min-width: 0; padding: 8px; border: 1px solid color-mix(in srgb, var(--accent) 12%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--card) 75%, var(--bg)); }
.space-admin-nav > div > span { display: block; margin-bottom: 4px; color: var(--text-sub); font-size: 9px; font-weight: 850; letter-spacing: .07em; }
.space-admin-nav a { display: block; overflow: hidden; padding: 5px 6px; border-radius: 7px; color: var(--text-sub); font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.space-admin-nav a:hover, .space-admin-nav a.is-active { background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--accent); text-decoration: none; }
.space-admin-panel [id] { scroll-margin-top: 100px; }
.admin-overview-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, .54fr); gap: 22px; align-items: stretch; margin: 18px 0 14px; padding: clamp(24px, 4vw, 38px); border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border)); border-radius: 22px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--card)), var(--card) 62%); box-shadow: var(--shadow); }
.admin-overview-copy .page-title { max-width: 650px; margin: 6px 0 10px; font-size: clamp(31px, 4vw, 46px); letter-spacing: -.045em; line-height: 1.04; }
.admin-overview-copy p { max-width: 670px; margin: 0; color: var(--text-sub); font-size: 15px; line-height: 1.58; }
.admin-overview-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.admin-overview-status { display: grid; align-content: center; gap: 8px; padding: 9px; border: 1px solid color-mix(in srgb, var(--accent) 15%, var(--border)); border-radius: 16px; background: color-mix(in srgb, var(--card) 82%, transparent); }
.admin-overview-status > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px; border-radius: 11px; }
.admin-overview-status > div + div { border-top: 1px solid var(--border); }
.admin-status-icon { display: flex; align-items: center; justify-content: center; width: 25px; height: 25px; color: var(--ok); font-size: 18px; }
.admin-status-icon.is-neutral { color: var(--accent); }
.admin-overview-status strong, .admin-overview-status small { display: block; }
.admin-overview-status strong { font-size: 13px; }
.admin-overview-status small { margin-top: 2px; color: var(--text-sub); font-size: 11px; line-height: 1.35; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 14px 0 20px; }
.admin-stat-grid > div { min-height: 112px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); box-shadow: var(--shadow); }
.admin-stat-grid strong, .admin-stat-grid span, .admin-stat-grid small { display: block; }
.admin-stat-grid strong { font-size: 28px; letter-spacing: -.04em; line-height: 1; }
.admin-stat-grid span { margin-top: 8px; font-size: 13px; font-weight: 800; }
.admin-stat-grid small { margin-top: 3px; color: var(--text-sub); font-size: 11px; }
.admin-stat-grid .is-alert { border-color: color-mix(in srgb, var(--danger) 48%, var(--border)); background: color-mix(in srgb, var(--danger) 5%, var(--card)); }
.admin-stat-grid .is-alert strong { color: var(--danger); }
.admin-focus-card { margin: 20px 0 26px; padding: 21px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 7%, var(--card)), var(--card)); }
.admin-focus-heading h2 { margin: 5px 0 4px; font-size: 20px; letter-spacing: -.02em; }
.admin-focus-heading p { margin: 0; color: var(--text-sub); font-size: 13px; }
.admin-focus-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 9px; margin-top: 17px; }
.admin-focus-actions > a { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); color: var(--text); }
.admin-focus-actions > a:hover { border-color: var(--accent); box-shadow: var(--shadow); text-decoration: none; }
.admin-focus-actions > a > span:first-child { font-size: 19px; }
.admin-focus-actions strong, .admin-focus-actions small, .admin-focus-actions em { display: block; }
.admin-focus-actions strong { font-size: 13px; }
.admin-focus-actions small { margin-top: 3px; color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.admin-focus-actions em { grid-column: 2; margin-top: 1px; color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; }
.admin-focus-ready { display: flex; align-items: center; gap: 12px; }
.admin-focus-ready > span { display: flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--ok); color: #fff; font-weight: 900; }
.admin-focus-ready > div { flex: 1; }
.admin-focus-ready strong { font-size: 14px; }
.admin-focus-ready p { margin: 3px 0 0; color: var(--text-sub); font-size: 12px; }
.admin-workspace { margin: 28px 0; }
.admin-workspace-heading { margin-bottom: 13px; }
.admin-workspace-heading h2 { margin: 5px 0; font-size: 23px; letter-spacing: -.025em; }
.admin-workspace-heading p { max-width: 650px; margin: 0; color: var(--text-sub); font-size: 13px; }
.admin-disclosure { margin: 10px 0; overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--card); box-shadow: var(--shadow); }
.admin-disclosure > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 11px; align-items: center; min-height: 78px; padding: 14px 16px; cursor: pointer; list-style: none; }
.admin-disclosure > summary::-webkit-details-marker, .admin-edit-item > summary::-webkit-details-marker, .admin-create-panel > summary::-webkit-details-marker { display: none; }
.admin-disclosure > summary:hover { background: color-mix(in srgb, var(--accent) 4%, var(--card)); }
.admin-disclosure-icon { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 11%, var(--bg)); color: var(--accent); font-size: 18px; }
.admin-disclosure strong, .admin-disclosure small { display: block; }
.admin-disclosure strong { font-size: 14px; }
.admin-disclosure small { margin-top: 3px; color: var(--text-sub); font-size: 12px; line-height: 1.35; }
.admin-disclosure-count { padding: 5px 8px; border-radius: 999px; background: var(--bg); color: var(--text-sub); font-size: 11px; font-weight: 800; white-space: nowrap; }
.admin-disclosure-caret, .admin-edit-caret { color: var(--text-sub); font-size: 17px; transition: transform .18s ease; }
.admin-disclosure[open] .admin-disclosure-caret, .admin-edit-item[open] .admin-edit-caret { transform: rotate(180deg); }
.admin-setting-list { padding: 0 10px 10px; border-top: 1px solid var(--border); }
.admin-setting-list a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 13px 10px; border-radius: 11px; color: var(--text); }
.admin-setting-list a:hover { background: color-mix(in srgb, var(--accent) 7%, var(--bg)); color: var(--text); text-decoration: none; }
.admin-setting-list a.is-priority { background: color-mix(in srgb, var(--danger) 6%, var(--bg)); }
.admin-setting-list a > span:first-child { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; background: var(--bg); color: var(--accent); font-size: 15px; }
.admin-setting-list strong, .admin-setting-list small { display: block; }
.admin-setting-list strong { font-size: 13px; }
.admin-setting-list small { margin-top: 2px; color: var(--text-sub); font-size: 11px; line-height: 1.35; }
.admin-setting-list em { color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; white-space: nowrap; }
.site-settings-hero { max-width: 800px; margin: 25px 0 20px; }
.site-settings-hero .page-title { letter-spacing: -.035em; }

/* Module experience-d-administration-calme-progressive-et-lisible. Ordre défini dans manifest.json. */
.site-settings-form { max-width: 980px; gap: 12px; }
.site-setting-card { padding: clamp(20px, 3vw, 27px); border-radius: 18px; }
.site-setting-card-protected { border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, var(--card)), var(--card)); }
.site-setting-heading { margin-bottom: 20px; }
.site-setting-heading > span { border-radius: 13px; }
.site-settings-grid > label .field-hint, .site-setting-card > label .field-hint { display: block; margin-top: 5px; font-weight: 500; }
.site-settings-save { align-items: center; justify-content: flex-end; padding: 12px 14px; border-radius: 15px; }
.site-settings-save > div { margin-right: auto; }
.site-settings-save strong, .site-settings-save small { display: block; }
.site-settings-save strong { font-size: 12px; }
.site-settings-save small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.admin-page-intro { max-width: 800px; margin: 27px 0 18px; }
.admin-page-intro .page-title { margin: 5px 0 8px; font-size: clamp(28px, 3.2vw, 38px); letter-spacing: -.035em; }
.admin-page-intro p { margin: 0; color: var(--text-sub); line-height: 1.55; }
.admin-guide-card { display: flex; gap: 11px; max-width: 880px; margin: 16px 0 26px; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--accent) 21%, var(--border)); border-radius: 14px; background: color-mix(in srgb, var(--accent) 6%, var(--card)); }
.admin-guide-card > span { display: flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 12px; font-weight: 800; }
.admin-guide-card strong { font-size: 13px; }
.admin-guide-card p { margin: 3px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.admin-management-section { max-width: 980px; margin: 28px 0; }
.admin-management-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.admin-management-heading h2 { margin: 4px 0; font-size: 21px; letter-spacing: -.02em; }
.admin-management-heading p { max-width: 690px; margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.45; }
.admin-management-heading > span { flex: none; padding: 6px 9px; border-radius: 999px; background: var(--card); border: 1px solid var(--border); color: var(--text-sub); font-size: 11px; font-weight: 800; }
.admin-management-list { overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--card); box-shadow: var(--shadow); }
.admin-edit-item + .admin-edit-item { border-top: 1px solid var(--border); }
.admin-edit-item > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; gap: 11px; align-items: center; min-height: 73px; padding: 12px 15px; cursor: pointer; list-style: none; }
.admin-edit-item > summary:hover { background: color-mix(in srgb, var(--accent) 5%, var(--card)); }
.admin-edit-icon { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 11px; background: color-mix(in srgb, var(--accent) 10%, var(--bg)); font-size: 18px; }
.admin-edit-item strong, .admin-edit-item small { display: block; min-width: 0; }
.admin-edit-item strong { font-size: 13px; }
.admin-edit-item small { overflow: hidden; margin-top: 2px; color: var(--text-sub); font-size: 11px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.admin-access-chip { padding: 5px 8px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg); color: var(--text-sub); font-size: 10px; font-weight: 800; white-space: nowrap; }
.admin-drag-handle { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; color: var(--text-sub); cursor: grab; font-size: 20px; font-weight: 800; line-height: 1; user-select: none; }
.admin-drag-handle:hover, .admin-drag-handle:focus-visible { background: color-mix(in srgb, var(--accent) 11%, var(--bg)); color: var(--accent); outline: none; }
.admin-drag-handle:active { cursor: grabbing; }
.admin-edit-item.is-dragging { opacity: .42; }
.admin-sort-status { min-height: 18px; margin: 8px 2px 0; color: var(--text-sub); font-size: 12px; font-weight: 700; }
.admin-sort-status.is-error { color: var(--danger); }
.admin-edit-panel { padding: 15px; border-top: 1px solid var(--border); background: color-mix(in srgb, var(--bg) 56%, var(--card)); }
.admin-edit-form, .admin-inline-form { display: grid; gap: 12px; }
.admin-inline-form { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.admin-inline-form label { margin: 0; }
.admin-edit-form-grid { display: grid; grid-template-columns: minmax(190px, .55fr) minmax(0, 1fr) minmax(150px, .55fr); gap: 11px; }
.admin-edit-form-grid label { margin: 0; }
.admin-edit-form-grid .admin-edit-wide { grid-column: span 2; }
.admin-edit-form .field-hint { margin: -4px 0 0; }
.admin-management-section input[type="text"], .admin-management-section input[type="email"], .admin-management-section textarea, .admin-management-section select { min-height: 44px; font-size: 14px; }
.admin-management-section textarea { min-height: 112px; }
.admin-management-section .admin-edit-form-grid input[type="text"] { width: 100%; }
.icon-field-label small { display:block; margin-top:5px; color:var(--text-sub); font-size:10px; font-weight:600; line-height:1.35; }
.icon-input-wrap { position:relative; display:flex; align-items:center; gap:6px; margin-top:5px; }
.icon-input-wrap > input { flex:1 1 auto; min-width:0; }
.icon-picker-host { position:relative; }
.icon-picker-toggle { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:40px; flex:0 0 auto; padding:7px 9px; border:1px solid var(--border); border-radius:10px; background:var(--card); color:var(--text); font:inherit; font-size:11px; font-weight:800; cursor:pointer; }
.icon-picker-toggle > span:first-child { font-size:18px; line-height:1; }
.icon-picker-toggle:hover, .icon-picker-toggle:focus-visible { border-color:color-mix(in srgb,var(--accent) 55%,var(--border)); color:var(--accent); outline:none; }
.icon-picker-panel { position:absolute; z-index:45; top:calc(100% + 7px); right:0; width:294px; padding:10px; border:1px solid var(--border); border-radius:14px; background:var(--card); box-shadow:0 16px 38px rgba(26,39,65,.18); }
.icon-picker-panel[hidden] { display:none !important; }
.icon-picker-panel > strong { display:block; margin:1px 2px 8px; color:var(--text-sub); font-size:10px; letter-spacing:.07em; text-transform:uppercase; }
.icon-picker-choices { display:grid; grid-template-columns:repeat(6, 1fr); gap:4px; }
.icon-picker-choices button { display:grid; place-items:center; width:40px; height:36px; padding:0; border:0; border-radius:9px; background:transparent; font-size:20px; cursor:pointer; }
.icon-picker-choices button:hover, .icon-picker-choices button:focus-visible { background:color-mix(in srgb,var(--accent) 12%,transparent); outline:none; }
.admin-page-intro ~ .card input[type="text"], .admin-page-intro ~ .card input[type="email"], .admin-page-intro ~ .card textarea, .admin-page-intro ~ .card select { min-height: 46px; font-size: 14px; }
.admin-page-intro ~ .card textarea { min-height: 128px; }
.admin-order-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.admin-order-controls > span { margin-right: 3px; color: var(--text-sub); font-size: 12px; font-weight: 700; }
.admin-order-controls form { margin: 0; }
.admin-danger-action { margin: 16px -15px -15px; padding: 12px 15px; border-top: 1px solid color-mix(in srgb, var(--danger) 22%, var(--border)); }
.admin-danger-action button { padding: 0; border: 0; background: none; color: var(--danger); cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; }
.admin-danger-action button:hover { text-decoration: underline; }
.admin-create-panel { margin-top: 10px; border: 1px dashed color-mix(in srgb, var(--accent) 38%, var(--border)); border-radius: 14px; background: color-mix(in srgb, var(--accent) 3%, var(--card)); }
.admin-create-panel > summary { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 12px 15px; color: var(--accent); cursor: pointer; list-style: none; font-size: 13px; font-weight: 800; }
.admin-create-panel > summary > span { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 15px; line-height: 1; }
.admin-create-panel > form { padding: 0 15px 15px; }
.admin-empty-state { display: flex; align-items: center; gap: 12px; padding: 18px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); color: var(--text); }
.admin-empty-state > span { display: flex; align-items: center; justify-content: center; flex: none; width: 38px; height: 38px; border-radius: 11px; background: var(--bg); color: var(--accent); font-size: 20px; }
.admin-empty-state strong { font-size: 13px; }
.admin-empty-state p { margin: 3px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.admin-linked-space { display: flex; align-items: center; gap: 11px; }
.admin-linked-space > span { font-size: 22px; }
.admin-linked-space > div { flex: 1; }
.admin-linked-space strong { font-size: 13px; }
.admin-linked-space p { margin: 2px 0 0; color: var(--text-sub); font-size: 12px; }
.admin-search-form { max-width: 380px; margin: 0 0 14px; }
.admin-quick-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 14px; }
.admin-search-form input { min-height: 42px; border-radius: 12px; }
.admin-detail-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.admin-detail-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:18px; align-items:start; }
.admin-detail-side { display:grid; gap:18px; }
.admin-detail-card { padding:22px; }

/* Module experience-d-administration-calme-progressive-et-lisible. Ordre défini dans manifest.json. */
.admin-detail-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px; }
.admin-detail-card-head h2 { margin:4px 0 5px; font-size:20px; }
.admin-detail-card-head p { margin:0; color:var(--text-sub); font-size:13px; line-height:1.5; }
.admin-detail-status { flex:none; padding:6px 10px; border:1px solid var(--border); border-radius:999px; color:var(--text-sub); font-size:11px; font-weight:800; white-space:nowrap; }
.admin-detail-status.is-ok { color:#168653; background:#effaf4; border-color:#b9e7cd; }
.admin-detail-status.is-pending { color:#a66a12; background:#fff8e8; border-color:#f1d99d; }
.admin-detail-status.is-danger { color:var(--danger); background:#fff1f0; border-color:#efc1bd; }
.admin-check-list { display:grid; gap:9px; margin:0 0 14px; padding:14px; border:1px solid var(--border); border-radius:12px; }
.admin-check-list legend { padding:0 5px; font-size:12px; font-weight:800; color:var(--text-sub); }
.admin-check-list > div { display:flex; flex-wrap:wrap; gap:8px 14px; }
.admin-check-list label, .admin-check-line { display:flex; align-items:center; gap:7px; margin:0; font-size:13px; font-weight:650; }
.admin-check-list input, .admin-check-line input { width:auto; margin:0; }
.admin-password-card { border-color:color-mix(in srgb,var(--danger) 22%,var(--border)); }
.admin-detail-meta { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-top:18px; padding:20px 22px; }
.admin-detail-meta h2 { margin:4px 0 0; font-size:18px; }
.admin-detail-meta dl { display:flex; flex-wrap:wrap; gap:18px 30px; margin:0; }
.admin-detail-meta dt { color:var(--text-sub); font-size:11px; font-weight:750; }
.admin-detail-meta dd { margin:3px 0 0; font-size:13px; font-weight:700; }
.registration-mail-tip { margin:18px 0; padding:13px 15px; border:1px solid #cfe0f8; border-radius:12px; background:#f4f8ff; color:#50617a; font-size:13px; line-height:1.55; }
.registration-mail-tip strong { color:#2c5fa8; }
.admin-private-note { padding:14px; border:1px solid #d8c9f0; border-radius:12px; background:#faf7ff; }
.admin-private-note > span { display:block; margin:4px 0 8px; color:#786b8c; font-size:12px; font-weight:500; }
.admin-private-note textarea { background:#fff; }
@media (max-width: 760px) { .admin-detail-intro, .admin-detail-meta { display:block; } .admin-detail-intro .btn { margin-top:14px; } .admin-detail-grid { grid-template-columns:1fr; } .admin-detail-meta dl { margin-top:16px; gap:12px 20px; } }
.admin-data-card { padding: 4px 18px; border-radius: 16px; }
.admin-data-card .mod-table th { padding-top: 13px; color: var(--text-sub); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.admin-data-card .mod-table td { padding-top: 13px; padding-bottom: 13px; vertical-align: middle; }
.admin-data-card .mod-table tr:last-child td { border-bottom: 0; }
input:focus, textarea:focus, select:focus, .btn:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 28%, transparent); outline-offset: 2px; }

@media (max-width: 760px) {
  .admin-nav { margin-top: 12px; padding-left: 8px; }
  .admin-nav-title { display: none; }
  .admin-nav-links { width: 100%; }
  .admin-nav-links { gap: 3px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .admin-nav-group { gap: 2px; padding-left: 3px; border-left: 0; }
  .admin-nav-group-label { display: none; }
  .admin-context-nav { margin-top: 7px; }
  .space-admin-panel { padding: 10px; }
  .space-admin-panel-head { align-items: flex-start; flex-direction: column; gap: 8px; padding-bottom: 9px; }
  .space-admin-panel-head .btn { width: 100%; justify-content: center; }
  .space-admin-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .space-admin-nav > div { padding: 7px; }
  .admin-overview-hero { grid-template-columns: 1fr; padding: 22px; border-radius: 18px; }
  .admin-overview-copy .page-title { font-size: 32px; }
  .admin-overview-status { grid-template-columns: 1fr; }
  .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-focus-ready { align-items: flex-start; flex-wrap: wrap; }
  .admin-focus-ready .btn { margin-left: 42px; }
  .admin-disclosure > summary { grid-template-columns: auto minmax(0, 1fr) auto; min-height: 70px; padding: 12px; }
  .admin-disclosure-count { display: none; }
  .admin-setting-list a { padding: 12px 7px; }
  .admin-setting-list em { display: none; }
  .admin-management-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .admin-edit-item > summary { grid-template-columns: auto minmax(0, 1fr) auto auto; padding: 12px; }
  .admin-access-chip { display: none; }
  .admin-edit-form-grid { grid-template-columns: 1fr; }
  .admin-edit-form-grid .admin-edit-wide { grid-column: auto; }
  .admin-inline-form { grid-template-columns: 1fr; }
  .admin-inline-form .btn { width: 100%; justify-content: center; }
  .admin-linked-space { align-items: flex-start; flex-wrap: wrap; }
  .admin-linked-space .btn { margin-left: 34px; }
  .site-settings-save { align-items: stretch; flex-direction: column; }
  .site-settings-save > div { margin: 0 0 3px; }
  .site-settings-save .btn { justify-content: center; }
}

/* Module defi-du-moment. Ordre défini dans manifest.json. */
/* ── Défi du moment ── */
.photo-prompt-hero { position: relative; overflow: hidden; padding: 30px; margin: 24px 0 20px; border: 1px solid rgba(240, 141, 41, .38); border-radius: 18px; background: linear-gradient(135deg, rgba(240, 141, 41, .15), var(--card) 62%); }
.photo-prompt-hero::after { content: '🔥'; position: absolute; right: 20px; bottom: -30px; opacity: .12; font-size: 160px; pointer-events: none; }
.photo-prompt-hero > * { position: relative; z-index: 1; }
.photo-prompt-hero .page-title { margin: 7px 0 9px; max-width: 730px; font-size: clamp(30px, 3vw, 44px); line-height: 1.1; }
.photo-prompt-hero > p { max-width: 700px; margin: 0; color: var(--text-sub); font-size: 16px; line-height: 1.55; }
.photo-prompt-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.photo-prompt-meta span, .prompt-entry-count { padding: 6px 9px; border: 1px solid var(--border); border-radius: 20px; background: rgba(255,255,255,.36); color: var(--text-sub); font-size: 12px; font-weight: 700; }
:root[data-theme="dark"] .photo-prompt-meta span { background: rgba(0,0,0,.12); }
.prompt-entry-section { margin: 22px 0; }
.prompt-entry-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 15px; }
.prompt-entry-card { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); color: var(--text); box-shadow: var(--shadow); }
.prompt-entry-card:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.prompt-entry-avatar { display: flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; border-radius: 11px; background: var(--accent); color: #fff; font-size: 13px; font-weight: 800; }
.prompt-entry-copy { min-width: 0; flex: 1; }
.prompt-entry-copy strong, .prompt-entry-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prompt-entry-copy strong { font-size: 13px; }
.prompt-entry-copy small { margin-top: 3px; color: var(--text-sub); font-size: 11px; }
.prompt-entry-arrow { flex: none; color: var(--accent); font-weight: 800; }
.prompt-empty { display: flex; align-items: center; gap: 13px; padding: 20px; margin-top: 15px; border: 1px dashed rgba(240, 141, 41, .55); border-radius: 13px; background: rgba(240, 141, 41, .06); }
.prompt-empty > span { font-size: 24px; color: #d8781b; }
.prompt-empty strong { font-size: 14px; }
.prompt-empty p { margin: 4px 0 0; color: var(--text-sub); font-size: 13px; }
.prompt-archive { margin-top: 25px; }
.prompt-archive-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.prompt-archive-list > div { padding: 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); }
.prompt-archive-list strong, .prompt-archive-list span { display: block; }
.prompt-archive-list strong { font-size: 13px; }
.prompt-archive-list span { margin-top: 4px; color: var(--text-sub); font-size: 11px; }
.photo-prompt-empty-hero { border-color: var(--border); background: linear-gradient(135deg, rgba(59,111,214,.1), var(--card) 62%); }
.prompt-compose-banner { margin-bottom: 18px; padding: 16px; border: 1px solid rgba(240, 141, 41, .46); border-radius: 12px; background: rgba(240, 141, 41, .08); }
.prompt-compose-banner > span, .prompt-compose-banner strong, .prompt-compose-banner p, .prompt-compose-banner small { display: block; }
.prompt-compose-banner > span { color: #c96d16; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.prompt-compose-banner strong { margin-top: 3px; font-size: 16px; }
.prompt-compose-banner p { margin: 6px 0; font-size: 13px; }
.prompt-compose-banner small { color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.compose-intro { max-width: 720px; margin-top: -10px; }
.compose-title-label { display: block; margin-bottom: 7px; font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.compose-title-input { min-height: 58px; margin: 0 0 18px !important; padding: 14px 16px !important; border-radius: 13px !important; font-size: clamp(19px, 2.6vw, 25px) !important; font-weight: 650; letter-spacing: -.025em; }
.compose-title-input::placeholder { font-size: .78em; font-weight: 450; letter-spacing: 0; }
.compose-message-label { display: block; margin: 4px 0 7px; font-size: 17px; font-weight: 800; }
.compose-message-input { min-height: 220px; margin: 0 0 5px !important; padding: 14px 16px !important; border-radius: 13px !important; font-size: 15px !important; line-height: 1.65; }
.category-picker { margin-bottom: 22px; padding: 18px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border)); border-radius: 16px; background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 7%, var(--card)), var(--card)); }
.compose-choice-grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 0; margin-top: 22px; }
.compose-choice-grid .category-picker, .compose-choice-grid .tag-picker { height: 100%; margin-top: 0; margin-bottom: 0; }
.category-picker-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.category-picker-head h2 { margin: 4px 0 0; font-size: 20px; }
.category-picker-selected { flex: none; padding: 8px 11px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 999px; background: var(--card); color: var(--accent); font-size: 12px; font-weight: 800; }
.category-suggestion { margin-top: 15px; padding: 13px 14px; border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.category-suggestion-badge { color: var(--accent); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.category-suggestion-main { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 5px; }
.category-suggestion-main strong { font-size: 15px; }
.category-suggestion-reason, .category-suggestion p { margin: 4px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.4; }
.category-suggestion-main button[hidden] { display: none; }
.category-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.category-choice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 62px; padding: 10px; border: 1px solid var(--border); border-radius: 11px; background: var(--card); color: var(--text); cursor: pointer; font: inherit; text-align: left; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.category-choice:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 5%, var(--card)); transform: translateY(-1px); }
.category-choice.is-selected { border-color: color-mix(in srgb, var(--accent) 60%, var(--border)); background: color-mix(in srgb, var(--accent) 9%, var(--card)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 12%, transparent); }
.category-choice-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); font-size: 17px; }
.category-choice strong, .category-choice small { display: block; }
.category-choice strong { font-size: 12px; }
.category-choice small { margin-top: 2px; overflow: hidden; color: var(--text-sub); font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.category-choice-check { color: var(--accent); font-size: 16px; font-weight: 900; }
.tag-picker { margin-top: 0; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: color-mix(in srgb, var(--bg) 62%, var(--card)); }
.tag-picker-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.tag-picker-head h2 { margin: 4px 0 0; font-size: 18px; }
.tag-picker-head p { margin: 4px 0 0; color: var(--text-sub); font-size: 12px; }
.tag-picker-optional { flex: none; padding: 5px 8px; border: 1px solid var(--border); border-radius: 999px; color: var(--text-sub); font-size: 10px; font-weight: 800; }
.tag-suggestion-box { margin-top: 13px; padding: 11px 12px; border: 1px dashed color-mix(in srgb, var(--accent) 38%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--accent) 5%, var(--card)); }
.tag-suggestion-label { display: block; color: var(--accent); font-size: 10px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.tag-suggestion-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.tag-suggestion-empty { color: var(--text-sub); font-size: 11px; }
.tag-suggestion-chip { padding: 6px 10px; border: 1px solid color-mix(in srgb, var(--tag-color, var(--accent)) 48%, var(--border)); border-radius: 999px; background: color-mix(in srgb, var(--tag-color, var(--accent)) 9%, var(--card)); color: var(--tag-color, var(--accent)); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; }
.tag-suggestion-chip:hover, .tag-suggestion-chip.is-added { border-color: var(--tag-color, var(--accent)); background: color-mix(in srgb, var(--tag-color, var(--accent)) 17%, var(--card)); }
.tag-choice-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
.tag-search-field { display: flex; align-items: center; gap: 7px; width: min(260px, 100%); margin: 0; padding: 6px 9px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text-sub); }
.tag-search-field input { min-width: 0; margin: 0; padding: 1px 0; border: 0; background: transparent; box-shadow: none; font-size: 11px; }
.tag-search-field input:focus { outline: 0; box-shadow: none; }
.tag-choice-count { color: var(--text-sub); font-size: 10px; font-weight: 700; }
.tag-choice-grid { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.tag-choice[hidden] { display: none; }
.tag-choice { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text-sub); cursor: pointer; font-size: 11px; font-weight: 750; }
.tag-choice:hover, .tag-choice.is-selected { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--card)); color: var(--text); }
.tag-choice input { position: absolute; opacity: 0; pointer-events: none; }
.tag-choice-dot { width: 8px; height: 8px; border-radius: 50%; }
.tag-choice-check { color: var(--accent); font-weight: 900; }
.tag-more-button { display: inline-flex; align-items: center; gap: 4px; margin-top: 10px; padding: 5px 0; border: 0; background: none; color: var(--accent); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; }
.tag-more-button span { opacity: .75; }
.tag-more-button:hover { text-decoration: underline; }

/* Module defi-du-moment. Ordre défini dans manifest.json. */
.space-tag-manager { overflow: hidden; }
.space-tag-admin-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 7px; margin-top: 14px; }
.space-tag-admin-item { border: 1px solid var(--border); border-radius: 11px; background: var(--bg); }
.space-tag-admin-item summary { display: flex; align-items: center; gap: 8px; min-height: 38px; padding: 7px 10px; cursor: pointer; list-style: none; }
.space-tag-admin-item summary::-webkit-details-marker { display: none; }
.space-tag-admin-item summary strong { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.space-tag-admin-item summary small { color: var(--text-sub); font-size: 10px; }
.space-tag-admin-item summary > span:last-child { color: var(--text-sub); font-size: 12px; }
.space-tag-edit-form { display: flex; align-items: end; gap: 7px; padding: 9px 10px; border-top: 1px solid var(--border); }
.space-tag-edit-form input[name="label"] { min-width: 0; flex: 1; margin: 0; padding: 7px 8px; font-size: 12px; }
.space-tag-edit-form input[type="color"] { width: 34px; height: 32px; margin: 0; padding: 2px; }
.space-tag-edit-form .btn { white-space: nowrap; }
.space-tag-delete { margin: 0 10px 10px; padding: 0; border: 0; background: none; color: var(--danger); cursor: pointer; font: inherit; font-size: 10px; font-weight: 750; }
.space-tag-create { margin-top: 12px; }
.category-tag-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: 17px 0 11px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
.category-tag-filter > span { margin-right: 3px; color: var(--text-sub); font-size: 11px; font-weight: 800; }
.category-tag-filter a { padding: 5px 9px; border: 1px solid var(--border); border-radius: 999px; color: var(--text-sub); font-size: 11px; font-weight: 750; }
.category-tag-filter a:hover, .category-tag-filter a.is-active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--accent); text-decoration: none; }
.category-tag-filter a small { margin-left: 3px; color: var(--text-sub); font-size: 10px; }
.thread-tag-list { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-right: 5px; vertical-align: middle; }
.thread-tag-list .prefix-tag { margin-right: 0; }
.admin-prompt-form { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); gap: 24px; margin: 22px 0; }
.admin-prompt-form h2 { margin: 5px 0 8px; font-size: 20px; }
.admin-prompt-form > div > p { margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.admin-prompt-form form > div { margin-top: 16px; }
.prompt-admin-list { margin-top: 28px; }
.prompt-admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 12px; margin-top: 16px; }
.prompt-admin-card { padding: 17px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); box-shadow: var(--shadow); }
.prompt-admin-card.is-active { border-color: rgba(240, 141, 41, .5); }
.prompt-admin-status { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--text-sub); font-size: 11px; font-weight: 700; }
.prompt-admin-card.is-active .prompt-admin-status > span { color: #c96d16; }
.prompt-admin-card h3 { margin: 12px 0 7px; font-size: 16px; }
.prompt-admin-card > p { min-height: 38px; margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.48; }
.prompt-admin-card footer { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 12px; color: var(--text-sub); font-size: 11px; }
.prompt-admin-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.prompt-admin-actions form { margin: 0; }

/* L'en-tête desktop est volontairement séparé en deux bandes : les actions du
   compte restent calmes en haut, tandis que toutes les destinations forment une
   navigation unique et lisible en dessous. Cela évite les liens qui se dispersent
   sur plusieurs lignes quand un membre est connecté. */
@media (min-width: 901px) {
  .site-header { box-shadow: 0 8px 24px rgba(7, 14, 27, .05); }
  .site-header .inner {
    display: grid;
    grid-template-columns: minmax(210px, 1fr) minmax(260px, 360px) auto;
    grid-template-areas:
      "brand search actions"
      "nav nav nav";
    column-gap: 22px;
    row-gap: 10px;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding-top: 12px;
    padding-bottom: 10px;
  }
  .brand-space { grid-area: brand; }
  .site-header .logo { font-size: 20px; }
  .site-header nav {
    grid-area: nav;
    display: flex;
    flex: none;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    padding-top: 9px;
    border-top: 1px solid var(--border);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .site-header nav::-webkit-scrollbar { display: none; }
  .nav-link { flex: 0 0 auto; padding: 7px 10px; font-size: 13px; }
  .nav-icon { font-size: 14px; }
  .search-form { grid-area: search; width: 100%; }
  .search-form, .search-form input { min-width: 0; }
  .search-form input { width: 100%; box-sizing: border-box; padding: 9px 14px; border-radius: 12px; }
  .header-right { grid-area: actions; justify-content: flex-end; gap: 8px; white-space: nowrap; }
  .header-right .btn { white-space: nowrap; }
}

@media (min-width: 901px) and (max-width: 1120px) {
  .site-header .inner { grid-template-columns: minmax(185px, 1fr) minmax(210px, 280px) auto; column-gap: 12px; padding-left: 18px; padding-right: 18px; }
  .nav-link { padding: 7px 8px; font-size: 12px; }
  .nav-icon { display: none; }
  .header-right { gap: 4px; }
}

/* Module boutons-formulaires. Ordre défini dans manifest.json. */
/* ── Boutons & formulaires ── */
.btn {
  display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border);
  background: var(--card); color: var(--text); padding: 9px 16px; border-radius: 8px;
  font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none;
  transition: border-color .15s ease, background .15s ease, transform .1s ease, box-shadow .15s ease;
}
.btn:hover { border-color: var(--accent); text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 2px 8px rgba(59,111,214,.25); }
.btn-primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.btn-danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.btn-sm { padding: 5px 11px; font-size: 12px; }
input[type=text], input[type=email], input[type=password], input[type=url], textarea, select {
  width: 100%; border: 1px solid var(--border); background: var(--bg); color: var(--text);
  padding: 10px 12px; border-radius: 8px; font-size: 14px; font-family: inherit;
}
input[type="date"], input[type="datetime-local"] {
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 10px;
  font-variant-numeric: tabular-nums;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  padding: 4px;
  cursor: pointer;
  opacity: .78;
}
.event-date-fieldset { display: grid; gap: 13px; margin: 16px 0 0; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--accent) 3%, var(--card)); }
.event-date-fieldset legend { padding: 0 6px; font-size: 13px; font-weight: 800; }
.event-date-fieldset > .field-hint { margin: -5px 0 1px; }
.event-date-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, .48fr); gap: 10px; }
.event-date-grid label { display: grid; gap: 5px; margin: 0; font-size: 14px; font-weight: 800; color: var(--text); }
.event-date-grid label > span { color: var(--text-sub); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.event-date-grid label em { color: var(--text-sub); font-size: 12px; font-style: normal; font-weight: 600; }
.event-date-grid input[type="text"], .event-date-grid input[type="time"], .event-recurrence-until input[type="text"] { min-height: 46px; margin: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--text); font: inherit; font-variant-numeric: tabular-nums; }
.event-date-grid input[type="time"] { min-width: 0; }
.event-date-grid label[for="eventStartTime"], .event-date-grid label[for="eventEndTime"] { display: none; }
.event-date-input::placeholder { color: var(--text-sub); opacity: .7; }
.event-date-picker { position: relative; display: block; }
.event-date-picker .event-date-input { width: 100%; padding-right: 42px; cursor: pointer; }
.event-calendar-toggle { position: absolute; top: 50%; right: 6px; display: grid; width: 32px; height: 32px; place-items: center; transform: translateY(-50%); border: 0; border-radius: 8px; background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); font-size: 20px; font-weight: 800; cursor: pointer; }
.event-calendar-toggle:hover { background: color-mix(in srgb, var(--accent) 22%, transparent); }
.event-calendar-popover { position: absolute; z-index: 70; top: calc(100% + 8px); left: 0; width: min(360px, calc(100vw - 32px)); }
.event-calendar { padding: 16px; border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border)); border-radius: 16px; background: var(--card); box-shadow: 0 20px 44px rgba(34, 26, 38, .22); }
.event-calendar-head { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; gap: 8px; margin-bottom: 14px; text-align: center; text-transform: capitalize; }
.event-calendar-head strong { font-size: 16px; }
.event-calendar-nav { width: 38px; height: 38px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); color: var(--text); font-size: 26px; line-height: 1; cursor: pointer; }
.event-calendar-nav:hover, .event-calendar-day:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--card)); }
.event-calendar-weekdays, .event-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.event-calendar-weekdays { margin-bottom: 5px; color: var(--text-sub); font-size: 11px; font-weight: 800; text-align: center; }
.event-calendar-days { grid-auto-rows: 39px; }
.event-calendar-day { border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--text); font: inherit; font-variant-numeric: tabular-nums; cursor: pointer; }
.event-calendar-day.is-outside { color: color-mix(in srgb, var(--text-sub) 52%, transparent); }
.event-calendar-day.is-today { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); color: var(--accent); font-weight: 800; }
.event-calendar-day.is-selected { border-color: var(--accent); background: var(--accent); color: var(--accent-text); font-weight: 800; box-shadow: 0 3px 8px color-mix(in srgb, var(--accent) 34%, transparent); }
.event-calendar-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 13px; }
.event-calendar-today { padding: 10px; border: 0; border-radius: 10px; background: color-mix(in srgb, var(--accent) 11%, var(--card)); color: var(--accent); font: inherit; font-weight: 800; cursor: pointer; }
.event-calendar-today:hover { background: color-mix(in srgb, var(--accent) 20%, var(--card)); }
.event-calendar-confirm { padding: 10px; border: 1px solid var(--accent); border-radius: 10px; background: var(--accent); color: var(--accent-text); font: inherit; font-weight: 800; cursor: pointer; }
.event-calendar-confirm:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.event-calendar-time { display: grid; gap: 10px; margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--border); }
.event-calendar-time label { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text); font-size: 13px; font-weight: 800; }
.event-calendar-time input[type="time"] { width: 118px; min-height: 38px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg); color: var(--text); font: inherit; }
.event-calendar-time .event-calendar-all-day { justify-content: flex-start; cursor: pointer; }
.event-calendar-all-day input { width: 17px; height: 17px; accent-color: var(--accent); }
.event-date-grid:focus-within, .event-recurrence-until:focus-within { border-radius: 12px; outline: 3px solid color-mix(in srgb, var(--accent) 16%, transparent); outline-offset: 2px; }
.event-recurrence-until { display: grid; gap: 7px; margin-top: 3px; }
.event-recurrence-until label { margin: 0; }
.event-recurrence-until[hidden] { display: none; }
@media (max-width: 640px) {
  .event-calendar-popover { position: fixed; z-index: 200; top: auto; right: 16px; bottom: 16px; left: 16px; width: auto; }
  .event-calendar { padding: 18px; border-radius: 18px; box-shadow: 0 18px 55px rgba(34, 26, 38, .34); }
  .event-calendar-days { grid-auto-rows: 43px; }
}
textarea { min-height: 120px; resize: vertical; }

/* Module editeur-riche-wysiwyg-remplace-visuellement-le-textarea-data-rich. Ordre défini dans manifest.json. */
/* ── Éditeur riche WYSIWYG (remplace visuellement le textarea[data-richtext]) ── */
.rich-editable {
  width: 100%; min-height: 172px; border: 1px solid var(--border); background: var(--bg); color: var(--text);
  padding: 13px 14px; border-radius: 10px; font-size: 15px; font-family: inherit; line-height: 1.65;
  overflow-wrap: break-word; cursor: text; transition: border-color .15s ease, box-shadow .15s ease;
}
.rich-editable:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
.rich-editable:empty:before { content: attr(data-placeholder); color: var(--text-sub); }
/* Dans l'éditeur, les photos restent volontairement compactes : elles servent de
   repère visuel pendant la rédaction, sans masquer le texte avant/après. Cette
   règle ne concerne pas .post-body, où la photo publiée conserve sa taille normale. */
.rich-editable img {
  width: auto;
  height: auto;
  max-width: min(220px, 58%);
  max-height: 160px;
  object-fit: contain;
  border: 1px solid var(--border);
  border-radius: 8px;
  display: inline-block;
  vertical-align: middle;
  margin: 6px 8px 6px 0;
  background: var(--card);
}
label { display: block; font-size: 13px; font-weight: 600; margin: 12px 0 6px; }
.field-hint { font-size: 12px; color: var(--text-sub); margin-top: 4px; }
.error-msg { background: rgba(209,69,61,.12); color: var(--danger); padding: 10px 14px; border-radius: 8px; margin: 14px 0; font-size: 14px; }
.success-msg { background: rgba(26,143,90,.12); color: var(--ok); padding: 10px 14px; border-radius: 8px; margin: 14px 0; font-size: 14px; }

/* Module cartes. Ordre défini dans manifest.json. */
/* ── Cartes ── */
.card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin: 18px 0; box-shadow: var(--shadow); }
.page-title { font-size: 26px; font-weight: 800; margin: 24px 0 6px; letter-spacing: -.01em; }
.page-sub { color: var(--text-sub); font-size: 14px; margin-bottom: 18px; }

/* Module mise-en-page-a-deux-colonnes-accueil-categorie-sujet. Ordre défini dans manifest.json. */
/* ── Mise en page à deux colonnes (accueil / catégorie / sujet) ── */
.layout { display: flex; gap: 24px; align-items: flex-start; }
.layout-main { flex: 1; min-width: 0; }
.layout-side { width: 300px; flex: none; display: flex; flex-direction: column; gap: 18px; position: sticky; top: 78px; }
.side-widget { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow); }
.side-widget h3 { margin: 0 0 12px; font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: var(--text-sub); }
.side-stats { display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.side-stats-row { display: flex; justify-content: space-between; }
.side-stats-row strong { color: var(--text); }
.leaderboard-item { display: flex; align-items: center; gap: 10px; padding: 7px 0; }
.leaderboard-rank { font-size: 12px; font-weight: 800; color: var(--text-sub); width: 18px; flex: none; }
.leaderboard-item .avatar { width: 28px; height: 28px; font-size: 12px; }
.leaderboard-name { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard-count { font-size: 12px; color: var(--text-sub); flex: none; }

/* Module liste-des-categories. Ordre défini dans manifest.json. */
/* ── Liste des catégories ── */
.cat-section-title { font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: var(--text-sub); margin: 26px 0 8px; }
.cat-section-title:first-of-type { margin-top: 8px; }
.cat-row { display: flex; align-items: center; gap: 12px; margin: 5px 0; padding: 10px 11px; border: 1px solid color-mix(in srgb, var(--accent) 10%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--accent) 4%, var(--card)); transition: background .12s ease, border-color .12s ease, transform .12s ease; }
.cat-row:hover { border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); transform: translateY(-1px); }
.cat-row + .cat-row { margin-top: 6px; }
.cat-row .grow { flex: 1; min-width: 0; }
.cat-icon-box {
  width: 42px; height: 42px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 14%, var(--card));
  display: flex; align-items: center; justify-content: center; font-size: 22px; flex: none;
}
.cat-name { font-size: 15px; font-weight: 700; }
.cat-desc { font-size: 12px; color: var(--text-sub); margin-top: 2px; }
.cat-stats { font-size: 12px; color: var(--text-sub); text-align: right; min-width: 80px; }
.cat-last { font-size: 12px; color: var(--text-sub); text-align: right; min-width: 180px; }
.stats-bar { display: flex; gap: 24px; font-size: 13px; color: var(--text-sub); margin: 8px 0 20px; }
.stats-bar strong { color: var(--text); }

/* Module liste-des-sujets. Ordre défini dans manifest.json. */
/* ── Liste des sujets ── */
.thread-row { display: flex; align-items: center; gap: 14px; padding: 13px 12px; border-radius: 10px; transition: background .12s ease; }
.thread-row:hover { background: var(--bg); }
.thread-row.is-pinned { background: color-mix(in srgb, var(--accent) 6%, transparent); }
.thread-row + .thread-row { margin-top: 2px; }
.thread-title { font-weight: 700; font-size: 15px; }
.thread-title-link { display: inline; }
.thread-pin { color: #c9a227; margin-right: 4px; }
.thread-lock { color: var(--text-sub); margin-right: 4px; }
.thread-meta { font-size: 12px; color: var(--text-sub); margin-top: 3px; }
.thread-stats { font-size: 12px; color: var(--text-sub); text-align: center; min-width: 70px; }
.prefix-tag { font-size: 10px; font-weight: 800; padding: 2px 7px; border-radius: 6px; margin-right: 6px; display: inline-block; vertical-align: middle; }
.thread-heading { margin: 0 0 5px; }
.thread-heading .page-title { margin: 0; }
.thread-actions { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 10px; }
.thread-actions form { margin: 0; }
.thread-move-details { position: relative; }
.thread-move-details > summary { list-style: none; }
.thread-move-details > summary::-webkit-details-marker { display: none; }
.thread-move-details[open] > summary { border-color: color-mix(in srgb, var(--accent) 42%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.thread-move-details > form { position: absolute; z-index: 25; top: calc(100% + 8px); left: 0; display: grid; gap: 9px; width: min(320px, calc(100vw - 42px)); padding: 13px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); box-shadow: 0 16px 38px rgba(26, 39, 65, .18); }
.thread-move-details label { display: grid; gap: 5px; font-size: 12px; font-weight: 800; }
.thread-move-details select { width: 100%; min-height: 38px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg); color: var(--text); font: inherit; font-size: 13px; }
.thread-move-details p { margin: 0; color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.thread-topic-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 9px; color: var(--text-sub); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.thread-topic-tags > span { color: var(--text-sub); }
.thread-tag-list { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; vertical-align: middle; }
.thread-tag-list .prefix-tag { margin-right: 0; letter-spacing: 0; text-transform: none; }
.thread-row .thread-tag-list { margin: 0 0 0 7px; }

/* Module sujet-messages. Ordre défini dans manifest.json. */
/* ── Sujet / messages ── */
.post-list { margin-top: 16px; }
.post-card { display: flex; gap: 16px; padding: 20px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); }
.post-card + .post-card { margin-top: 14px; }
.post-author { width: 130px; flex: none; text-align: center; }
.post-author .username { font-weight: 700; font-size: 14px; margin-top: 8px; display: block; }
.role-badge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 10px; display: inline-block; margin-top: 4px; }
.role-admin { background: rgba(209,69,61,.15); color: var(--danger); }
.role-moderator { background: rgba(59,111,214,.15); color: var(--accent); }
.group-badge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 10px; display: inline-block; margin-top: 4px; margin-left: 4px; }
.post-space-summary { position: relative; display: block; width: max-content; max-width: 100%; margin: 8px auto 0; text-align: left; }
.post-space-summary > summary { display: inline-flex; align-items: center; justify-content: center; gap: 5px; max-width: 100%; padding: 5px 8px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 999px; background: color-mix(in srgb, var(--accent) 7%, var(--card)); color: var(--accent); cursor: pointer; font-size: 11px; font-weight: 800; line-height: 1.2; list-style: none; white-space: nowrap; }
.post-space-summary > summary::-webkit-details-marker { display: none; }
.post-space-summary > summary::after { content: '⌄'; font-size: 11px; line-height: 1; transition: transform .16s ease; }
.post-space-summary[open] > summary::after { transform: rotate(180deg); }
.post-space-popover { position: absolute; z-index: 12; top: calc(100% + 7px); left: 50%; width: max-content; min-width: 210px; max-width: min(290px, calc(100vw - 40px)); padding: 7px; transform: translateX(-50%); border: 1px solid var(--border); border-radius: 13px; background: var(--card); box-shadow: 0 15px 32px rgba(20, 31, 50, .16); text-align: left; }
.post-space-popover-title { display: block; padding: 3px 6px 7px; color: var(--text-sub); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.post-space-row { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 6px; border-radius: 8px; color: var(--text); font-size: 12px; font-weight: 700; line-height: 1.25; }
.post-space-row + .post-space-row { margin-top: 2px; }
.post-space-row:hover { background: color-mix(in srgb, var(--space-color) 9%, var(--card)); }
.post-space-icon { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 8px; background: color-mix(in srgb, var(--space-color) 13%, var(--card)); color: var(--space-color); font-size: 14px; }
.post-space-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.post-body-wrap { flex: 1; min-width: 0; }
.post-meta { font-size: 12px; color: var(--text-sub); margin-bottom: 8px; }
.post-body { font-size: 15px; word-wrap: break-word; }
.post-body img.post-img { max-width: 100%; height: auto; border-radius: 8px; margin: 8px 0; display: block; }
.private-message-back { margin: 20px 0 10px; }
.private-conversation-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.private-conversation-head .page-title { margin: 4px 0 0; }
.private-conversation-secure { flex: none; padding: 7px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text-sub); font-size: 11px; font-weight: 700; }
.private-conversation { display: grid; gap: 11px; padding: 18px; }
.private-message { justify-self: start; width: min(78%, 680px); padding: 11px 13px; border: 1px solid var(--border); border-radius: 15px 15px 15px 4px; background: var(--bg); }
.private-message.is-mine { justify-self: end; border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 15px 15px 4px 15px; background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.private-message-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 5px; color: var(--text-sub); font-size: 10px; }
.private-message-meta strong { color: var(--text); font-size: 11px; }
.private-message-body { overflow-wrap: anywhere; }
.private-message-body img.post-img { width: auto; max-width: min(100%, 520px); max-height: 620px; object-fit: contain; background: var(--card); }
.private-message-composer { margin-top: 16px; padding: 18px; border-color: color-mix(in srgb, var(--accent) 25%, var(--border)); }
.private-message-composer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.private-message-composer-head h2 { margin: 3px 0 0; font-size: 18px; }
.private-message-composer-head > span { color: var(--text-sub); font-size: 11px; font-weight: 700; }
.private-message-send { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 12px; }
.private-message-send small { max-width: 650px; color: var(--text-sub); font-size: 10px; line-height: 1.45; }
.post-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 16px; font-size: 12px; }
.post-actions form { display: inline-flex; margin: 0; }
.post-actions > details { display: inline-block; margin: 0; }
.post-action-btn, .post-actions > details > summary { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 31px; padding: 6px 9px; border: 1px solid var(--border); border-radius: 9px; background: var(--card); color: var(--text-sub); cursor: pointer; font: inherit; font-size: 12px; font-weight: 750; line-height: 1; transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease; }
.post-action-btn:hover, .post-actions > details > summary:hover { border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); color: var(--accent); text-decoration: none; transform: translateY(-1px); }
.post-action-btn:focus-visible, .post-actions > details > summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 32%, transparent); outline-offset: 2px; }
.post-like-button { min-width: 48px; color: var(--text); }
.post-like-button.is-liked { border-color: color-mix(in srgb, var(--danger) 38%, var(--border)); background: color-mix(in srgb, var(--danger) 8%, var(--card)); color: var(--danger); }
.post-like-button .like-count { min-width: 1ch; font-variant-numeric: tabular-nums; }
.post-action-danger { border-color: color-mix(in srgb, var(--danger) 28%, var(--border)); color: var(--danger); }
.post-action-danger:hover { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 9%, var(--card)); color: var(--danger); }
.post-action-guest { display: inline-flex; align-items: center; min-height: 31px; padding: 6px 9px; border: 1px solid var(--border); border-radius: 9px; color: var(--text-sub); font-size: 12px; font-weight: 700; }
.post-edit-details { display: inline-block; }
.post-edit-details summary { color: var(--accent); list-style: none; }
.post-edit-details summary::-webkit-details-marker { display: none; }
.post-edit-details[open] summary { border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.post-edit-details[open] summary { margin-bottom: 8px; }
.post-actions > .post-edit-details[open] { flex: 1 0 100%; min-width: 0; }
.post-actions .post-edit-form { display: block; width: min(100%, 740px); margin: 0; padding: 11px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 4%, var(--card)); }
.post-edit-form .richtoolbar, .post-edit-form .rich-editable { width: 100%; box-sizing: border-box; }
.post-edit-form > .post-edit-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.post-edit-cancel { padding: 5px 2px !important; color: var(--text-sub) !important; }

/* Module journal-de-bord-de-l-administration. Ordre défini dans manifest.json. */
/* ── Journal de bord de l'administration ── */
.journal-intro { margin-bottom: 16px; }
.journal-filters { display: grid; grid-template-columns: minmax(155px, .8fr) minmax(190px, 1.2fr) minmax(165px, .7fr) minmax(260px, 1.8fr) auto; align-items: end; gap: 11px; margin-bottom: 16px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); box-shadow: var(--shadow); }
.journal-filters label, .journal-filters legend { display: block; margin-bottom: 5px; color: var(--text-sub); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.journal-filters input[type="search"], .journal-filters input[type="number"], .journal-filters select { width: 100%; min-height: 34px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text); font: inherit; font-size: 12px; }
.journal-filter-period { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; }
.journal-filter-period label { margin-bottom: 0; }
.journal-filter-period input[hidden] { display: none; }
.journal-storage { margin: 0 0 16px; padding: 16px; }
.journal-storage-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.journal-storage-head h2 { margin: 3px 0 5px; font-size: 20px; }
.journal-storage-head p { margin: 0; color: var(--text-sub); font-size: 13px; }
.journal-storage-head > span { max-width: 230px; color: var(--text-sub); font-size: 11px; text-align: right; }
.journal-storage-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.journal-storage-list > div { display: grid; gap: 2px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); }
.journal-storage-list span { color: var(--text-sub); font-size: 11px; }
.journal-storage-list strong { font-size: 17px; }
.journal-storage-list small { color: var(--text-sub); font-size: 10px; }
.journal-purge { margin-top: 14px; border-top: 1px solid var(--border); }
.journal-purge summary { display: flex; align-items: center; gap: 9px; padding-top: 13px; cursor: pointer; list-style: none; }
.journal-purge summary::-webkit-details-marker { display: none; }
.journal-purge summary > span:last-child { display: grid; gap: 2px; }
.journal-purge summary small { color: var(--text-sub); font-size: 11px; }
.journal-purge-form { display: grid; grid-template-columns: 1.3fr 1fr .8fr auto; gap: 9px; align-items: end; margin-top: 12px; padding: 12px; border-radius: 10px; background: color-mix(in srgb, var(--danger) 4%, var(--bg)); }
.journal-purge-form label { display: grid; gap: 5px; color: var(--text-sub); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.journal-purge-form select, .journal-purge-form input[type="text"], .journal-purge-form input:not([type]) { min-height: 34px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text); font: inherit; font-size: 12px; }
.journal-purge-form .journal-purge-compact { grid-column: 1 / -1; display: flex; align-items: center; gap: 7px; letter-spacing: 0; text-transform: none; }
.journal-filter-types { min-width: 0; margin: 0; padding: 0; border: 0; }
.journal-filter-types > div { display: flex; flex-wrap: wrap; gap: 5px; }
.journal-filter-types label { display: inline-flex; align-items: center; gap: 5px; margin: 0; padding: 5px 7px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg); color: var(--text-sub); font-size: 10px; letter-spacing: 0; text-transform: none; cursor: pointer; }
.journal-filter-types input { width: 13px; height: 13px; margin: 0; accent-color: var(--accent); }
.journal-filter-types label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 42%, var(--border)); background: color-mix(in srgb, var(--accent) 9%, var(--card)); color: var(--accent); }
.journal-filter-actions { display: flex; gap: 6px; white-space: nowrap; }
.journal-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.journal-summary > div { display: grid; gap: 3px; min-height: 82px; padding: 15px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); box-shadow: var(--shadow); }
.journal-summary strong { color: var(--accent); font-size: 25px; line-height: 1; font-variant-numeric: tabular-nums; }
.journal-summary span { color: var(--text-sub); font-size: 11px; font-weight: 700; line-height: 1.3; }
.journal-card { padding: 0; overflow: hidden; }
.journal-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 20px 16px; border-bottom: 1px solid var(--border); }
.journal-card-head h2 { margin: 4px 0 0; font-size: 18px; }
.journal-card-head > span { color: var(--text-sub); font-size: 11px; font-weight: 700; white-space: nowrap; }
.journal-list { display: grid; }
.journal-entry { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 62px; padding: 10px 20px; border-bottom: 1px solid var(--border); color: var(--text); text-decoration: none; }
.journal-entry:last-child { border-bottom: 0; }
a.journal-entry:hover { background: color-mix(in srgb, var(--accent) 5%, var(--card)); color: var(--text); text-decoration: none; }
.journal-entry-copy { display: grid; min-width: 0; gap: 3px; }
.journal-entry-copy strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.journal-entry-copy small { overflow: hidden; color: var(--text-sub); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.journal-entry time { color: var(--text-sub); font-size: 11px; text-align: right; white-space: nowrap; }
.journal-icon { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 9px; background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--accent); font-size: 15px; }
.journal-icon-member { background: rgba(39, 157, 103, .12); color: #168256; }
.journal-icon-thread, .journal-icon-reply { background: rgba(91, 99, 216, .12); color: #575ec7; }
.journal-icon-idea { background: rgba(211, 145, 17, .14); color: #a97200; }
.journal-icon-event { background: rgba(23, 143, 164, .12); color: #117b90; }
.journal-icon-report { background: rgba(209, 69, 61, .12); color: var(--danger); }
.journal-icon-email, .journal-icon-email_auto { background: rgba(129, 85, 202, .12); color: #7651b5; }
.journal-empty { display: flex; align-items: center; gap: 13px; padding: 28px 20px; }
.journal-empty > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--accent) 9%, var(--card)); color: var(--accent); font-size: 21px; }
.journal-empty h2 { margin: 0; font-size: 16px; }
.journal-empty p { margin: 4px 0 0; color: var(--text-sub); font-size: 12px; }

/* Module composeur-glisser-deposer. Ordre défini dans manifest.json. */
/* ── Composeur (glisser-déposer) ── */
.composer-wrap { position: relative; }
.composer-dropzone {
  position: absolute; inset: 0; border-radius: 8px; pointer-events: none;
  transition: background .15s ease, box-shadow .15s ease;
}
.composer-dropzone.is-dragover { background: rgba(59,111,214,.08); box-shadow: inset 0 0 0 2px var(--accent); pointer-events: auto; }
.composer-hint { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-size: 12px; color: var(--text-sub); margin: 9px 0 4px; }
.composer-hint-warn { color: #b8860b; }
.composer-browse { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; background: color-mix(in srgb, var(--accent) 12%, var(--card)); border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--border)); color: var(--accent); cursor: pointer; font: inherit; font-weight: 700; font-size: 12px; padding: 6px 10px; border-radius: 8px; }
.composer-browse:hover { background: color-mix(in srgb, var(--accent) 18%, var(--card)); }
.composer-browse:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.composer-hint-copy { flex: 1; min-width: 180px; }
.composer-thumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.composer-upload-notice { width: 100%; padding: 9px 11px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; }
.composer-upload-notice.is-error { border-color: color-mix(in srgb, #dc4545 62%, var(--border)); background: color-mix(in srgb, #dc4545 10%, var(--card)); color: #dc4545; }
.composer-thumb { position: relative; width: 84px; height: 84px; border-radius: 8px; overflow: hidden; border: 1px solid var(--border); background: var(--bg); }
.composer-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.composer-thumb-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(0,0,0,.2); }
.composer-thumb-fill { height: 100%; width: 0%; background: var(--accent); transition: width .2s ease; }
.composer-thumb-status { position: absolute; left: 0; right: 0; bottom: 0; font-size: 10px; text-align: center; color: #fff; background: rgba(0,0,0,.55); padding: 2px 0; }
.composer-thumb.is-done .composer-thumb-status { background: rgba(26,143,90,.85); }
.composer-thumb.is-error .composer-thumb-status { background: rgba(209,69,61,.9); }

.topic-photo-options { flex: 1 0 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.topic-photo-options label { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.topic-photo-options select { width: auto; margin: 0; }
.topic-photo-options input[type="checkbox"] { width: auto; margin: 0; }

.topic-photo-job {
  flex: 1 0 100%;
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: .85rem;
}
.topic-photo-job strong { overflow-wrap: anywhere; }
.topic-photo-job-status { color: var(--text-sub); }
.topic-photo-job progress { width: 100%; height: 8px; accent-color: var(--accent); }
.topic-photo-job-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.topic-photo-job-actions:empty { display: none; }

.topic-photo-movable img { cursor: grab; }
.topic-photo-movable img.is-moving-photo { opacity: .55; cursor: grabbing; }
.topic-photo-drop-marker {
  position: fixed;
  z-index: 1000;
  pointer-events: none;
  background: var(--accent);
  border-radius: 2px;
}

/* Module barre-de-mise-en-forme. Ordre défini dans manifest.json. */
/* ── Barre de mise en forme ── */
.richtoolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: -1px; padding: 7px 8px; border: 1px solid var(--border); border-radius: 10px 10px 0 0; background: color-mix(in srgb, var(--card) 88%, var(--bg)); position: relative; z-index: 1; }
.richtoolbar-group { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.richtoolbar-group-history { padding-left: 8px; border-left: 1px solid var(--border); }
.richtoolbar-btn, .richtoolbar-size {
  min-height: 34px; background: transparent; border: 1px solid transparent; color: var(--text);
  border-radius: 7px; padding: 5px 8px; font-size: 12px; cursor: pointer;
}
.richtoolbar-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; font-weight: 700; white-space: nowrap; }
.richtoolbar-icon { min-width: 13px; text-align: center; font-size: 14px; line-height: 1; }
.richtoolbar-btn:hover, .richtoolbar-btn:focus-visible, .richtoolbar-size:hover, .richtoolbar-size:focus-visible { border-color: color-mix(in srgb, var(--accent) 50%, var(--border)); background: color-mix(in srgb, var(--accent) 10%, transparent); outline: none; }
.richtoolbar-btn.is-active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 17%, transparent); color: var(--accent); }
.richtoolbar-size { color: var(--text-sub); font-weight: 600; max-width: 142px; }
.richtoolbar-hint { margin-left: auto; font-size: 11px; color: var(--text-sub); white-space: nowrap; }
.richtoolbar-shortcut { display: inline-block; margin-left: 8px; padding-left: 8px; border-left: 1px solid var(--border); }
.smiley-picker { position: relative; display: inline-flex; vertical-align: middle; }
.smiley-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--text); font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.smiley-toggle:hover, .smiley-toggle:focus-visible { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); color: var(--accent); outline: none; }
.smiley-panel { position: absolute; z-index: 30; bottom: calc(100% + 8px); left: 0; display: grid; grid-template-columns: repeat(6, 36px); gap: 3px; width: max-content; padding: 8px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); box-shadow: 0 14px 36px rgba(26, 39, 65, .18); }
.smiley-panel[hidden] { display: none !important; }
.richtoolbar .smiley-panel { top: calc(100% + 8px); bottom: auto; }
.smiley-choice { display: grid; place-items: center; width: 36px; height: 34px; padding: 0; border: 0; border-radius: 8px; background: transparent; font-size: 20px; cursor: pointer; }
.smiley-choice:hover, .smiley-choice:focus-visible { background: color-mix(in srgb, var(--accent) 12%, transparent); outline: none; }
textarea + .smiley-picker { margin-top: 7px; }
.richtoolbar + .rich-editable, .richtoolbar + .composer-wrap .rich-editable { border-top-left-radius: 0; border-top-right-radius: 0; }

@media (max-width: 640px) {
  .private-conversation-head { align-items: flex-start; flex-direction: column; }
  .private-conversation-secure { align-self: flex-start; }
  .private-conversation { padding: 12px; }
  .private-message { width: 88%; padding: 10px 11px; }
  .private-message-body img.post-img { max-height: 440px; }
  .private-message-composer { padding: 14px; }
  .private-message-composer-head, .private-message-send { align-items: stretch; flex-direction: column; }
  .private-message-send .btn { justify-content: center; width: 100%; }
  .admin-mail-hero { align-items: flex-start; padding: 20px; }
  .admin-mail-hero > span { display: none; }
  .admin-mail-row { grid-template-columns: 28px minmax(0, 1fr); gap: 9px; padding: 12px; }
  .admin-mail-row time, .admin-mail-row em { grid-column: 2; }
  .ideas-hero { align-items: flex-start; padding: 20px; }
  .ideas-hero-icon { display: none; }
  .ideas-toolbar { align-items: stretch; flex-direction: column; }
  .ideas-filters { width: 100%; }
  .ideas-filters .btn, .ideas-toolbar > .btn { flex: 1; justify-content: center; }
  .ideas-filter-status { width: 100%; margin-left: 0; }
  .ideas-filter-status select { flex: 1; }
  .idea-card { grid-template-columns: 62px minmax(0, 1fr); gap: 11px; padding: 13px; }
  .idea-status-form { grid-column: 2; }
  .idea-status-form select { width: 100%; }
  .idea-discussion { grid-column: 1 / -1; }
  .idea-discussion-head { align-items: flex-start; flex-direction: column; gap: 2px; }
  .idea-comment-actions { align-items: stretch; flex-direction: column; }
  .idea-comment-actions .btn { width: 100%; justify-content: center; }
  .idea-meta time { width: 100%; margin-left: 0; }
  .ideas-empty { align-items: flex-start; flex-wrap: wrap; }
  .ideas-empty .btn { width: 100%; margin-left: 0; justify-content: center; }
  .idea-workflow { padding: 14px; }
  .idea-workflow-head { flex-direction: column; gap: 8px; }
  .idea-workflow-head small { max-width: none; }
  .idea-board { grid-template-columns: repeat(5, minmax(220px, 1fr)); }
  .site-roles-guide { grid-template-columns: 1fr; }
  .automation-manual-actions form { grid-template-columns: 1fr; }
  .automation-manual-actions button { grid-column: auto; grid-row: auto; width: 100%; justify-content: center; }
  .external-backup-now { grid-template-columns: 1fr; }
  .external-backup-now .btn { width: 100%; justify-content: center; }
  .mfa-profile-callout { align-items: flex-start; flex-direction: column; }
  .mfa-profile-callout .btn { width: 100%; justify-content: center; }
  .mfa-recovery-list { grid-template-columns: 1fr; }
  .rich-editable { min-height: 156px; padding: 12px; font-size: 16px; }
  .richtoolbar { gap: 6px; padding: 6px; }
  .richtoolbar-group { gap: 3px; }
  .richtoolbar-group-history { padding-left: 6px; }
  .richtoolbar-btn { width: 35px; min-height: 36px; padding: 5px; }
  .richtoolbar-label { display: none; }
  .richtoolbar-size { min-height: 36px; max-width: 92px; padding: 5px 6px; font-size: 11px; }
  .richtoolbar-hint { flex-basis: 100%; margin: 0 2px 1px; white-space: normal; }
  .richtoolbar-shortcut { display: none; }
  .composer-hint { align-items: flex-start; gap: 7px; }
  .composer-browse { min-height: 38px; }
  .composer-hint-copy { min-width: 0; padding-top: 3px; }
}

/* Module badges-profils. Ordre défini dans manifest.json. */
/* ── Badges & profils ── */
.badge-chip { display: inline-flex; align-items: center; gap: 5px; background: var(--bg); border: 1px solid var(--border); border-radius: 20px; padding: 5px 12px; font-size: 12px; margin: 3px 4px 3px 0; }
.profile-head { display: flex; gap: 20px; align-items: center; }
.profile-stats { display: flex; gap: 24px; margin-top: 14px; font-size: 13px; color: var(--text-sub); }
.profile-stats strong { color: var(--text); display: block; font-size: 18px; }

/* Module pagination. Ordre défini dans manifest.json. */
/* ── Pagination ── */
.pagination { display: flex; gap: 8px; justify-content: center; margin: 20px 0; }
.pagination a, .pagination span { padding: 7px 13px; border-radius: 6px; font-size: 13px; border: 1px solid var(--border); }
.pagination .current { background: var(--accent); color: #fff; border-color: var(--accent); }

/* Module moderation. Ordre défini dans manifest.json. */
/* ── Modération ── */
.mod-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.mod-table th, .mod-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--border); }
.mod-table th { color: var(--text-sub); font-weight: 600; }

/* Module fil-d-ariane. Ordre défini dans manifest.json. */
/* ── Fil d'Ariane ── */
.breadcrumb { font-size: 13px; color: var(--text-sub); margin: 14px 0 0; }
.breadcrumb a { color: var(--text-sub); }
.breadcrumb a:hover { color: var(--accent); }

/* Module non-lu-mentions-citations. Ordre défini dans manifest.json. */
/* ── Non lu / mentions / citations ── */
.unread-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); margin-right: 6px; vertical-align: middle; }
.mention { font-weight: 600; background: rgba(59,111,214,.1); border-radius: 4px; padding: 0 3px; }
.post-body blockquote { margin: 10px 0; padding: 8px 14px; border-left: 3px solid var(--accent); background: var(--bg); border-radius: 0 6px 6px 0; color: var(--text-sub); font-size: 14px; }
.rich-editable blockquote { position:relative; margin:10px 0; padding:28px 14px 12px 16px; border-left:4px solid var(--accent); border-radius:0 10px 10px 0; background:color-mix(in srgb,var(--accent) 7%,var(--bg)); color:var(--text-sub); }
.rich-editable blockquote::before { content:'Citation · recliquez sur « Citation » pour revenir au texte normal'; position:absolute; top:7px; left:16px; color:var(--accent); font-size:9px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }

/* Module qui-est-en-ligne. Ordre défini dans manifest.json. */
/* ── Qui est en ligne ── */
.online-list { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; }
.online-chip { background: var(--bg); border: 1px solid var(--border); border-radius: 20px; padding: 4px 10px; }
.online-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--ok); margin-right: 5px; }

/* Module cloche-de-notifications. Ordre défini dans manifest.json. */
/* ── Cloche de notifications ── */
.notif-wrap { position: relative; }
.notif-bell { position: relative; background: none; border: none; cursor: pointer; font-size: 19px; color: var(--text-sub); padding: 4px; }
.notif-bell:hover { color: var(--accent); }
.header-messages-link { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 36px; border: 1px solid transparent; border-radius: 11px; color: var(--text-sub); background: transparent; line-height: 1; }
.header-messages-link:hover, .header-messages-link.is-active { border-color: color-mix(in srgb, var(--accent) 24%, var(--border)); background: color-mix(in srgb, var(--accent) 9%, var(--card)); color: var(--accent); text-decoration: none; }
.mailbox-icon { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.header-messages-link .notif-count { top: -5px; right: -5px; }
.header-messages-link.has-unread { color: var(--accent); }
.notif-count { position: absolute; top: -2px; right: -2px; background: var(--danger); color: #fff; font-size: 10px; font-weight: 700; border-radius: 10px; padding: 1px 5px; line-height: 1.3; }
.notif-dropdown {
  display: none; position: absolute; right: 0; top: 38px; width: 320px; max-height: 400px; overflow-y: auto;
  background: var(--card); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.15); z-index: 20;
}
.notif-dropdown.is-open { display: block; }
.notif-item { display: block; padding: 10px 14px; font-size: 13px; border-bottom: 1px solid var(--border); color: var(--text); }
.notif-item:hover { background: var(--bg); text-decoration: none; }
.notif-item.is-unread { background: rgba(59,111,214,.06); }
.notif-item .notif-time { font-size: 11px; color: var(--text-sub); }
.notif-empty { display: grid; gap: 5px; padding: 20px 14px; color: var(--text-sub); font-size: 12px; text-align: center; }
.notif-empty strong { color: var(--text); font-size: 13px; }
.notif-empty a { margin-top: 3px; color: var(--accent); font-weight: 750; }
.notif-footer { padding: 8px 14px; text-align: center; border-top: 1px solid var(--border); }
.notifications-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:22px 0 16px; }
.notifications-hero h1 { margin:5px 0 6px; }
.notifications-hero p { margin:0; color:var(--text-sub); line-height:1.5; }
.notifications-actions { display:flex; justify-content:flex-end; margin-bottom:10px; }
.notifications-actions form { margin:0; }
.notifications-list { padding:6px; overflow:hidden; }
.notification-row { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:12px; padding:13px 14px; border-radius:12px; color:var(--text); }
.notification-row + .notification-row { border-top:1px solid var(--border); }
.notification-row:hover { background:var(--bg); color:var(--text); text-decoration:none; }
.notification-row.is-unread { background:color-mix(in srgb,var(--accent) 8%,var(--card)); }
.notification-row-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:color-mix(in srgb,var(--accent) 12%,var(--bg)); color:var(--accent); font-weight:800; }
.notification-row .grow span,.notification-row .grow small { display:block; }
.notification-row .grow small { margin-top:3px; color:var(--text-sub); font-size:11px; }
.notification-row em { color:var(--accent); font-size:12px; font-style:normal; font-weight:750; }
.notifications-empty { padding:38px 18px; text-align:center; }
.notifications-empty > span { display:block; font-size:32px; margin-bottom:8px; }
.notifications-empty p { margin:5px 0 0; color:var(--text-sub); }
.notification-preferences-form { display:grid; gap:9px; }
.notification-channel { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; margin:0; padding:13px 14px; border:1px solid var(--border); border-radius:14px; background:var(--bg); cursor:pointer; }
.notification-channel-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--card); font-size:20px; }
.notification-channel strong,.notification-channel small { display:block; }
.notification-channel small { margin-top:3px; color:var(--text-sub); font-size:11px; line-height:1.4; }
.notification-channel input { width:20px; height:20px; margin:0; accent-color:var(--accent); }
.notification-context-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.help-direct-link { display:inline-flex; align-items:center; gap:6px; margin:2px 18px 16px; padding:9px 13px; border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border)); border-radius:10px; background:color-mix(in srgb,var(--accent) 7%,var(--card)); color:var(--accent); font-size:12px; font-weight:800; text-decoration:none; }
.help-direct-link:hover { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,var(--card)); color:var(--accent); text-decoration:none; }
.help-popular { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:11px; padding-top:11px; border-top:1px solid var(--border); }
.help-popular > span { margin-right:3px; color:var(--text-sub); font-size:11px; font-weight:800; }
.help-popular button { padding:5px 9px; border:0; border-radius:999px; background:var(--bg); color:var(--text-sub); cursor:pointer; font:inherit; font-size:11px; font-weight:700; }
.help-popular button:hover { background:color-mix(in srgb,var(--accent) 10%,var(--card)); color:var(--accent); }
.help-item.is-search-result { border-color:color-mix(in srgb,var(--accent) 32%,var(--border)); background:color-mix(in srgb,var(--accent) 4%,transparent); }
.help-journey-results { margin: -8px 0 30px; scroll-margin-top: 210px; }
.help-journey-results[hidden] { display: none; }
.help-journey-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 0 2px 12px; }
.help-journey-heading span { display: block; margin-bottom: 3px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .1em; }
.help-journey-heading h2 { margin: 0; font-size: 22px; }
.help-journey-heading > p { max-width: 460px; margin: 0; color: var(--text-sub); font-size: 12px; text-align: right; }
.help-journey-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.help-journey-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 18px; overflow: hidden; }
.help-journey-card.is-best { grid-column: 1 / -1; border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 8%, var(--card)), var(--card) 62%); }
.help-journey-card.is-best::after { content: ''; position: absolute; top: -60px; right: -54px; width: 150px; height: 150px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 8%, transparent); pointer-events: none; }
.help-journey-card-head { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: 12px; }
.help-journey-card-head > div { min-width: 0; }
.help-journey-card-head small { display: block; margin-bottom: 2px; color: var(--accent); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.help-journey-card h3 { margin: 1px 0 0; font-size: 17px; line-height: 1.3; }
.help-journey-icon { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: color-mix(in srgb, var(--accent) 10%, var(--bg)); font-size: 20px; }
.help-journey-audience { margin: 4px 0 0; color: var(--text-sub); font-size: 10px; line-height: 1.35; }
.help-journey-steps { display: grid; gap: 8px; margin: 15px 0 16px; padding: 0; list-style: none; counter-reset: help-step; }
.help-journey-card.is-best .help-journey-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.help-journey-steps li { counter-increment: help-step; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: 8px; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.help-journey-steps li::before { content: counter(help-step); display: grid; place-items: center; width: 24px; height: 24px; border-radius: 8px; background: var(--bg); color: var(--accent); font-size: 10px; font-weight: 900; }
.help-journey-steps li span { padding-top: 3px; }
.help-journey-note { margin: -3px 0 14px; padding: 9px 11px; border-radius: 9px; background: color-mix(in srgb, var(--accent) 6%, var(--bg)); color: var(--text-sub); font-size: 11px; line-height: 1.5; }
.help-journey-action { align-self: flex-start; margin-top: auto; min-height: 38px; font-size: 12px; }
@media (max-width:760px) {
  .help-journey-results { margin-top: -6px; }
  .help-journey-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .help-journey-heading > p { text-align: left; }
  .help-journey-grid { grid-template-columns: 1fr; }
  .help-journey-card.is-best { grid-column: auto; }
  .help-journey-card, .help-journey-card.is-best { padding: 15px; }
  .help-journey-card.is-best .help-journey-steps { grid-template-columns: 1fr; }
  .help-journey-action { width: 100%; justify-content: center; }
}

/* Administration des protections réseau */
.protection-intro-note { display:flex; gap:14px; align-items:flex-start; max-width:1000px; padding:17px 19px; }
.protection-intro-note > span { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:12px; background:#edf4ff; font-size:20px; }
.protection-intro-note p { margin:0; color:var(--text-sub); line-height:1.55; }
.protection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.protection-card { padding:21px; }
.protection-card .home-section-head { margin:0 0 16px; }
.protection-card .home-section-head h2 { margin:3px 0 0; font-size:20px; }

/* Module cloche-de-notifications. Ordre défini dans manifest.json. */
.protection-form { display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:12px; }
.protection-form label { display:grid; gap:6px; color:var(--text); font-size:12px; font-weight:800; }
.protection-form label small { color:var(--text-sub); font-weight:500; }
.protection-form input, .protection-form select { min-height:42px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--text); font:inherit; }
.protection-form .protection-wide { grid-column:1 / -1; }
.protection-form button { justify-self:start; }
.protection-list { border-top:1px solid var(--border); }
.protection-row { display:flex; align-items:center; gap:14px; justify-content:space-between; min-height:70px; border-bottom:1px solid var(--border); }
.protection-row > div { min-width:0; }
.protection-row strong, .protection-row small { display:block; }
.protection-row code { color:var(--text); font:750 13px ui-monospace,SFMono-Regular,Menlo,monospace; }
.protection-row small { margin-top:5px; color:var(--text-sub); font-size:11px; line-height:1.4; }
.protection-row small b { color:var(--text); }
.protection-block-list { max-width:1000px; margin-top:18px; }
.protection-settings { max-width:1000px; margin-top:18px; }
.protection-settings-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:end; }
.protection-settings-form label { display:grid; gap:6px; color:var(--text); font-size:12px; font-weight:800; }
.protection-settings-form input, .protection-settings-form select { min-height:42px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--text); font:inherit; }
.protection-settings-form button { justify-self:start; }
.protection-countdown { display:inline-block; margin-left:7px; padding:3px 7px; border-radius:999px; background:#fff4da; color:#8b5a00; font:800 10px/1 inherit; vertical-align:middle; }
.protection-countdown.is-permanent { background:#f0f3f6; color:#5d6876; }
.protection-limit-group + .protection-limit-group { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.protection-limit-heading { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.protection-limit-heading strong { font-size:14px; }
.protection-limit-heading small, .protection-empty { margin:0; color:var(--text-sub); font-size:11px; }
.protection-empty { padding:10px 0 0; }
.composer-publish-row { margin-top:16px; }
.composer-publish-row small { display:block; margin-top:8px; color:var(--text-sub); font-size:12px; }
@media (max-width:760px) { .protection-grid, .protection-settings-form { grid-template-columns:1fr; } .protection-form { grid-template-columns:1fr; } .protection-row { align-items:flex-start; padding:13px 0; } }
.real-space-admin-modern { gap:9px; min-height:48px; margin-top:12px; padding:6px 10px; border-radius:16px; }
.real-space-admin-modern .real-space-admin-brand { min-width:168px; padding-right:8px; border-right:1px solid var(--border); }
.real-space-admin-modern .real-space-admin-brand .club-mark { width:32px; height:32px; border-radius:10px; font-size:18px; }
.real-space-admin-modern .real-space-admin-brand strong { font-size:13px; }
.real-space-admin-modern .real-space-admin-brand small { font-size:10px; }
.real-space-admin-primary { display:flex; align-items:center; gap:2px; flex:1 1 auto; flex-wrap:wrap; }
.real-space-admin-primary a, .real-space-admin-dropdown summary { display:inline-flex; align-items:center; gap:5px; min-height:31px; padding:6px 8px; border-radius:9px; color:var(--text-sub); font-size:11px; font-weight:750; text-decoration:none; white-space:nowrap; }
.real-space-admin-primary a > span, .real-space-admin-dropdown summary > span { display:grid; place-items:center; flex:none; width:25px; height:25px; border-radius:8px; background:color-mix(in srgb,var(--accent) 9%,var(--bg)); font-size:14px; line-height:1; }
.real-space-admin-primary a:hover, .real-space-admin-primary a.is-active, .real-space-admin-dropdown summary:hover, .real-space-admin-dropdown summary.is-active { color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--card)); }
.real-space-admin-dropdown { position:relative; flex:0 0 auto; }
.real-space-admin-dropdown summary { cursor:pointer; list-style:none; }
.real-space-admin-dropdown summary::-webkit-details-marker { display:none; }
.real-space-admin-dropdown summary b { color:var(--text-sub); font-size:10px; font-weight:400; }
.real-space-admin-dropdown[open] summary b { transform:rotate(180deg); }
.real-space-admin-dropdown-panel { position:absolute; z-index:20; top:calc(100% + 7px); right:0; min-width:150px; padding:6px; border:1px solid var(--border); border-radius:12px; background:var(--card); box-shadow:var(--shadow); }
.real-space-admin-dropdown-panel a { display:flex; align-items:center; gap:7px; padding:8px 9px; border-radius:8px; color:var(--text-sub); font-size:11px; font-weight:750; text-decoration:none; white-space:nowrap; }
.real-space-admin-dropdown-panel a > span { display:grid; place-items:center; width:26px; height:26px; border-radius:8px; background:color-mix(in srgb,var(--accent) 9%,var(--bg)); font-size:14px; }
.real-space-admin-dropdown-panel a:hover, .real-space-admin-dropdown-panel a.is-active { color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--card)); }
@media (max-width:760px) {
  .real-space-admin-modern { display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:8px; min-width:0; }
  .real-space-admin-modern .real-space-admin-brand { grid-column:1 / -1; width:auto; min-width:0; padding:0 0 8px; border-right:0; border-bottom:1px solid var(--border); }
  .real-space-admin-primary { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:auto; min-width:0; max-width:100%; gap:4px; }
  .real-space-admin-primary a { min-width:0; justify-content:flex-start; white-space:normal; line-height:1.2; }
  .real-space-admin-dropdown { grid-column:1 / 2; }
  .real-space-admin-exit { grid-column:2 / -1; align-self:center; min-width:0; max-width:100%; margin-left:0; overflow:hidden; text-overflow:ellipsis; }
  .real-space-admin-dropdown-panel { position:fixed; left:14px; right:14px; top:auto; margin-top:7px; }
  .real-space-admin-modern .real-space-admin-dropdown { min-width:0; }
}
.studio-empty-state, .gallery-empty-state { display:flex; align-items:center; gap:16px; padding:22px; border:1px dashed color-mix(in srgb,var(--accent) 34%,var(--border)); border-radius:16px; background:color-mix(in srgb,var(--accent) 4%,var(--card)); }
.studio-empty-state > div, .gallery-empty-state > div { min-width:0; }
.studio-empty-state strong, .gallery-empty-state h2 { display:block; margin:0; color:var(--text); font-size:17px; }
.studio-empty-state p, .gallery-empty-state p { margin:4px 0 0; color:var(--text-sub); font-size:13px; line-height:1.5; }
.gallery-empty-state > span { display:grid; place-items:center; flex:0 0 46px; width:46px; height:46px; border-radius:14px; background:color-mix(in srgb,var(--accent) 12%,var(--bg)); font-size:22px; }
.gallery-empty-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:8px; margin-left:auto; }
@media (max-width:640px) {
  .studio-empty-state, .gallery-empty-state { align-items:flex-start; flex-wrap:wrap; padding:17px; }
  .studio-empty-state .btn, .gallery-empty-actions { width:100%; }
  .gallery-empty-actions .btn { flex:1 1 auto; justify-content:center; }
}
.club-tool-card-meetings { border-color:color-mix(in srgb,#b98bff 42%,var(--border)); background:linear-gradient(135deg,color-mix(in srgb,#b98bff 11%,var(--card)),var(--card)); }
.club-email-composer,.admin-email-composer { margin:18px 0; padding:clamp(18px,3vw,26px); border-color:color-mix(in srgb,var(--accent) 24%,var(--border)); }
.email-composer-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr); gap:12px; }
.email-composer-grid label { margin-top:0; }
.club-email-composer textarea,.admin-email-composer textarea { min-height:170px; resize:vertical; }
.campaign-confirm { display:flex; align-items:flex-start; gap:9px; margin-top:13px; padding:12px 13px; border:1px solid var(--border); border-radius:12px; background:var(--bg); font-weight:600; }
.campaign-confirm input { flex:none; width:18px; height:18px; margin:1px 0 0; accent-color:var(--accent); }
.email-composer-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:13px; }
.email-composer-actions small { color:var(--text-sub); line-height:1.4; }
.campaign-history { margin-top:18px; border-top:1px solid var(--border); padding-top:13px; }
.campaign-history summary { cursor:pointer; color:var(--accent); font-size:12px; font-weight:750; }
.campaign-history div { display:grid; gap:7px; margin-top:10px; }
.campaign-history p { display:flex; justify-content:space-between; gap:12px; margin:0; padding:9px 11px; border-radius:10px; background:var(--bg); }
.campaign-history p strong,.campaign-history p small { display:block; }
.campaign-history p small { color:var(--text-sub); text-align:right; }
@media (max-width:640px) { .notifications-hero { align-items:flex-start; flex-direction:column; } .notification-row { grid-template-columns:38px minmax(0,1fr); } .notification-row em { display:none; } }
@media (max-width:640px) { .email-composer-grid { grid-template-columns:1fr; } .email-composer-actions,.campaign-history p { align-items:stretch; flex-direction:column; } .email-composer-actions .btn { width:100%; } .campaign-history p small { text-align:left; } }

/* Module composeur-compteur-de-caracteres. Ordre défini dans manifest.json. */
/* ── Composeur : compteur de caractères ── */
.composer-counter { font-size: 11px; color: var(--text-sub); text-align: right; margin-top: 2px; }

/* Module discuter-organisation-personnelle. Ordre défini dans manifest.json. */
/* ── Discuter : organisation personnelle ── */
.discuss-customize-hero { max-width: 820px; margin: 24px 0 18px; }
.discuss-customize-hero .page-title { margin: 7px 0 9px; font-size: clamp(31px, 4vw, 45px); letter-spacing: -.045em; line-height: 1.04; }
.discuss-customize-hero p { max-width: 720px; margin: 0; color: var(--text-sub); line-height: 1.58; }
.discuss-customize-form { display: grid; gap: 13px; max-width: 920px; }
.discuss-customize-card { padding: clamp(18px, 3vw, 25px); }
.discuss-customize-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 13px; margin-bottom: 16px; }
.discuss-customize-heading h2 { margin: 5px 0 4px; font-size: 19px; letter-spacing: -.02em; }
.discuss-customize-heading p { margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.discuss-count { flex: none; padding: 7px 9px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg); color: var(--text-sub); font-size: 11px; font-weight: 800; }
.discuss-order-list { display: grid; gap: 7px; }
.discuss-order-item { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 58px; padding: 9px 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); cursor: grab; transition: border-color .16s ease, opacity .16s ease, transform .16s ease; }
.discuss-order-item:hover { border-color: color-mix(in srgb, var(--accent) 42%, var(--border)); }
.discuss-order-item.is-dragging { opacity: .45; border-color: var(--accent); transform: scale(.99); }
.discuss-drag-handle { color: var(--text-sub); font-size: 21px; line-height: 1; letter-spacing: -5px; }
.discuss-category-icon, .discuss-catalog-icon { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 11%, var(--bg)); font-size: 17px; }
.discuss-order-copy, .discuss-catalog-item > span:last-child { min-width: 0; }
.discuss-order-copy strong, .discuss-order-copy small, .discuss-catalog-item strong, .discuss-catalog-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.discuss-order-copy strong, .discuss-catalog-item strong { font-size: 13px; }
.discuss-order-copy small, .discuss-catalog-item small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.discuss-order-actions { display: flex; gap: 4px; }
.discuss-order-actions button { display: inline-flex; align-items: center; justify-content: center; width: 29px; height: 29px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text-sub); font-size: 15px; cursor: pointer; }
.discuss-order-actions button:hover { border-color: var(--accent); color: var(--accent); }
.discuss-order-actions .discuss-toggle-visibility { color: var(--text-sub); }
.discuss-order-actions .discuss-toggle-visibility:hover { border-color: color-mix(in srgb, var(--danger) 48%, var(--border)); color: var(--danger); }
.discuss-empty-order { padding: 17px; border: 1px dashed var(--border); border-radius: 11px; color: var(--text-sub); font-size: 12px; text-align: center; }
.discuss-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.discuss-catalog-item { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; margin: 0; padding: 10px; border: 1px solid var(--border); border-radius: 11px; background: var(--card); cursor: pointer; }
.discuss-catalog-item.is-visible { border-color: color-mix(in srgb, var(--accent) 43%, var(--border)); background: color-mix(in srgb, var(--accent) 5%, var(--card)); }
.discuss-catalog-item input { position: absolute; opacity: 0; pointer-events: none; }
.discuss-catalog-item input:focus-visible + .discuss-catalog-icon { outline: 3px solid color-mix(in srgb, var(--accent) 35%, transparent); outline-offset: 2px; }
.discuss-customize-save { position: sticky; bottom: 10px; display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 11px 13px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--card) 92%, transparent); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.discuss-customize-save > div { margin-right: auto; }
.discuss-customize-save strong, .discuss-customize-save small { display: block; }
.discuss-customize-save strong { font-size: 12px; }
.discuss-customize-save small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.discuss-directory-note { display: flex; align-items: center; gap: 9px; margin-top: 11px; padding: 11px 13px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--accent) 5%, var(--card)); }
.discuss-directory-note > span { color: var(--accent); font-size: 21px; }
.discuss-directory-note p { margin: 0; color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.discuss-directory-note strong { color: var(--text); }
@media (max-width: 640px) {
  .compose-intro { margin-top: -5px; }
  .compose-choice-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 12px; }
  .category-picker { padding: 11px; border-radius: 13px; }
  .category-picker-head { align-items: center; gap: 7px; }
  .category-picker-head h2 { font-size: 17px; }
  .category-picker-selected { padding: 6px 8px; font-size: 10px; }
  .category-suggestion { margin-top: 10px; padding: 9px 10px; }
  .category-suggestion-main { align-items: center; gap: 7px; }
  .category-suggestion-main strong { font-size: 13px; }
  .category-suggestion-main .btn { padding: 4px 8px; font-size: 10px; }
  .category-suggestion p { font-size: 10px; }
  .category-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 9px; }
  .category-choice { min-height: 52px; padding: 7px; gap: 6px; border-radius: 9px; }
  .category-choice-icon { width: 27px; height: 27px; border-radius: 8px; font-size: 14px; }
  .category-choice strong { font-size: 10px; line-height: 1.2; }
  .category-choice small { margin-top: 1px; font-size: 8px; }
  .category-choice-check { font-size: 13px; }
  .tag-picker { padding: 11px; }
  .tag-picker-head h2 { font-size: 16px; }
  .tag-picker-head p { font-size: 10px; }
  .tag-suggestion-box { margin-top: 9px; padding: 8px 9px; }
  .tag-suggestion-list { gap: 5px; margin-top: 5px; }
  .tag-suggestion-chip { padding: 4px 7px; font-size: 10px; }
  .tag-choice-toolbar { align-items: stretch; flex-direction: column; }
  .tag-search-field { width: auto; }
  .tag-choice-count { align-self: flex-start; }
  .tag-choice-grid { gap: 5px; margin-top: 9px; }
  .tag-choice { gap: 5px; padding: 5px 7px; font-size: 10px; }
  .space-tag-admin-list { grid-template-columns: 1fr; }
  .space-tag-edit-form { flex-wrap: wrap; }
  .space-tag-edit-form input[name="label"] { flex-basis: calc(100% - 42px); }
  .tag-picker-head { align-items: flex-start; flex-direction: column; gap: 7px; }
  .category-tag-filter { align-items: flex-start; flex-direction: column; }
  .category-tag-filter > span { margin: 0 0 1px; }
  .discuss-customize-heading { flex-direction: column; gap: 7px; }
  .discuss-catalog { grid-template-columns: 1fr; }
  .discuss-customize-save { align-items: stretch; flex-direction: column; }
  .discuss-customize-save > div { margin: 0 0 3px; }
  .discuss-customize-save .btn { justify-content: center; }
}

/* Module discuter-organisation-personnelle. Ordre défini dans manifest.json. */
@media (max-width: 900px) {
  .forum-directory { display: block; }
  .forum-directory-head { margin-bottom: 14px; }
  .forum-section-card { margin-top: 12px; }
  .community-hero, .community-pulse { grid-template-columns: 1fr; }
  .community-hero { gap: 18px; }
  .community-pulse-main, .community-spotlight { min-width: 0; }
  .visitor-start-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journey-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-action-head { flex-direction: column; }
  .admin-health { justify-content: flex-start; }
  .site-admin-hero { grid-template-columns: 1fr; }
  .admin-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-console-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-console-card-featured { grid-column: auto; }
  .site-settings-grid { grid-template-columns: 1fr; }
  .admin-prompt-form { grid-template-columns: 1fr; }
  .layout { flex-direction: column; align-items: stretch; }
  .layout-side { width: 100%; position: static; }
  .site-header { z-index: 50; }
  .context-nav-inner { padding: 6px 12px; }
  .context-nav-place { margin-right: 3px; padding-right: 9px; }
  .context-nav-place strong { max-width: 112px; }
  .context-nav-inner a { min-height: 36px; padding: 7px 9px; font-size: 12px; }
  .context-nav-inner .context-nav-manage { margin-left: 0; }
  .site-header .inner { position: relative; min-height: 58px; }
  .nav-toggle { display: flex; width: 38px; height: 38px; flex: none; border-radius: 11px; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
  .nav-toggle.is-open { color: var(--accent); border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); transform: rotate(90deg); }
  .brand-space { flex: 1; min-width: 0; }
  .site-header .logo { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  /* Sur téléphone, le choix d'espace vit dans le panneau principal. La barre
     du haut reste ainsi stable et lisible, même avec plusieurs clubs. */
  .brand-space .space-switcher { display: none; }
  .header-right { margin-left: auto; gap: 4px; }
  .header-right > .btn, .header-right > form:not(.header-logout-form), .header-right > .account-menu, .header-right > .header-admin-link { display: none; }
  .header-right > .header-logout-form { display: block; }
  .header-logout-button { width: 38px; height: 38px; min-height: 38px; justify-content: center; padding: 0; border-radius: 50%; font-size: 21px; box-shadow: 0 3px 9px rgba(209,69,61,.25); }
  .header-logout-label { display: none; }
  .header-right .theme-toggle { display: inline-flex; width: 36px; height: 36px; border-radius: 11px; font-size: 16px; }
  .header-admin-link { width: 42px; height: 42px; min-height: 42px; justify-content: center; padding: 0; border-radius: 12px; border-color: var(--border); background: transparent; color: var(--text-sub); font-size: 0; box-shadow: none; }
  .header-admin-link:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--card)); color: var(--accent); }
  .header-admin-link span { font-size: 18px; }
  .mobile-admin-panel { display: block; margin: 2px 0 8px; padding: 9px 2px 10px; border-bottom: 1px solid var(--border); }
  .mobile-admin-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .mobile-admin-tile { display: grid; place-items: center; gap: 5px; min-height: 62px; padding: 8px 5px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--accent) 7%, var(--bg)); color: var(--text); text-align: center; text-decoration: none; }
  .mobile-admin-tile:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--bg)); color: var(--accent); text-decoration: none; }
  .mobile-admin-tile span { font-size: 18px; line-height: 1; }
  .mobile-admin-tile strong { max-width: 100%; overflow: hidden; color: inherit; font-size: 11px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-admin-tile em { position: absolute; top: 5px; right: 6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--danger); color: #fff; font-size: 10px; font-style: normal; font-weight: 850; line-height: 18px; }
  .mobile-admin-tile { position: relative; }
  .notif-bell { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; font-size: 16px; }
  .mobile-account-menu { display: block; position: relative; }
  .mobile-account-menu summary { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; cursor: pointer; list-style: none; outline-offset: 2px; }
  .mobile-account-menu summary::-webkit-details-marker { display: none; }
  .mobile-account-menu summary .avatar { width: 34px; height: 34px; }
  .mobile-account-menu summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 38%, transparent); }
  .mobile-account-menu-panel { display: none; position: fixed; z-index: 54; top: 68px; right: 12px; width: min(350px, calc(100vw - 24px)); max-height: calc(100dvh - 84px); overflow-y: auto; padding: 8px; border: 1px solid var(--border); border-radius: 16px; background: var(--card); box-shadow: 0 18px 42px rgba(10, 18, 32, .22); }
  .mobile-account-menu[open] .mobile-account-menu-panel { display: grid; }
  .mobile-account-menu-head { display: grid; gap: 1px; padding: 8px 10px 10px; border-bottom: 1px solid var(--border); }
  .mobile-account-menu-head strong { font-size: 14px; }
  .mobile-account-menu-head small { color: var(--text-sub); font-size: 11px; }
  .mobile-account-menu-panel > a { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px; border-radius: 11px; color: var(--text); text-decoration: none; }
  .mobile-account-menu-panel > a:hover { background: color-mix(in srgb, var(--accent) 8%, var(--card)); color: var(--text); }
  .mobile-account-menu-panel > a > span:first-child { font-size: 19px; text-align: center; }
  .mobile-account-menu-panel > a > span:last-child { display: grid; gap: 2px; }
  .mobile-account-menu-panel > a strong { font-size: 13px; }
  .mobile-account-menu-panel > a small { color: var(--text-sub); font-size: 10px; }
  .mobile-account-menu-panel form { margin: 4px 2px 0; padding-top: 7px; border-top: 1px solid var(--border); }
  .mobile-account-menu-panel form button { display: inline-flex; align-items: center; gap: 7px; width: 100%; padding: 10px 8px; border: 0; border-radius: 10px; background: transparent; color: var(--danger); cursor: pointer; font: inherit; font-size: 13px; font-weight: 800; text-align: left; }
  .header-messages-link { width: 36px; height: 36px; border-radius: 11px; }
  .mailbox-icon { width: 23px; height: 23px; }
  .notif-bell, .header-messages-link { display: inline-flex; }
  .site-header nav {
    display: flex; position: absolute; top: calc(100% + 8px); left: 10px; right: 10px;
    max-height: calc(100vh - 78px); max-height: calc(100dvh - 78px); overflow-y: auto; -webkit-overflow-scrolling: touch;
    background: var(--card); border: 1px solid var(--border); border-radius: 18px; flex-direction: column; gap: 2px;
    padding: 10px; box-shadow: 0 18px 42px rgba(10, 18, 32, .22); opacity: 0; visibility: hidden;
    pointer-events: none; transform: translateY(-10px) scale(.985); transform-origin: top center;
    overscroll-behavior: contain; scrollbar-width: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .site-header nav::-webkit-scrollbar { display: none; }
  .site-header nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
  .nav-scrim { display: block; position: fixed; inset: 0; z-index: 49; background: rgba(7, 14, 27, .48); }
  .nav-link, .mobile-nav-action { min-height: 46px; padding: 11px 12px; border: none; border-radius: 11px; width: 100%; background: none !important; color: var(--text); font-size: 15px; text-align: left; }
  .nav-link:hover, .mobile-nav-action:hover { background: color-mix(in srgb, var(--accent) 10%, transparent) !important; color: var(--accent); }
  .nav-link:focus-visible, .mobile-nav-action:focus-visible, .nav-toggle:focus-visible, .theme-toggle:focus-visible, .notif-bell:focus-visible, .header-messages-link:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 38%, transparent); outline-offset: 2px; }
  .nav-dropdown { border: none; width: 100%; }
  .nav-dropdown-toggle { border: none; justify-content: space-between; }
  .nav-dropdown-menu {
    display: none !important; position: static; box-shadow: none; border: none; padding: 2px 0 4px 16px; margin: 0;
  }
  .nav-dropdown[open] .nav-dropdown-menu, .nav-dropdown-menu.is-open { display: flex !important; }
  .nav-dropdown-menu a { min-height: 42px; padding: 9px 12px; border-radius: 10px; font-size: 14px; }
  .nav-caret { display: inline; margin-left: auto; transition: transform .18s ease; }
  .nav-dropdown.is-open .nav-caret { transform: rotate(180deg); }
  .search-form { display: none; }
  .mobile-nav-search { display: block; padding: 2px 2px 7px; margin-bottom: 2px; border-bottom: 1px solid var(--border); }
  .mobile-nav-search input { width: 100%; min-height: 42px; border: 1px solid var(--border); background: var(--bg); color: var(--text); border-radius: 12px; padding: 9px 12px; font: inherit; font-size: 14px; }
  .mobile-nav-search input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
  .mobile-space-picker { display: block; margin: 2px 0 7px; padding: 7px 2px 9px; border-bottom: 1px solid var(--border); }
  .mobile-space-disclosure { width: 100%; }
  .mobile-space-disclosure > summary { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; min-height: 54px; padding: 7px 10px; list-style: none; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 13px; background: color-mix(in srgb, var(--accent) 7%, var(--bg)); color: var(--text); cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .mobile-space-disclosure > summary::-webkit-details-marker { display: none; }
  .mobile-space-disclosure > summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 38%, transparent); outline-offset: 2px; }
  .mobile-current-space-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--card); font-size: 18px; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border) 75%, transparent); }
  .mobile-current-space-copy { min-width: 0; }
  .mobile-current-space-copy small, .mobile-current-space-copy strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-current-space-copy small { margin-bottom: 1px; color: var(--text-sub); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .mobile-current-space-copy strong { font-size: 14px; line-height: 1.25; }
  .mobile-space-change { color: var(--accent); font-size: 11px; font-weight: 800; }
  .mobile-space-chevron { color: var(--text-sub); font-size: 16px; line-height: 1; transition: transform .18s ease; }
  .mobile-space-disclosure[open] .mobile-space-chevron { transform: rotate(180deg); }
  .mobile-space-panel { margin-top: 7px; padding: 8px; border: 1px solid var(--border); border-radius: 13px; background: var(--bg); }
  .mobile-space-panel > p { margin: 1px 4px 6px; color: var(--text-sub); font-size: 10px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
  .mobile-space-list { display: grid; gap: 3px; }
  .mobile-space-option { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 48px; padding: 6px 8px; border: 1px solid transparent; border-radius: 11px; color: var(--text); text-decoration: none; }
  .mobile-space-option:hover, .mobile-space-option.is-active { border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--bg)); color: var(--text); text-decoration: none; }
  .mobile-space-option.is-active { background: color-mix(in srgb, var(--accent) 12%, var(--bg)); }
  .mobile-space-icon { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 10px; background: var(--bg); font-size: 16px; }
  .mobile-space-option strong, .mobile-space-option small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-space-option strong { font-size: 13px; }
  .mobile-space-option small { margin-top: 1px; color: var(--text-sub); font-size: 10px; }
  .mobile-space-option em { color: var(--accent); font-size: 10px; font-style: normal; font-weight: 800; }
  .mobile-space-manage { display: block; margin: 7px 5px 1px; color: var(--accent); font-size: 12px; font-weight: 750; }
  .mobile-nav-primary-label { display: block; margin-top: 2px; }
  .mobile-nav-utilities { display: block; margin-top: 6px; padding: 10px 2px 2px; border-top: 1px solid var(--border); }
  .mobile-nav-label { margin: 0 10px 5px; color: var(--text-sub); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .mobile-nav-action { display: inline-flex; align-items: center; gap: 8px; font-family: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
  .mobile-nav-utilities form { margin: 0; }
  .mobile-theme-toggle { width: 100%; border: 0; background: none; }
  .mobile-nav-action-primary { background: var(--accent) !important; color: #fff !important; justify-content: center; margin-top: 5px; }
  .mobile-nav-action-primary:hover { background: var(--accent-dark) !important; }
  .mobile-nav-action-danger { color: var(--danger); }
  .notif-dropdown { position: fixed; top: 68px; right: 12px; width: min(360px, calc(100vw - 24px)); max-height: calc(100vh - 84px); max-height: calc(100dvh - 84px); border-radius: 14px; z-index: 52; }
  .forum-category-grid { grid-template-columns: 1fr; }
}

/* Module discuter-organisation-personnelle. Ordre défini dans manifest.json. */
@media (max-width: 640px) {
  .community-hero { margin-top: 16px; padding: 20px; border-radius: 14px; }
  .community-hero::after { right: -42px; bottom: -72px; font-size: 190px; }
  .community-hero .page-title { font-size: 28px; }
  .home-actions { align-items: stretch; }
  .home-actions .btn { justify-content: center; }
  .home-admin-link { width: 100%; margin: 4px 0 0; }
  .community-hero-note { padding: 14px; }
  .visitor-start-grid { grid-template-columns: 1fr; }
  .journey-feedback { align-items:flex-start; flex-direction:column; }
  .member-journey, .community-pulse-main, .community-spotlight, .admin-action-center { padding: 16px; }
  .member-journey-head, .home-section-head { flex-direction: column; }
  .forum-directory-head { align-items: flex-start; }
  .forum-directory-head .btn { width: 100%; justify-content: center; }
  .forum-section-card { padding: 15px; border-radius: 13px; }
  .forum-section-card > header { align-items: flex-start; }
  .forum-category-grid { grid-template-columns: 1fr; }
  .forum-category-card { min-height: 0; }
  .journey-path-chip { align-self: flex-start; }
  .journey-steps { grid-template-columns: 1fr; }
  .journey-step p { min-height: 0; }
  .activity-empty { align-items: flex-start; flex-wrap: wrap; }
  .activity-empty .btn { width: 100%; margin: 0; justify-content: center; }
  .activity-row time { display: none; }
  .admin-action-grid { grid-template-columns: 1fr; }
  .photo-prompt-hero { padding: 21px; margin-top: 16px; border-radius: 14px; }
  .photo-prompt-hero::after { right: -12px; font-size: 120px; }
  .photo-prompt-hero .page-title { font-size: 29px; }
  .prompt-entry-list, .prompt-archive-list { grid-template-columns: 1fr; }
  .prompt-empty { align-items: flex-start; }
  .prompt-admin-card > p { min-height: 0; }
  .post-card { flex-direction: column; }
  .post-author { width: 100%; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; text-align: left; }
  .journal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .journal-filters { grid-template-columns: 1fr; gap: 10px; }
  .journal-filter-actions { justify-content: flex-start; }
  .journal-storage-head { display: grid; gap: 7px; }
  .journal-storage-head > span { max-width: none; text-align: left; }
  .journal-storage-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journal-purge-form { grid-template-columns: 1fr; }
  .journal-summary > div { min-height: 70px; padding: 12px; }
  .journal-card-head { align-items: flex-start; padding: 15px; }
  .journal-card-head > span { white-space: normal; text-align: right; }
  .journal-entry { grid-template-columns: 31px minmax(0, 1fr); gap: 9px; min-height: 58px; padding: 10px 14px; }
  .journal-entry time { grid-column: 2; margin-top: -5px; text-align: left; font-size: 10px; }
  .post-space-summary { margin: 0; }
  .post-space-popover { left: 0; max-width: min(290px, calc(100vw - 72px)); transform: none; }
  .post-author .post-rank { flex-basis: 100%; max-width: 100%; margin-top: -4px; overflow-wrap: anywhere; }
  .cat-last, .cat-stats { display: none; }
  .notif-dropdown { position: fixed; top: 68px; right: 12px; width: calc(100vw - 24px); }
  .site-header .inner { gap: 7px; padding: 9px 10px; }
  .site-header .logo { max-width: 132px; font-size: 15px; }
  .site-header .logo img { height: 24px !important; }
  .space-switcher summary { max-width: 106px; }
  .space-switcher-label { font-size: 11px; }
  .header-right { gap: 4px; }
  .members-grid { grid-template-columns: 1fr; }
  .crop-actions { flex-direction: column; width: 100%; }
  .crop-actions .btn { width: 100%; justify-content: center; }
  .crop-box, .crop-preview-img { max-width: 88vw; max-height: 50vh; }
  .cat-row, .thread-row { flex-wrap: wrap; }
}

/* Module rang-signature-solution-sondage. Ordre défini dans manifest.json. */
/* ── Rang, signature, solution, sondage ── */
.post-rank { font-size: 11px; color: var(--text-sub); margin-top: 4px; }
.post-signature { margin-top: 14px; padding-top: 10px; border-top: 1px dashed var(--border); font-size: 12px; color: var(--text-sub); }
.solved-banner { background: rgba(26,143,90,.12); color: var(--ok); font-weight: 700; padding: 8px 12px; border-radius: 8px; margin-bottom: 10px; font-size: 13px; }
.solved-tag { color: var(--ok); font-weight: 700; }
.poll-card { margin-bottom: 16px; }
.poll-result { margin-bottom: 12px; }
.poll-result-label { font-size: 13px; margin-bottom: 4px; }
.poll-bar-bg { background: var(--bg); border: 1px solid var(--border); border-radius: 6px; height: 18px; overflow: hidden; }
.poll-bar { background: var(--accent); height: 100%; transition: width .3s ease; }
.poll-result-count { font-size: 12px; color: var(--text-sub); margin-top: 3px; }

/* Module studio-critique. Ordre défini dans manifest.json. */
/* ── Studio critique ── */
.critique-create { margin-top: 18px; border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; background: linear-gradient(135deg, rgba(59,111,214,.08), transparent); }
.critique-create summary { cursor: pointer; font-weight: 800; }
.critique-create summary span { margin-right: 5px; }
.critique-create > .page-sub { margin: 7px 0 13px; }
.critique-create-fields { margin-top: 12px; }
.critique-toggle { position: relative; display: flex; align-items: center; gap: 12px; margin: 9px 0 13px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); color: var(--text); cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.critique-toggle:hover, .critique-toggle.is-selected { border-color: color-mix(in srgb, var(--accent) 60%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.critique-toggle.is-selected { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 10%, transparent); }
.critique-toggle input, .critique-axis input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.critique-toggle input:focus-visible + .critique-choice-copy, .critique-axis input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 3px; }
.critique-choice-copy { display: grid; flex: 1; gap: 2px; }
.critique-choice-copy strong { font-size: 13px; }
.critique-choice-copy em, .critique-inline-hint { color: var(--text-sub); font-size: 12px; font-style: italic; font-weight: 400; }
.critique-choice-mark { display: grid; flex: none; place-items: center; width: 26px; height: 26px; border: 1px solid var(--border); border-radius: 50%; color: var(--text-sub); font-size: 16px; font-weight: 800; }
.critique-toggle.is-selected .critique-choice-mark { border-color: var(--accent); background: var(--accent); color: #fff; }
.critique-path-hint { margin: -5px 0 13px; }
.critique-path-hint em, .critique-criteria-hint em { font-style: italic; }
.critique-criteria-fieldset { min-width: 0; margin: 13px 0 14px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: color-mix(in srgb, var(--bg) 45%, var(--card)); }
.critique-criteria-fieldset legend { padding: 0 6px; font-weight: 750; }
.critique-criteria-hint { margin: 0 0 10px; }
.critique-checkboxes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.critique-axis { position: relative; display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text-sub); cursor: pointer; font-size: 12px; font-weight: 650; transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease; }
.critique-axis:hover { transform: translateY(-1px); border-color: var(--accent); color: var(--text); }
.critique-axis.is-selected { border-color: color-mix(in srgb, var(--accent) 65%, var(--border)); background: color-mix(in srgb, var(--accent) 13%, var(--card)); color: var(--text); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent); }
.critique-axis-mark { display: grid; place-items: center; width: 17px; height: 17px; border: 1px solid var(--border); border-radius: 50%; color: var(--text-sub); font-size: 12px; line-height: 1; }
.critique-axis.is-selected .critique-axis-mark { border-color: var(--accent); background: var(--accent); color: #fff; }
.critique-axis em { position: absolute; z-index: 5; left: 50%; bottom: calc(100% + 8px); width: max-content; max-width: min(260px, 80vw); padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text); box-shadow: var(--shadow-lift); font-size: 11px; font-style: italic; font-weight: 500; line-height: 1.4; opacity: 0; pointer-events: none; transform: translate(-50%, 3px); transition: opacity .12s ease, transform .12s ease; }
.critique-axis:hover em, .critique-axis:focus-within em { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 640px) {
  .critique-create { padding: 12px; }
  .critique-toggle { padding: 11px; }
  .critique-criteria-fieldset { padding: 10px; }
  .critique-checkboxes { gap: 6px; }
  .critique-axis { min-height: 36px; padding: 6px 9px; font-size: 11px; }
  .critique-axis em { display: none; }
}
.critique-brief { border-color: rgba(59,111,214,.38); background: linear-gradient(135deg, rgba(59,111,214,.1), var(--card)); margin-bottom: 16px; }
.critique-brief-heading { display: flex; align-items: flex-start; gap: 10px; font-size: 26px; }
.critique-brief-heading strong { display: block; font-size: 17px; }
.critique-brief-heading p { font-size: 13px; color: var(--text-sub); margin: 2px 0 0; }
.critique-intent { margin: 15px 0 12px; font-size: 14px; }
.critique-criteria-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.critique-criterion { border: 1px solid var(--border); border-radius: 8px; background: var(--card); padding: 10px; display: grid; gap: 3px; }
.critique-criterion strong { font-size: 13px; }
.critique-criterion span, .critique-criterion small { color: var(--text-sub); font-size: 11px; }
.critique-criterion b { color: var(--accent); font-size: 15px; }
.critique-featured-badge { display: inline-block; margin-top: 12px; border-radius: 999px; background: #f4c95d22; color: #9a6b00; border: 1px solid #f4c95d88; padding: 4px 9px; font-size: 12px; font-weight: 800; }
.critique-scores { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 12px; font-size: 12px; color: var(--text-sub); }
.critique-scores b { color: var(--text); border: 1px solid var(--border); border-radius: 999px; padding: 3px 7px; background: var(--bg); }
.critique-reply { margin-top: 13px; padding: 12px; border-radius: 8px; background: var(--bg); border: 1px solid var(--border); }
.critique-reply > strong { font-size: 13px; }
.critique-reply p { color: var(--text-sub); font-size: 12px; margin: 4px 0 9px; }
.critique-score-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.critique-score-fields label { font-size: 12px; margin: 0; }
.critique-score-fields select { margin-top: 3px; font-size: 12px; padding: 6px 8px; }
.critique-progress { margin-bottom: 16px; }
.critique-progress h2 { margin: 0; font-size: 18px; }
.critique-request-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.critique-request-card { display: flex; min-height: 210px; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; background: var(--card); color: var(--text); box-shadow: var(--shadow); transition: transform .15s ease, box-shadow .15s ease; }
.critique-request-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); text-decoration: none; }
.critique-request-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; color: var(--accent); font-size: 12px; font-weight: 800; }
.critique-request-top small { color: var(--text-sub); font-weight: 600; }
.critique-request-card h2 { font-size: 16px; margin: 12px 0 6px; }
.critique-request-card p { color: var(--text-sub); font-size: 13px; margin: 0 0 12px; line-height: 1.45; }
.critique-request-axes { display: flex; flex-wrap: wrap; gap: 5px; }
.critique-request-axes span { background: var(--bg); border: 1px solid var(--border); border-radius: 999px; padding: 3px 7px; font-size: 11px; }
.critique-request-card footer { margin-top: auto; padding-top: 13px; color: var(--text-sub); font-size: 12px; }
.critique-path-attach { display: block; padding: 9px 11px; border-radius: 8px; background: rgba(59,111,214,.09); border: 1px solid rgba(59,111,214,.25); font-size: 13px; font-weight: 700; }
.critique-path-hint { margin: 7px 0 14px; }
.critique-path-badge, .critique-request-path { color: var(--accent); font-size: 12px; font-weight: 800; margin-top: 9px; }
.critique-next-steps { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
.critique-next-steps strong { font-size: 13px; }
.critique-next-steps ul { margin: 7px 0 0; padding-left: 18px; display: grid; gap: 5px; }
.critique-next-steps li { font-size: 13px; }
.critique-next-steps small { color: var(--text-sub); }
.critique-feedback-note { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 9px; margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: var(--bg); border-left: 3px solid var(--accent); }
.critique-feedback-note strong { display: block; color: var(--accent); font-size: 12px; }
.critique-feedback-note p { margin: 3px 0 0; font-size: 13px; line-height: 1.4; }
.critique-feedback-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 9px; margin-top: 10px; }
.critique-feedback-fields label { font-size: 12px; margin: 0; }
.critique-feedback-fields textarea { margin-top: 3px; min-height: 64px; font-size: 12px; }
.critique-review-protocol { display: grid; gap: 3px; margin-top: 13px; padding: 9px 11px; border-radius: 8px; background: var(--bg); border: 1px dashed var(--border); }
.critique-review-protocol strong { color: var(--accent); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.critique-review-protocol span { color: var(--text-sub); font-size: 12px; line-height: 1.4; }
.critique-reflection { border-color: rgba(26,143,90,.38); background: linear-gradient(135deg, rgba(26,143,90,.08), var(--card)); margin-bottom: 16px; }
.critique-reflection-heading { display: flex; gap: 9px; align-items: flex-start; font-size: 22px; }
.critique-reflection-heading strong { display: block; font-size: 16px; }
.critique-reflection-heading p { margin: 2px 0 0; color: var(--text-sub); font-size: 12px; }
.critique-reflection-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-top: 13px; }
.critique-reflection-content > div { padding: 10px 12px; border-radius: 8px; background: var(--card); border: 1px solid var(--border); }
.critique-reflection-content strong { color: var(--ok); font-size: 12px; }
.critique-reflection-content p { margin: 3px 0 0; font-size: 13px; line-height: 1.45; }

/* Module studio-critique. Ordre défini dans manifest.json. */
.critique-reflection-form { margin-top: 13px; }
.critique-reflection-form summary { cursor: pointer; font-size: 13px; font-weight: 700; }
.critique-reflection-form form { display: grid; gap: 8px; margin-top: 10px; }
.critique-reflection-form label { font-size: 12px; }
.critique-reflection-form textarea { margin-top: 3px; min-height: 64px; }
.critique-feedback-endorse { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px dashed var(--border); color: var(--text-sub); font-size: 12px; }

/* Module parcours-de-formation-studio. Ordre défini dans manifest.json. */
/* ── Parcours de formation Studio ── */
.learning-path-summary, .learning-path-hero { display: flex; justify-content: space-between; gap: 22px; align-items: center; border-color: rgba(59,111,214,.35); background: linear-gradient(135deg, rgba(59,111,214,.1), var(--card)); margin-bottom: 16px; }
.learning-kicker { color: var(--accent); text-transform: uppercase; letter-spacing: .06em; font-size: 11px; font-weight: 800; }
.learning-path-summary h2, .learning-path-hero h2 { margin: 5px 0 7px; font-size: 20px; }
.learning-path-summary p, .learning-path-hero p { margin: 5px 0; font-size: 14px; }
.learning-path-metrics { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-size: 12px; color: var(--text-sub); white-space: nowrap; }
.learning-path-metrics b { color: var(--text); font-size: 16px; }
.learning-mission { margin: 15px 0; padding: 12px 14px; border-radius: 8px; background: var(--bg); border: 1px solid var(--border); }
.learning-mission strong { font-size: 12px; color: var(--accent); text-transform: uppercase; letter-spacing: .04em; }
.learning-mission p { margin: 4px 0 0; }
.learning-section-title { margin: 0 0 10px; font-size: 18px; }
.learning-milestones { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.learning-milestone { display: flex; align-items: center; gap: 8px; padding: 9px; border: 1px solid var(--border); border-radius: 8px; color: var(--text-sub); }
.learning-milestone span { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 1px solid var(--border); border-radius: 50%; font-size: 11px; font-weight: 800; flex: 0 0 auto; }
.learning-milestone p { margin: 0; font-size: 12px; line-height: 1.3; }
.learning-milestone.is-done { border-color: rgba(26,143,90,.4); color: var(--text); background: rgba(26,143,90,.07); }
.learning-milestone.is-done span { background: var(--ok); border-color: var(--ok); color: #fff; }
.learning-stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.learning-stats-grid .card { display: grid; gap: 4px; padding: 14px; text-align: center; }
.learning-stats-grid b { font-size: 24px; color: var(--accent); }
.learning-stats-grid span { color: var(--text-sub); font-size: 11px; }
.learning-community-note p { font-size: 14px; line-height: 1.55; }
.learning-complete-form { text-align: right; margin: 4px 0 20px; }
.learning-path-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin: 4px 0 20px; }
.learning-start { max-width: 720px; }
.learning-start h2 { margin: 6px 0; font-size: 20px; }
.learning-library { margin-top: 18px; }
.learning-library-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.learning-library-grid article { border: 1px solid var(--border); border-radius: 8px; padding: 13px; background: var(--bg); }
.learning-library-grid article > span { color: var(--accent); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.learning-library-grid h3 { margin: 5px 0; font-size: 15px; }
.learning-library-grid p { margin: 0 0 9px; color: var(--text-sub); font-size: 13px; line-height: 1.45; }
.learning-library-grid small { font-size: 12px; line-height: 1.35; }
.learning-history ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.learning-history li { border-top: 1px solid var(--border); padding-top: 8px; font-size: 13px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.learning-history li span { color: var(--text-sub); margin-left: 5px; }
@media (max-width: 760px) {
  .learning-path-summary, .learning-path-hero { flex-direction: column; align-items: flex-start; }
  .learning-path-metrics { align-items: flex-start; }
  .learning-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Module modale-de-recadrage-d-image. Ordre défini dans manifest.json. */
/* ── Modale de recadrage d'image ── */
.crop-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.75); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.crop-modal { background: var(--card); border-radius: var(--radius); padding: 20px; max-width: 90vw; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.crop-title { font-size: 13px; color: var(--text-sub); text-align: center; max-width: 520px; }
.crop-box { position: relative; max-width: 80vw; max-height: 65vh; line-height: 0; overflow: hidden; }
.crop-preview-img { max-width: 80vw; max-height: 65vh; display: block; user-select: none; -webkit-user-drag: none; }
.crop-rect { position: absolute; border: 2px solid var(--accent); box-shadow: 0 0 0 2000px rgba(0,0,0,.55); cursor: move; }
.crop-handle { position: absolute; width: 14px; height: 14px; background: var(--accent); border-radius: 50%; border: 2px solid #fff; }
.crop-handle-nw { top: -8px; left: -8px; cursor: nwse-resize; }
.crop-handle-ne { top: -8px; right: -8px; cursor: nesw-resize; }
.crop-handle-sw { bottom: -8px; left: -8px; cursor: nesw-resize; }
.crop-handle-se { bottom: -8px; right: -8px; cursor: nwse-resize; }
.crop-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }

/* Module annuaire-des-membres. Ordre défini dans manifest.json. */
/* ── Annuaire des membres ── */
.members-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.members-sort { display: flex; gap: 6px; flex-wrap: wrap; }
.members-sort a { padding: 6px 12px; border-radius: 20px; font-size: 13px; border: 1px solid var(--border); color: var(--text-sub); }
.members-sort a.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.members-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.member-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; text-align: center; box-shadow: var(--shadow); transition: box-shadow .15s ease, transform .1s ease; }
.member-card:hover { box-shadow: var(--shadow-lift); transform: translateY(-2px); text-decoration: none; }
.member-card .avatar-lg { width: 64px; height: 64px; margin: 0 auto 10px; font-size: 22px; }
.member-card .member-name { font-weight: 700; color: var(--text); }
.member-card .member-rank { font-size: 12px; color: var(--text-sub); margin-top: 2px; }
.member-card .member-stats { font-size: 12px; color: var(--text-sub); margin-top: 8px; }

/* Module galerie-photo. Ordre défini dans manifest.json. */
/* ── Galerie photo ── */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 4px; }
.gallery-tile { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 8px; display: block; background: var(--bg); }
.gallery-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease; }
.gallery-tile:hover img { transform: scale(1.05); }
.gallery-tile-overlay {
  position: absolute; inset: auto 0 0 0; padding: 8px 10px 6px; color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,.75), transparent); opacity: 0; transition: opacity .15s ease;
}
.gallery-tile:hover .gallery-tile-overlay { opacity: 1; }
.gallery-tile-title { font-size: 12px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-tile-author { font-size: 11px; opacity: .85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 4px; margin-top: 10px; }
.profile-gallery-grid a { aspect-ratio: 1 / 1; overflow: hidden; border-radius: 6px; display: block; }
.profile-gallery-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Module espaces-clubs. Ordre défini dans manifest.json. */
/* ── Espaces clubs ── */
.club-list-hero, .club-hero, .club-manage-hero, .club-members-head, .club-admin-intro {
  display: flex; align-items: center; justify-content: space-between; gap: 22px;
  padding: 28px; margin: 24px 0 20px; border: 1px solid color-mix(in srgb, var(--club-color, var(--accent)) 30%, var(--border));
  border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--club-color, var(--accent)) 12%, var(--card)), var(--card) 68%); box-shadow: var(--shadow);
}
.club-list-hero .page-title, .club-hero .page-title, .club-manage-hero .page-title, .club-members-head .page-title, .club-admin-intro .page-title { margin: 5px 0 8px; }
.club-list-hero p, .club-hero p, .club-manage-hero p, .club-members-head p, .club-admin-intro p { max-width: 760px; margin: 0; color: var(--text-sub); line-height: 1.55; }
.club-mark { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-right: 10px; border-radius: 14px; background: color-mix(in srgb, var(--club-color, var(--accent)) 16%, var(--card)); font-size: 24px; vertical-align: middle; }
.club-private, .club-role-chip { display: inline-flex; align-items: center; width: max-content; padding: 4px 8px; border: 1px solid var(--border); border-radius: 20px; background: var(--bg); color: var(--text-sub); font-size: 11px; font-weight: 800; }
.club-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.club-card { display: block; min-height: 220px; padding: 18px; border: 1px solid var(--border); border-top: 3px solid var(--club-color, var(--accent)); border-radius: 15px; background: var(--card); color: var(--text); box-shadow: var(--shadow); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.club-card:hover { color: var(--text); border-color: var(--club-color, var(--accent)); box-shadow: var(--shadow-lift); text-decoration: none; transform: translateY(-2px); }
.club-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.club-card .club-mark { margin: 0; }
.club-card h2 { margin: 16px 0 7px; font-size: 19px; }
.club-card > p { min-height: 58px; margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.48; }
.club-card footer { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border); color: var(--text-sub); font-size: 11px; }
.club-role-chip { color: var(--club-color, var(--accent)); border-color: color-mix(in srgb, var(--club-color, var(--accent)) 34%, var(--border)); }
.club-empty { display: flex; align-items: center; gap: 16px; padding: 22px; }
.club-empty > span { flex: none; font-size: 31px; }
.club-empty h2 { margin: 0 0 4px; font-size: 18px; }
.club-empty p { margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.club-empty .btn { margin-left: auto; flex: none; }
.club-hero { align-items: stretch; --club-color: var(--accent); }
.club-hero-copy { min-width: 0; flex: 1; }
.club-hero .page-title { font-size: clamp(29px, 3vw, 42px); }
.club-hero-stats { display: grid; grid-template-columns: repeat(3, minmax(78px, 1fr)); align-content: end; gap: 8px; min-width: 270px; }
.club-hero-stats span { padding: 12px 10px; border: 1px solid color-mix(in srgb, var(--club-color, var(--accent)) 20%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--card) 78%, transparent); color: var(--text-sub); font-size: 11px; text-align: center; }
.club-hero-stats b { display: block; margin-bottom: 2px; color: var(--text); font-size: 21px; }
.space-actions { margin: 24px 0 20px; }
.club-essential-tools { margin: 24px 0 18px; padding: 18px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--card)), var(--card) 70%); box-shadow: var(--shadow); }
.club-essential-tools .home-section-head { align-items: center; margin-bottom: 12px; }
.club-essential-hint { color: var(--text-sub); font-size: 11px; }
.club-essential-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.club-essential-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 94px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--card) 88%, transparent); color: var(--text); transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.club-essential-card:hover { color: var(--text); border-color: var(--accent); box-shadow: var(--shadow-lift); text-decoration: none; transform: translateY(-2px); }
.club-essential-icon { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 13px; background: color-mix(in srgb, var(--accent) 14%, var(--bg)); font-size: 23px; }
.club-essential-meetings .club-essential-icon { background: color-mix(in srgb, #b98bff 14%, var(--bg)); }
.club-essential-copy { display: grid; min-width: 0; gap: 4px; }
.club-essential-copy strong { font-size: 15px; }
.club-essential-copy small, .club-essential-copy em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-sub); font-size: 11px; font-style: normal; line-height: 1.35; }
.club-essential-copy em { color: var(--accent); font-weight: 750; }
.club-essential-arrow { color: var(--accent); font-size: 20px; font-weight: 800; }
.space-actions .home-section-head { margin-bottom: 11px; }
.club-tools-heading { position: relative; align-items: flex-end; }
.club-tools-heading > div > p { margin: 5px 0 0; color: var(--text-sub); font-size: 12px; }
.club-tools-editor { position: relative; flex: none; }
.club-tools-editor > summary { list-style: none; cursor: pointer; }
.club-tools-editor > summary::-webkit-details-marker { display: none; }
.club-tools-editor[open] > summary { border-color: var(--accent); color: var(--accent); }
.club-tools-editor-panel { position: absolute; top: calc(100% + 8px); right: 0; z-index: 25; width: min(430px, calc(100vw - 34px)); padding: 14px; border: 1px solid var(--border); border-radius: 15px; background: var(--card); box-shadow: 0 18px 44px rgba(8, 16, 30, .2); }
.club-tools-editor-panel form { margin: 0; }
.club-tools-editor-head strong, .club-tools-editor-head small { display: block; }
.club-tools-editor-head strong { font-size: 14px; }
.club-tools-editor-head small { margin-top: 3px; color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.club-tools-choice-list { display: grid; gap: 4px; max-height: min(430px, 52vh); margin-top: 11px; overflow-y: auto; }
.club-tools-choice-list label { display: block; cursor: pointer; }
.club-tools-choice-list input { position: absolute; opacity: 0; pointer-events: none; }
.club-tools-choice-list label > span { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; min-height: 50px; padding: 7px 10px; border: 1px solid var(--border); border-radius: 11px; background: var(--bg); }
.club-tools-choice-list label > span > b { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: var(--card); font-size: 16px; }
.club-tools-choice-list label > span > span { min-width: 0; }
.club-tools-choice-list label strong, .club-tools-choice-list label small { display: block; }
.club-tools-choice-list label strong { font-size: 12px; }
.club-tools-choice-list label small { margin-top: 2px; color: var(--text-sub); font-size: 10px; }
.club-tools-choice-list input:checked + span { border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); background: color-mix(in srgb, var(--accent) 7%, var(--card)); }
.club-tools-choice-list input:checked + span::after { content: '✓'; grid-column: 3; color: var(--accent); font-size: 14px; font-weight: 900; }
.club-tools-choice-list input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--accent) 32%, transparent); outline-offset: 2px; }
.club-tools-editor-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--border); }
.club-primary-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 11px; }
.club-tools-empty { display: flex; align-items: center; gap: 11px; padding: 15px; border: 1px dashed var(--border); border-radius: 13px; background: var(--card); color: var(--text-sub); }
.club-tools-empty > span { font-size: 25px; }
.club-tools-empty p { margin: 0; font-size: 12px; line-height: 1.5; }
.club-tools-empty strong { color: var(--text); }
.club-secondary-tools { margin-top: 11px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); box-shadow: var(--shadow); }
.club-secondary-tools summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 9px; min-height: 54px; padding: 11px 15px; color: var(--text); cursor: pointer; list-style: none; }
.club-secondary-tools summary::-webkit-details-marker { display: none; }
.club-secondary-tools summary:hover { color: var(--accent); }
.club-secondary-tools summary > span { font-size: 13px; font-weight: 800; }
.club-secondary-tools summary small { color: var(--text-sub); font-size: 11px; }
.club-secondary-tools summary b { color: var(--accent); font-size: 13px; transition: transform .16s ease; }
.club-secondary-tools[open] summary { border-bottom: 1px solid var(--border); }
.club-secondary-tools[open] summary b { transform: rotate(180deg); }
.club-secondary-tools .club-tool-grid { margin: 0; padding: 11px; }
.club-tool-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 18px 0; }
.club-tool-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 15px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); color: var(--text); box-shadow: var(--shadow); }
.club-tool-card:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }
.club-tool-card-primary { border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 7%, var(--card)), var(--card)); }
.club-tool-card > span { font-size: 21px; }
.club-tool-card strong, .club-tool-card p { display: block; }
.club-tool-card strong { font-size: 13px; }

/* Module espaces-clubs. Ordre défini dans manifest.json. */
.club-tool-card p { margin: 3px 0 0; color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.club-tool-card em { color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; }
.club-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(245px, .72fr); gap: 18px; margin: 20px 0; }
.club-dashboard-main, .club-members-preview { padding: 19px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); box-shadow: var(--shadow); }
.club-members-preview .home-section-head > a { font-size: 11px; font-weight: 700; }
.club-member-list { display: grid; gap: 4px; margin-top: 13px; }
.club-member-row, .club-manage-member { display: flex; align-items: center; gap: 9px; padding: 8px 0; border-top: 1px solid var(--border); color: var(--text); }
.club-member-row:hover { color: var(--accent); text-decoration: none; }
.club-member-row span, .club-member-identity > div { min-width: 0; }
.club-member-row strong, .club-member-row small, .club-member-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.club-member-row strong { font-size: 12px; }
.club-member-row small, .club-member-identity small { margin-top: 1px; color: var(--text-sub); font-size: 10px; }
.club-categories { margin: 28px 0; }
.club-forum-section { --club-section-accent: var(--accent); margin-top:24px; }
.club-forum-section.section-tone-1 { --club-section-accent: #5b63d8; }
.club-forum-section.section-tone-2 { --club-section-accent: #188f9a; }
.club-forum-section.section-tone-3 { --club-section-accent: #d17b22; }
.club-forum-section.section-tone-4 { --club-section-accent: #8b55b8; }
.club-forum-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 9px; padding:0; border:0; background:transparent; }
.club-forum-section-head > div:first-child { display:flex; align-items:center; gap:10px; }
.club-forum-section-head i { display:block; width:8px; height:8px; border-radius:50%; background:var(--club-section-accent); box-shadow:0 0 0 5px color-mix(in srgb,var(--club-section-accent) 12%,transparent); }
.club-forum-section-head h3 { margin:0; font-size:16px; letter-spacing:-.015em; }
.club-forum-section-head span { display:block; margin-top:1px; color:var(--text-sub); font-size:11px; }
.club-forum-section-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:9px; }
.club-category-card { display:flex; align-items:center; gap:12px; min-width:0; min-height:88px; padding:13px; border:1px solid var(--border); border-radius:14px; background:var(--card); box-shadow:0 5px 16px rgba(22,39,72,.035); color:var(--text); text-decoration:none; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.club-category-card:hover { transform:translateY(-1px); border-color:color-mix(in srgb,var(--club-section-accent) 46%,var(--border)); box-shadow:0 10px 22px color-mix(in srgb,var(--club-section-accent) 11%,transparent); text-decoration:none; }
.club-category-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:13px; background:color-mix(in srgb,var(--club-section-accent) 11%,#edf3ff); font-size:22px; }
.club-category-copy { min-width:0; flex:1; }
.club-category-copy strong,.club-category-copy small,.club-category-copy em,.club-category-copy .club-category-count { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.club-category-copy strong { color:var(--club-section-accent); font-size:14px; }
.club-category-copy small { margin-top:3px; color:var(--text-sub); font-size:11px; }
.club-category-copy em { margin-top:6px; color:var(--text-sub); font-size:10px; font-style:normal; }
.club-category-copy .club-category-count { margin-top:2px; color:var(--text-sub); font-size:10px; font-weight:700; font-variant-numeric:tabular-nums; }
.club-category-arrow { color:var(--club-section-accent); font-size:21px; font-weight:500; }
.club-members-head { align-items: center; }
.club-members-head > .club-mark, .club-manage-hero > .club-mark { flex: none; width: 58px; height: 58px; font-size: 29px; }
.club-members-head > div, .club-manage-hero > div { flex: 1; min-width: 0; }
.club-member-card .club-role-chip { margin: 7px auto 0; }
.club-manage-hero { --club-color: var(--accent); justify-content: flex-start; }
.club-manage-grid, .club-admin-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr); gap: 18px; }
.club-manage-grid .card, .club-admin-layout .card { margin: 0; }
.club-manage-grid h2, .club-admin-layout h2, .club-management-section h2 { margin: 5px 0 6px; font-size: 19px; }
.club-management-section { margin-top: 20px; }
.club-danger-zone { border-color: color-mix(in srgb, var(--danger) 36%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, var(--danger) 6%, var(--card)), var(--card)); }
.club-danger-zone > p { max-width: 720px; margin: 8px 0 13px; color: var(--text-sub); font-size: 13px; line-height: 1.55; }
.club-danger-zone form { display: grid; max-width: 500px; gap: 8px; }
.club-danger-zone form label { margin: 0; }
.club-danger-zone form > div { margin-top: 4px; }
.club-leave-form { display: inline-flex; margin: 0; }
.club-leave-form .home-admin-link { margin-left: 0; padding: 0; border: 0; background: none; color: var(--danger); cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; }
.club-leave-form .home-admin-link:hover { text-decoration: underline; }
.club-manage-members { margin-top: 13px; }
.club-manage-member { justify-content: space-between; gap: 16px; }
.club-member-identity { display: flex; align-items: center; gap: 9px; min-width: 0; }
.club-member-identity a { font-size: 13px; }
.club-member-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.club-member-controls form { display: flex; align-items: center; gap: 6px; margin: 0; }
.club-member-controls select { width: auto; padding: 5px 25px 5px 8px; font-size: 12px; }
.club-category-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.club-category-pills a { display: grid; grid-template-columns: auto 1fr; column-gap: 7px; align-items: center; min-width: 180px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); color: var(--text); }
.club-category-pills a:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.club-category-pills a > span { grid-row: 1 / span 2; font-size: 18px; }
.club-category-pills strong { font-size: 12px; }
.club-category-pills small { color: var(--text-sub); font-size: 10px; }
.club-admin-intro > span { flex: none; font-size: 52px; }
.club-admin-principles { align-self: start; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--card)), var(--card)); }
.club-admin-principles > span { display: block; font-size: 28px; }
.club-admin-principles h2 { margin-top: 8px; }
.club-admin-principles p { color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.club-admin-list { margin: 30px 0; }
.club-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; margin-top: 15px; }
.club-admin-card { padding: 17px; border: 1px solid var(--border); border-top: 3px solid var(--club-color, var(--accent)); border-radius: 14px; background: var(--card); box-shadow: var(--shadow); }
.club-admin-card > div:first-child { display: flex; justify-content: space-between; align-items: center; }
.club-admin-card .club-mark { margin: 0; }
.club-admin-card h3 { margin: 14px 0 6px; font-size: 16px; }
.club-admin-card > p { min-height: 40px; margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.club-admin-card footer { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--border); color: var(--text-sub); font-size: 11px; }
.club-admin-card footer b { color: var(--text); }
.club-admin-card > small { display: block; margin-top: 10px; color: var(--text-sub); font-size: 11px; }
.club-admin-card > div:last-child { display: flex; gap: 6px; margin-top: 12px; }
.interclub-club-picker { display: grid; gap: 7px; margin-top: 8px; }
.interclub-club-picker label { display: flex; align-items: center; gap: 9px; margin: 0; padding: 10px 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); cursor: pointer; }
.interclub-club-picker label:has(input:checked) { border-color: #7156c8; background: color-mix(in srgb, #7156c8 10%, var(--card)); }
.interclub-club-picker input { width: 17px; height: 17px; accent-color: #7156c8; }
.interclub-club-picker strong { font-size: 13px; }

/* Profil : l'entrée dans un club est volontairement réunie au même endroit,
   avec deux choix faciles à comprendre (rejoindre ou créer). */
.profile-club-section { margin-top: 22px; }
.profile-club-list { display: grid; gap: 8px; margin: 14px 0; }
.profile-club-entry { display: flex; align-items: center; gap: 8px; }

/* Module espaces-clubs. Ordre défini dans manifest.json. */
.profile-club-entry .profile-club-row { flex: 1; min-width: 0; }
.profile-club-entry form { margin: 0; flex: none; }
.profile-club-leave, .profile-club-owner-note { padding: 6px 9px; border-radius: 8px; font: inherit; font-size: 11px; font-weight: 750; }
.profile-club-leave { border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--border)); background: var(--card); color: var(--danger); cursor: pointer; }
.profile-club-leave:hover { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 7%, var(--card)); }
.profile-club-owner-note { color: var(--text-sub); background: var(--bg); white-space: nowrap; }
.profile-club-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px; border: 1px solid var(--border); border-left: 3px solid var(--club-color); border-radius: 11px; color: var(--text); background: var(--bg); }
.profile-club-row:hover { border-color: var(--club-color); text-decoration: none; }
.profile-club-row > span:nth-child(2) { min-width: 0; }
.profile-club-row strong, .profile-club-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-club-row small { margin-top: 2px; color: var(--text-sub); font-size: 12px; }
.profile-club-row em { color: var(--accent); font-size: 12px; font-style: normal; font-weight: 800; }
.profile-club-empty { display: flex; align-items: center; gap: 12px; margin: 14px 0; padding: 13px; border-radius: 11px; background: var(--bg); }
.profile-club-empty > span { font-size: 25px; }
.profile-club-empty p { margin: 3px 0 0; color: var(--text-sub); font-size: 13px; }
.profile-club-pending { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 6%, var(--bg)); font-size: 13px; }
.profile-club-pending span { color: var(--text-sub); }
.profile-club-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--border); }
.profile-club-actions h3 { margin: 4px 0 10px; }
.profile-club-create-options { display: flex; gap: 12px; margin-top: 10px; }
.profile-club-create-options label { display: grid; gap: 5px; font-size: 12px; }
.profile-club-create-options input[type="text"] { width: 78px; }
.profile-club-create-options input[type="color"] { width: 58px; min-height: 38px; padding: 3px; }
.profile-creations { margin-top: 22px; }
.profile-creations-count { padding: 5px 9px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 10%, var(--bg)); color: var(--accent); font-size: 11px; font-weight: 800; white-space: nowrap; }
.profile-creations > .page-sub { max-width: 760px; margin: 3px 0 0; }
.profile-creations-empty { display:flex; align-items:center; gap:11px; margin-top:16px; padding:14px; border-radius:12px; background:var(--bg); }
.profile-creations-empty > span { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:color-mix(in srgb,var(--accent) 10%,var(--card)); color:var(--accent); }
.profile-creations-empty strong,.profile-creations-empty p { display:block; }
.profile-creations-empty p { margin:3px 0 0; color:var(--text-sub); font-size:12px; }
.profile-creation-group { margin-top:20px; padding-top:17px; border-top:1px solid var(--border); }
.profile-creation-group-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.profile-creation-group-head > div { display:flex; align-items:center; gap:8px; }
.profile-creation-group-head h3 { margin:0; font-size:16px; }
.profile-creation-group-head small { color:var(--text-sub); font-size:11px; font-weight:700; }
.profile-creation-list,.profile-space-list { display:grid; gap:7px; margin-top:11px; }
.profile-creation-row { display:flex; align-items:center; gap:12px; padding:10px 11px; border:1px solid var(--border); border-radius:11px; background:var(--bg); }
.profile-creation-copy { min-width:0; flex:1; }
.profile-creation-copy a { color:var(--text); }
.profile-creation-copy a:hover { color:var(--accent); text-decoration:none; }
.profile-creation-copy strong,.profile-creation-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-creation-copy strong { font-size:13px; }
.profile-creation-copy small { margin-top:3px; color:var(--text-sub); font-size:11px; }
.profile-creation-row form { flex:none; margin:0; }
.profile-delete-action { padding:6px 8px; border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border)); border-radius:8px; background:var(--card); color:var(--danger); cursor:pointer; font:inherit; font-size:11px; font-weight:800; }
.profile-delete-action:hover { border-color:var(--danger); background:color-mix(in srgb,var(--danger) 7%,var(--card)); }
.profile-idea-status { font-weight:750; }
.profile-idea-status-planned,.profile-idea-status-shipped { color:#198458; }
.profile-idea-status-declined { color:var(--danger); }
.profile-idea-status-building { color:#9a6b12; }
.profile-creation-warning { margin:11px 0 0; padding:10px 11px; border-left:3px solid var(--danger); border-radius:0 9px 9px 0; background:color-mix(in srgb,var(--danger) 6%,var(--bg)); color:var(--text-sub); font-size:12px; line-height:1.5; }
.profile-space-delete { border:1px solid var(--border); border-left:3px solid var(--space-color,var(--danger)); border-radius:11px; background:var(--bg); overflow:hidden; }
.profile-space-delete summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px 11px; cursor:pointer; list-style:none; }
.profile-space-delete summary::-webkit-details-marker { display:none; }
.profile-space-delete summary .club-mark { width:35px; height:35px; margin:0; font-size:17px; }
.profile-space-delete summary span:nth-child(2) { min-width:0; }
.profile-space-delete summary strong,.profile-space-delete summary small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-space-delete summary strong { font-size:13px; }
.profile-space-delete summary small { margin-top:3px; color:var(--text-sub); font-size:11px; }
.profile-space-delete summary em { color:var(--danger); font-size:11px; font-style:normal; font-weight:800; }
.profile-space-delete-form { display:flex; align-items:end; gap:10px; margin:0; padding:12px; border-top:1px solid color-mix(in srgb,var(--danger) 25%,var(--border)); background:color-mix(in srgb,var(--danger) 4%,var(--card)); }
.profile-space-delete-form label { flex:1; margin:0; color:var(--text-sub); font-size:11px; line-height:1.45; }
.profile-space-delete-form input { margin-top:5px; }
.profile-space-delete-form .btn { flex:none; white-space:nowrap; }
.office-assignment-list { display: grid; gap: 7px; margin: 14px 0; }
.office-assignment-list > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); }
.office-assignment-list span { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.office-assignment-list em { padding: 3px 7px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 11%, var(--card)); color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; }
.office-editor { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.office-role-checks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.office-role-checks label { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 8px 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg); font-size: 13px; font-weight: 650; cursor: pointer; }
.office-role-checks input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.event-public-toggle, .showcase-publish-toggle { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0 0; padding: 12px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--accent) 6%, var(--bg)); cursor: pointer; }
.event-public-toggle input, .showcase-publish-toggle input { width: 18px; height: 18px; margin: 1px 0 0; flex: none; accent-color: var(--accent); }
.event-public-toggle strong, .event-public-toggle small, .showcase-publish-toggle strong, .showcase-publish-toggle small { display: block; }
.event-public-toggle small, .showcase-publish-toggle small { margin-top: 3px; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.showcase-form { margin-top: 16px; }
.showcase-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.showcase-form-grid > div { min-width: 0; }
.showcase-divider { height: 1px; margin: 23px 0 18px; background: var(--border); }
.club-management-section h3 { margin: 0 0 10px; font-size: 16px; }
.public-content-list { display: grid; gap: 7px; margin-top: 14px; }
.public-content-list > div { display: flex; align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); }
.public-content-list > div > span:first-child { min-width: 0; flex: 1; }
.public-content-list strong, .public-content-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-content-list strong { font-size: 13px; }
.public-content-list small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.public-content-list form { margin: 0; }
.public-status { flex: none; padding: 3px 7px; border-radius: 999px; background: var(--border); color: var(--text-sub); font-size: 10px; font-weight: 800; }
.public-status.is-live { background: color-mix(in srgb, #1caa6f 18%, var(--card)); color: #1caa6f; }

/* Module espaces-clubs. Ordre défini dans manifest.json. */
/* Annuaire public des clubs : vitrine légère, lisible sans compte, et carte
   non indispensable au fonctionnement pour que le contenu reste disponible si
   le fournisseur de tuiles est indisponible. */
.club-directory-hero, .public-club-hero { display: flex; align-items: center; gap: 22px; margin: 17px 0 20px; padding: 28px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 13%, var(--card)), var(--card) 62%); box-shadow: var(--shadow); }
.club-directory-hero > div:first-child, .public-club-hero-copy { min-width: 0; flex: 1; }
.club-directory-hero .page-title, .public-club-hero .page-title { margin: 4px 0 8px; font-size: clamp(28px, 4vw, 42px); }
.club-directory-hero p, .public-club-hero p { max-width: 740px; margin: 0; color: var(--text-sub); line-height: 1.6; }
.club-directory-hero-mark { flex: none; font-size: clamp(52px, 9vw, 100px); filter: drop-shadow(0 8px 14px rgba(0,0,0,.12)); }
.club-directory-filter { display: flex; align-items: end; gap: 10px; margin: 0 0 20px; padding: 14px; }
.club-directory-filter > div { width: min(100%, 300px); }
.club-directory-filter label { margin-top: 0; }
.club-directory-filter select { margin-bottom: 0; }
.club-map-card { margin: 0 0 25px; }
.club-map-card h2, .club-directory-results h2 { margin: 4px 0 0; font-size: 20px; }
.club-map { height: clamp(280px, 42vw, 480px); margin-top: 15px; border: 1px solid var(--border); border-radius: 13px; overflow: hidden; background: var(--bg); }
.club-directory-results { margin: 28px 0; }
.club-directory-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); gap: 14px; margin-top: 15px; }
.public-club-card { display: flex; min-height: 250px; flex-direction: column; padding: 17px; border: 1px solid var(--border); border-top: 3px solid var(--club-color); border-radius: 15px; background: var(--card); color: var(--text); box-shadow: var(--shadow); transition: transform .18s ease, border-color .18s ease; }
.public-club-card:hover { transform: translateY(-3px); border-color: var(--club-color); color: var(--text); text-decoration: none; }
.public-club-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.public-club-card .club-mark { margin: 0; width: 42px; height: 42px; font-size: 20px; }
.public-club-location { min-width: 0; color: var(--text-sub); font-size: 11px; font-weight: 750; text-align: right; }
.public-club-card h3 { margin: 15px 0 6px; color: var(--club-color); font-size: 18px; }
.public-club-card p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.public-club-card footer { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 15px; color: var(--text-sub); font-size: 10px; }
.public-club-card footer span { padding: 4px 6px; border-radius: 7px; background: var(--bg); }
.public-club-hero { --club-color: var(--accent); border-color: color-mix(in srgb, var(--club-color) 32%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, var(--club-color) 13%, var(--card)), var(--card) 62%); }
.public-club-hero:has(.public-club-cover) { position: relative; align-items: flex-end; min-height: 390px; overflow: hidden; isolation: isolate; }
.public-club-cover { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.public-club-hero:has(.public-club-cover)::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, color-mix(in srgb, var(--card) 95%, transparent) 0%, color-mix(in srgb, var(--card) 82%, transparent) 52%, color-mix(in srgb, var(--card) 25%, transparent) 100%); }
.public-club-hero > .club-mark { flex: none; width: 76px; height: 76px; margin: 0; font-size: 37px; background: color-mix(in srgb, var(--club-color) 15%, var(--card)); }
.public-club-hero .page-title { color: var(--club-color); }
.public-club-location-large { margin-bottom: 10px !important; color: var(--club-color) !important; font-size: 13px; font-weight: 800; }
.public-club-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 12px; }
.public-club-hero.is-showcase-subpage { align-items: center; min-height: 0; padding: 19px 24px; }
.public-club-hero.is-showcase-subpage > .club-mark { width: 58px; height: 58px; font-size: 28px; }
.public-club-hero.is-showcase-subpage .page-title { margin-bottom: 0; font-size: clamp(25px, 3vw, 34px); }
.public-club-hero.is-showcase-subpage .public-club-location-large { margin-bottom: 0 !important; }
.public-club-presentation { margin: 0 0 20px; padding: 0; overflow: hidden; }
.public-club-presentation-cover { display: block; width: 100%; max-height: 430px; object-fit: cover; }
.public-club-presentation-body { padding: clamp(20px, 4vw, 36px); }
.public-club-presentation-body h2 { margin: 5px 0 16px; font-size: clamp(24px, 4vw, 38px); }
.public-club-presentation .public-club-description { max-width: none; color: var(--text); }
.public-club-note { display: flex; gap: 10px; margin: -5px 0 20px; padding: 11px 13px; border-radius: 11px; background: var(--bg); color: var(--text-sub); font-size: 12px; line-height: 1.5; }
.public-club-note p { margin: 0; }
.public-club-content-grid ~ p:last-of-type { display: none !important; }
.public-club-editor { margin: 20px 0; padding: 20px; border: 1px solid color-mix(in srgb, var(--club-color, var(--accent)) 35%, var(--border)); border-radius: 18px; background: color-mix(in srgb, var(--accent) 6%, var(--card)); box-shadow: var(--shadow); }
.public-club-editor-head h2 { margin: 4px 0; font-size: 22px; }
.public-club-editor-head p { margin: 0; color: var(--text-sub); }
.public-club-editor-actions { display: grid; gap: 12px; margin-top: 16px; }
.public-club-editor.is-presentation-page .public-club-editor-actions details:nth-child(2),
.public-club-editor.is-news-page .public-club-editor-actions details:nth-child(1) { display: none; }
.public-club-editor-actions details { border: 1px solid var(--border); border-radius: 14px; background: var(--card); overflow: hidden; }
.public-club-editor-actions summary { margin: 10px; cursor: pointer; list-style: none; }
.public-club-editor-actions summary::-webkit-details-marker { display: none; }
.public-inline-editor-form { display: grid; gap: 13px; padding: 18px; border-top: 1px solid var(--border); }
.public-inline-editor-form label { min-width: 0; margin: 0; font-weight: 750; }
.public-inline-editor-form input, .public-inline-editor-form select, .public-inline-editor-form textarea { width: 100%; box-sizing: border-box; }
.public-inline-editor-form input[type="color"] { min-height: 50px; padding: 5px; }
.public-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.direct-image-upload { display: grid; align-content: start; gap: 8px; min-width: 0; }
.direct-image-upload-label { color: var(--text); font-size: 13px; font-weight: 750; }
.direct-image-upload button { justify-self: start; }
.direct-image-upload [data-cover-status] { min-height: 18px; color: var(--text-sub); font-size: 12px; }
.direct-image-upload img { display: block; width: min(100%, 340px); max-height: 190px; object-fit: cover; border: 1px solid var(--border); border-radius: 12px; }
.direct-image-upload img[hidden] { display: none; }
.public-membership-intro { margin: 0 0 14px; padding: 13px 15px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 11%, var(--card)); color: var(--text); font-weight: 700; line-height: 1.55; }
.public-club-content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 20px 0; }
.public-club-section { margin: 0; }
.public-program-list { display: grid; gap: 14px; margin-top: 16px; }
.public-program-list article { display: grid; grid-template-columns: minmax(105px, .55fr) minmax(0, 1.45fr); gap: 13px; padding-top: 14px; border-top: 1px solid var(--border); }
.public-program-list article:first-child { padding-top: 0; border-top: 0; }
.public-program-list time strong, .public-program-list time small { display: block; }
.public-program-list time strong { color: var(--accent); font-size: 12px; line-height: 1.4; }
.public-program-list time small { margin-top: 2px; color: var(--text-sub); font-size: 10px; }
.public-program-list h3 { margin: 0 0 4px; font-size: 15px; }
.public-program-list p { margin: 3px 0; color: var(--text-sub); font-size: 12px; line-height: 1.5; white-space: pre-wrap; }
.public-program-list a { display: inline-block; margin-top: 6px; font-size: 12px; font-weight: 750; }
.public-program-description { color: var(--text) !important; }

/* Hub clubs/interclubs : les actions d'organisation sont regroupées ici afin
   que la création ne soit plus cachée parmi les outils de modération. */
.spaces-hub-hero, .interclub-wizard-hero { display: flex; align-items: center; gap: 22px; margin: 17px 0 18px; padding: 28px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 13%, var(--card)), var(--card) 65%); box-shadow: var(--shadow); }
.spaces-hub-hero > div, .interclub-wizard-hero > div { min-width: 0; flex: 1; }
.spaces-hub-hero .page-title, .interclub-wizard-hero .page-title { margin: 4px 0 7px; font-size: clamp(29px, 4vw, 42px); }
.spaces-hub-hero p, .interclub-wizard-hero p { max-width: 720px; margin: 0; color: var(--text-sub); line-height: 1.55; }
.spaces-hub-hero > span, .interclub-wizard-hero > span { flex: none; font-size: clamp(52px, 9vw, 94px); }
.spaces-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.space-action-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 105px; padding: 15px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); color: var(--text); box-shadow: var(--shadow); }
.space-action-card:hover { border-color: var(--accent); color: var(--text); text-decoration: none; transform: translateY(-2px); }
.space-action-card > span { font-size: 28px; }
.space-action-card strong, .space-action-card small { display: block; }

/* Module espaces-clubs. Ordre défini dans manifest.json. */
.space-action-card strong { font-size: 14px; }
.space-action-card small { margin-top: 4px; color: var(--text-sub); font-size: 11px; line-height: 1.45; }
.space-action-card em { color: var(--accent); font-size: 18px; font-style: normal; font-weight: 800; }
.space-action-card.is-interclub { border-color: color-mix(in srgb, #7156c8 34%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, #7156c8 10%, var(--card)), var(--card)); }
.space-action-card.is-interclub:hover { border-color: #7156c8; }
.space-action-card.is-disabled { align-items: start; opacity: .78; }
.space-action-card.is-disabled a { display: inline-block; margin-top: 8px; font-size: 12px; font-weight: 750; }
.space-action-card.is-disabled em { align-self: center; color: var(--text-sub); font-size: 10px; text-align: right; }
.spaces-guide { display: flex; align-items: flex-start; gap: 11px; margin: 18px 0 27px; padding: 13px 15px; background: color-mix(in srgb, var(--accent) 5%, var(--card)); }
.spaces-guide > span { font-size: 21px; }
.spaces-guide p { margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.55; }
.spaces-guide strong { color: var(--text); }
.spaces-section { margin: 28px 0; }
.spaces-section h2 { margin: 4px 0 0; font-size: 20px; }
.spaces-empty { display: flex; align-items: center; gap: 15px; padding: 19px; }
.spaces-empty > span { flex: none; font-size: 29px; }
.spaces-empty > div { min-width: 0; flex: 1; }
.spaces-empty h2, .spaces-empty h3 { margin: 0 0 4px; font-size: 17px; }
.spaces-empty p { margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.interclub-wizard-hero { --accent: #7156c8; border-color: color-mix(in srgb, #7156c8 32%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, #7156c8 14%, var(--card)), var(--card) 65%); }
.interclub-wizard-form { display: grid; gap: 16px; margin: 20px 0; }
.wizard-step { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; margin: 0; }
.wizard-step-number { display: flex; align-items: center; justify-content: center; width: 31px; height: 31px; margin-top: 1px; border-radius: 50%; background: #7156c8; color: #fff; font-size: 14px; font-weight: 800; }
.wizard-step h2 { margin: 4px 0 6px; font-size: 20px; }
.wizard-club-picker { grid-column: 2; margin-top: 2px; }
.wizard-club-picker label { padding: 12px; }
.wizard-club-picker small { display: block; margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.wizard-form-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0 14px; }
.wizard-owner-note { display: flex; align-items: center; gap: 9px; min-height: 39px; margin-top: 25px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg); }
.wizard-owner-note > span { font-size: 19px; }
.wizard-owner-note small, .wizard-owner-note strong { display: block; }
.wizard-owner-note small { color: var(--text-sub); font-size: 10px; }
.wizard-owner-note strong { margin-top: 1px; font-size: 12px; }
.wizard-confirm { display: flex; align-items: center; gap: 13px; margin: 0; border-color: color-mix(in srgb, #7156c8 29%, var(--border)); background: color-mix(in srgb, #7156c8 6%, var(--card)); }
.wizard-confirm > span { display: flex; align-items: center; justify-content: center; width: 31px; height: 31px; flex: none; border-radius: 50%; background: #7156c8; color: #fff; font-weight: 850; }
.wizard-confirm > div { flex: 1; }
.wizard-confirm strong { display: block; font-size: 14px; }
.wizard-confirm p { margin: 3px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.wizard-confirm .btn { flex: none; }
.interclub-invitation-status h2, .club-invitation-inbox h2 { margin: 4px 0 5px; font-size: 19px; }
.invitation-status-list, .club-invitation-list { display: grid; gap: 8px; margin-top: 14px; }
.invitation-status-list > div { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); }
.invitation-status-list .club-mark { width: 34px; height: 34px; margin: 0; font-size: 16px; }
.invitation-status-list strong, .invitation-status-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.invitation-status-list strong { font-size: 13px; }
.invitation-status-list small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.invitation-status { flex: none; padding: 4px 7px; border-radius: 999px; font-size: 10px; font-style: normal; font-weight: 800; }
.invitation-status.is-pending { background: color-mix(in srgb, #d78f18 16%, var(--card)); color: #b87308; }
.invitation-status.is-accepted { background: color-mix(in srgb, #1caa6f 17%, var(--card)); color: #198458; }
.invitation-status.is-declined { background: color-mix(in srgb, #d34b4b 14%, var(--card)); color: #bc3737; }
.club-invitation-inbox { margin: 20px 0; border-color: color-mix(in srgb, #7156c8 30%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, #7156c8 6%, var(--card)), var(--card)); }
.club-invitation-list article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
.club-invitation-list .club-mark { width: 46px; height: 46px; margin: 0; font-size: 22px; }
.club-invitation-list h3 { margin: 0 0 3px; font-size: 15px; }
.club-invitation-list p { margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.club-invitation-list small { display: block; margin-top: 5px; color: var(--text-sub); font-size: 10px; }
.club-invitation-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.club-invitation-actions form { margin: 0; }
@media (max-width: 640px) {
  .profile-club-actions { grid-template-columns: 1fr; }
  .profile-club-entry { align-items: stretch; flex-direction: column; }
  .profile-club-entry form, .profile-club-leave { width: 100%; }
  .profile-club-leave { min-height: 38px; }
  .profile-club-owner-note { width: 100%; text-align: center; }
  .profile-club-row { grid-template-columns: auto minmax(0,1fr); }
  .profile-club-row em { display: none; }
  .profile-creation-row { align-items:stretch; flex-direction:column; }
  .profile-creation-row form,.profile-delete-action { width:100%; }
  .profile-delete-action { min-height:36px; }
  .profile-space-delete summary { grid-template-columns:auto minmax(0,1fr); }
  .profile-space-delete summary em { display:none; }
  .profile-space-delete-form { align-items:stretch; flex-direction:column; }
  .profile-space-delete-form .btn { width:100%; min-height:39px; }
  .office-assignment-list > div { display: grid; gap: 7px; }
  .office-assignment-list span { justify-content: flex-start; }
  .showcase-form-grid { grid-template-columns: 1fr; }
  .public-content-list > div { align-items: flex-start; flex-wrap: wrap; }
  .public-content-list > div > .btn, .public-content-list > div > form { margin-left: auto; }
  .club-directory-hero, .public-club-hero { align-items: flex-start; padding: 20px; }
  .club-directory-hero-mark { display: none; }
  .club-directory-filter { align-items: stretch; flex-direction: column; }
  .club-directory-filter > div { width: 100%; }
  .club-directory-filter .btn { justify-content: center; }
  .club-map { height: 310px; }
  .public-club-hero > .club-mark { width: 52px; height: 52px; font-size: 25px; }
  .public-club-content-grid { grid-template-columns: 1fr; }
  .public-program-list article { grid-template-columns: 1fr; gap: 5px; }
  .spaces-hub-hero, .interclub-wizard-hero { align-items: flex-start; padding: 20px; }
  .spaces-hub-hero > span { display: none; }
  .spaces-action-grid { grid-template-columns: 1fr; }
  .spaces-empty { align-items: flex-start; flex-wrap: wrap; }
  .spaces-empty .btn { width: 100%; justify-content: center; }
  .wizard-step { grid-template-columns: 1fr; }
  .wizard-step-number { display: none; }
  .wizard-club-picker { grid-column: auto; }
  .wizard-form-grid { grid-template-columns: 1fr; }
  .wizard-confirm { align-items: flex-start; flex-wrap: wrap; }
  .wizard-confirm .btn { width: 100%; justify-content: center; }
  .invitation-status-list > div { grid-template-columns: auto minmax(0, 1fr); }
  .invitation-status { grid-column: 2; justify-self: start; }
  .club-invitation-list article { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .club-invitation-actions, .club-invitation-list .club-private { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (min-width: 641px) and (max-width: 1000px) {
  .spaces-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .club-primary-tools, .club-tool-grid, .club-essential-grid { grid-template-columns: 1fr; }
  .club-dashboard-grid, .club-manage-grid, .club-admin-layout { grid-template-columns: 1fr; }
  .club-hero, .club-list-hero, .club-members-head { align-items: flex-start; flex-direction: column; }
  .club-hero-stats { width: 100%; min-width: 0; }
  .club-empty .btn { margin-left: 0; }
}

/* Module espaces-clubs. Ordre défini dans manifest.json. */
@media (max-width: 640px) {
  .club-list-hero, .club-hero, .club-manage-hero, .club-members-head, .club-admin-intro { padding: 20px; margin-top: 16px; border-radius: 14px; }
  .club-list-hero .page-title, .club-hero .page-title, .club-manage-hero .page-title, .club-members-head .page-title, .club-admin-intro .page-title { font-size: 28px; }
  .club-hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .club-hero-stats span { padding: 10px 5px; }
  .club-hero-stats b { font-size: 18px; }
  .club-essential-tools { margin-top: 16px; padding: 14px; }
  .club-tools-heading { align-items: stretch; flex-direction: column; }
  .club-tools-editor { width: 100%; }
  .club-tools-editor > summary { justify-content: center; width: 100%; }
  .club-tools-editor-panel { position: static; width: 100%; margin-top: 8px; box-sizing: border-box; box-shadow: var(--shadow); }
  .club-tools-editor-actions { align-items: stretch; flex-direction: column; }
  .club-tools-editor-actions .btn { justify-content: center; width: 100%; }
  .club-essential-tools .home-section-head { align-items: flex-start; flex-direction: column; gap: 3px; }
  .club-essential-card { min-height: 82px; padding: 12px; }
  .club-essential-copy strong { font-size: 14px; }
  .club-empty { align-items: flex-start; flex-wrap: wrap; }
  .club-empty .btn { width: 100%; justify-content: center; }
  .club-manage-member { align-items: flex-start; flex-direction: column; }
  .club-member-controls { justify-content: flex-start; }
  .club-member-controls form { flex-wrap: wrap; }
  .club-category-pills a { width: 100%; }
}

/* Module infos-exif-appareil-objectif-reglages. Ordre défini dans manifest.json. */
/* ── Infos EXIF (appareil/objectif/réglages) ── */
.exif-strip-wrap { margin-top: 8px; }
.exif-strip { font-size: 12px; color: var(--text-sub); background: var(--bg); border: 1px solid var(--border); border-radius: 6px; padding: 5px 10px; margin-top: 4px; display: inline-block; }
.exif-strip-index { font-weight: 700; margin-right: 4px; }

.post-photo { display: block; }
.post-photo .post-img { margin-bottom: 4px; }
.post-photo-caption {
  display: block;
  color: var(--text-sub);
  font-size: .82rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.post-photo-caption strong { color: var(--text); }
.post-photo-caption small { display: block; font-size: .75rem; }

/* Module concours-photo. Ordre défini dans manifest.json. */
/* ── Concours photo ── */
.contest-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-top: 16px; }
.contest-entry-card { position: relative; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.contest-entry-img { width: 100%; height: 200px; object-fit: cover; display: block; }
.contest-entry-body { padding: 12px 14px; }
.contest-entry-author { font-size: 13px; font-weight: 600; }
.contest-rank-badge { position: absolute; top: 8px; left: 8px; font-size: 22px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); }

/* Module petites-annonces. Ordre défini dans manifest.json. */
/* ── Petites annonces ── */
.listing-card { text-align: left; }
.listing-thumb { width: 100%; height: 140px; object-fit: cover; border-radius: 8px; display: block; }
.listing-thumb-empty { display: flex; align-items: center; justify-content: center; font-size: 32px; background: var(--bg); color: var(--text-sub); }
.listing-price { font-weight: 800; color: var(--accent); margin-top: 2px; }
.listing-price-lg { font-size: 20px; font-weight: 800; color: var(--accent); margin-bottom: 4px; }

/* Module calendrier. Ordre défini dans manifest.json. */
/* ── Calendrier ── */
.calendar-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.calendar-month-title { margin: 0; font-size: 18px; font-weight: 800; }
.calendar-grid { display: block; }
.calendar-weekday-row, .calendar-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.calendar-week { position: relative; min-height: var(--calendar-week-height, 92px); margin-top: 4px; }
.calendar-weekday { font-size: 11px; font-weight: 700; color: var(--text-sub); text-align: center; padding: 4px 0; text-transform: uppercase; }
.calendar-cell { min-height: var(--calendar-week-height, 92px); border: 1px solid var(--border); border-radius: 8px; padding: 5px; font-size: 12px; background: var(--bg); }
.calendar-cell.is-empty { border-color: transparent; background: none; }
.calendar-cell.is-today { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.calendar-day-num { font-weight: 700; margin-bottom: 3px; }
.calendar-week-events { position: absolute; top: 37px; left: 0; right: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-rows: 22px; gap: 3px 4px; pointer-events: none; }
.calendar-event-bar { display: flex; align-items: center; min-width: 0; margin: 0; padding: 3px 9px; border: 1px solid color-mix(in srgb, var(--accent) 72%, #172554); border-radius: 7px; background: color-mix(in srgb, var(--accent) 88%, #172554); color: #fff; box-shadow: 0 2px 5px color-mix(in srgb, var(--accent) 20%, transparent); font-size: 10px; font-weight: 750; line-height: 1.2; overflow: hidden; pointer-events: auto; text-decoration: none; white-space: nowrap; }
.calendar-event-bar:hover { background: color-mix(in srgb, var(--accent) 78%, #172554); color: #fff; text-decoration: none; transform: translateY(-1px); }
.calendar-event-bar span { display: block; width: 100%; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.upcoming-event-item { display: block; padding: 8px 0; border-top: 1px solid var(--border); }
.upcoming-event-item:first-child { border-top: none; }
.upcoming-event-item:hover { text-decoration: none; }
.upcoming-event-date { font-size: 11px; color: var(--accent); font-weight: 700; }
.upcoming-event-title { font-size: 13px; font-weight: 600; color: var(--text); }
.event-kind-badge { display: inline-block; margin-right: 6px; padding: 3px 8px; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border)); border-radius: 999px; color: var(--accent); font-size: 11px; font-weight: 800; }
.mfa-card { max-width: 620px; }
.mfa-card h2 { margin-top: 0; }
.mfa-card form { display: grid; gap: 8px; }
.mfa-card form h3 { margin: 12px 0 0; }
.mfa-card form .btn { justify-self: start; margin-top: 8px; }
.mfa-steps { padding-left: 21px; color: var(--text-sub); line-height: 1.6; }
.mfa-secret { display: block; overflow: auto; margin: 14px 0; padding: 13px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); color: var(--accent); font-size: 17px; letter-spacing: .1em; }
.mfa-recovery-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 15px 0; }
.mfa-recovery-list code { padding: 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); text-align: center; letter-spacing: .12em; }
.mfa-switch { margin-bottom: 0; }
.mfa-trust-device { display: flex; align-items: flex-start; gap: 10px; margin: 5px 0 2px; padding: 11px 12px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--accent) 5%, var(--card)); cursor: pointer; }
.mfa-trust-device input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); flex: none; }
.mfa-trust-device strong, .mfa-trust-device small { display: block; }
.mfa-trust-device strong { color: var(--text); font-size: 13px; }
.mfa-trust-device small { margin-top: 3px; color: var(--text-sub); font-size: 12px; line-height: 1.38; }
.mfa-trusted-devices { margin: 20px 0; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--card) 92%, var(--bg)); }
.mfa-trusted-devices h3 { margin: 0; }
.mfa-trusted-devices .page-sub { margin: 5px 0 12px; }
.mfa-device-list { display: grid; gap: 8px; margin: 12px 0; }
.mfa-device-list article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 11px; background: var(--card); }
.mfa-device-list article > span { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; background: color-mix(in srgb, var(--accent) 11%, var(--bg)); }
.mfa-device-list strong, .mfa-device-list small { display: block; }
.mfa-device-list small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.mfa-device-list form { display: block; }
.mfa-device-list .btn { margin: 0; padding: 7px 10px; font-size: 12px; }
@media (max-width: 560px) { .mfa-device-list article { grid-template-columns: auto minmax(0, 1fr); } .mfa-device-list form { grid-column: 2; } }
.mfa-profile-callout { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.mfa-profile-callout h3 { margin: 5px 0; }
.mfa-profile-callout .page-sub { margin: 0; }
.ideas-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 18px 0; padding: 25px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, #f0b94d 11%, var(--card)), var(--card) 70%); }
.ideas-hero h1 { margin: 5px 0 8px; }
.ideas-hero p { max-width: 700px; margin: 0; color: var(--text-sub); line-height: 1.5; }
.ideas-hero-icon { font-size: 58px; }
.ideas-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 18px 0 13px; }
.ideas-filters { display: flex; gap: 7px; }
.ideas-filter-status { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.ideas-filter-status label { margin: 0; color: var(--text-sub); font-size: 11px; }
.ideas-filter-status select { width: auto; min-width: 145px; margin: 0; padding: 7px 27px 7px 9px; font-size: 12px; }
.ideas-list { display: grid; gap: 10px; }
.idea-card { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; gap: 15px; align-items: start; padding: 17px; border: 1px solid var(--border); border-radius: 15px; background: var(--card); box-shadow: var(--shadow); }
.idea-card:hover { border-color: color-mix(in srgb, var(--accent) 40%, var(--border)); }
.idea-votes { display: grid; justify-items: center; gap: 3px; padding: 4px 7px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg); }
.idea-votes form { margin: 0; }
.idea-vote-btn { width: 31px; height: 28px; padding: 0; border: 0; background: transparent; color: var(--text-sub); cursor: pointer; font-size: 20px; line-height: 1; transform: rotate(0deg); }
.idea-votes form:last-of-type .idea-vote-btn { transform: rotate(180deg); }
.idea-vote-btn:hover, .idea-vote-btn.is-active { color: var(--accent); }
.idea-vote-btn.is-negative { color: var(--danger); }
.idea-score { font-size: 21px; }
.idea-score.is-positive { color: #2aa979; }
.idea-score.is-negative { color: var(--danger); }
.idea-votes small { color: var(--text-sub); font-size: 9px; text-align: center; }
.idea-content { min-width: 0; }
.idea-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--text-sub); font-size: 10px; }
.idea-meta time { margin-left: auto; }
.idea-status { padding: 4px 8px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); color: var(--accent); font-weight: 800; }
.idea-status-shipped { background: color-mix(in srgb, #2aa979 13%, var(--bg)); color: #2aa979; }
.idea-status-declined { color: var(--danger); }
.idea-decision-note { display: grid; gap: 3px; margin-top: 10px; padding: 9px 10px; border-left: 3px solid var(--danger); border-radius: 0 8px 8px 0; background: color-mix(in srgb, var(--danger) 6%, var(--bg)); color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.idea-decision-note strong { color: var(--danger); font-size: 11px; }
.idea-content h2 { margin: 8px 0 5px; font-size: 17px; }
.idea-content p { margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; white-space: pre-wrap; }
.idea-status-form { display: grid; gap: 5px; margin: 0; }
.idea-status-form label { display: grid; gap: 4px; margin: 0; color: var(--text-sub); font-size: 10px; }
.idea-status-form select { width: 145px; margin: 0; padding: 6px 22px 6px 7px; font-size: 11px; }
.idea-status-form input { width: 145px; margin: 0; padding: 6px 7px; font-size: 11px; }
.idea-discussion { grid-column: 2 / -1; margin-top: 2px; padding-top: 13px; border-top: 1px solid var(--border); }
.idea-discussion-head { display: flex; align-items: baseline; gap: 9px; color: var(--text-sub); font-size: 12px; }
.idea-discussion-head strong { color: var(--text); font-size: 13px; }

/* Module calendrier. Ordre défini dans manifest.json. */
.idea-comment-list { display: grid; gap: 10px; margin: 12px 0; }
.idea-comment { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 9px; align-items: start; }
.idea-comment-avatar { display: grid; width: 31px; height: 31px; place-items: center; overflow: hidden; border-radius: 10px; background: color-mix(in srgb, var(--accent) 13%, var(--bg)); color: var(--accent); font-size: 12px; font-weight: 800; }
.idea-comment-avatar img { width: 100%; height: 100%; object-fit: cover; }
.idea-comment header { display: flex; align-items: baseline; gap: 8px; margin: 1px 0 4px; font-size: 12px; }
.idea-comment time { color: var(--text-sub); font-size: 10px; }
.idea-comment-body { color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.idea-comment-body img { display: block; max-width: min(100%, 460px); max-height: 420px; margin-top: 8px; border-radius: 10px; object-fit: contain; }
.idea-comment-form { margin-top: 12px; }
.idea-comment-form .richtoolbar { padding: 4px 6px; }
.idea-comment-form .richtoolbar-btn, .idea-comment-form .richtoolbar-size { min-height: 29px; padding: 4px 6px; }
.idea-comment-form .rich-editable { min-height: 78px; padding: 10px; font-size: 13px; }
.idea-comment-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.idea-comment-actions small { color: var(--text-sub); font-size: 10px; }
.idea-comment-login { display: inline-block; margin-top: 12px; color: var(--accent); font-size: 12px; font-weight: 750; }
.ideas-empty { display: flex; align-items: center; gap: 15px; padding: 22px; }
.ideas-empty > span { color: var(--accent); font-size: 28px; }
.ideas-empty h2 { margin: 0 0 4px; font-size: 18px; }
.ideas-empty p { margin: 0; color: var(--text-sub); }
.ideas-empty .btn { margin-left: auto; flex: none; }
.idea-new-card { max-width: 760px; }
.idea-new-card form { display: grid; gap: 8px; }
.idea-new-card form .btn { justify-self: start; margin-top: 8px; }
.idea-workflow { margin: 18px 0; padding: 19px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, var(--card)), var(--card) 48%); }
.idea-workflow-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.idea-workflow-head h2 { margin: 4px 0 5px; font-size: 20px; }
.idea-workflow-head p, .idea-workflow-head small { margin: 0; color: var(--text-sub); line-height: 1.45; }
.idea-workflow-head small { max-width: 235px; padding: 8px 10px; border-radius: 9px; background: color-mix(in srgb, var(--bg) 78%, transparent); font-size: 11px; }
.idea-board { display: grid; grid-template-columns: repeat(5, minmax(185px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 3px; }
.idea-column { display: flex; min-width: 185px; flex-direction: column; border: 1px solid var(--border); border-radius: 13px; background: color-mix(in srgb, var(--bg) 52%, var(--card)); }
.idea-column > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 47px; padding: 9px 10px; border-bottom: 1px solid var(--border); }
.idea-column > header strong { display: grid; min-width: 23px; height: 23px; place-items: center; border-radius: 99px; background: var(--card); color: var(--text-sub); font-size: 11px; }
.idea-dropzone { display: grid; align-content: start; gap: 7px; min-height: 125px; padding: 8px; border-radius: 0 0 13px 13px; transition: background .16s ease, outline-color .16s ease; }
.idea-dropzone.is-over { outline: 2px dashed var(--accent); outline-offset: -5px; background: color-mix(in srgb, var(--accent) 10%, transparent); }
.idea-board-card { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); box-shadow: 0 4px 12px rgba(22, 32, 51, .05); cursor: grab; }
.idea-board-card:active { cursor: grabbing; }
.idea-board-card.is-dragging { opacity: .42; }
.idea-board-card > div, .idea-board-card footer { display: flex; justify-content: space-between; gap: 6px; color: var(--text-sub); font-size: 9px; }
.idea-board-card > div span { color: var(--accent); font-weight: 800; }
.idea-board-card > strong { font-size: 12px; line-height: 1.28; }
.idea-board-card p { margin: 0; color: var(--text-sub); font-size: 10px; line-height: 1.4; }
.idea-drop-hint { margin: 2px 0; padding: 7px 3px; color: var(--text-sub); font-size: 10px; text-align: center; }
.idea-column-planned .idea-status { color: #8e60d5; background: #f2ebff; }
.idea-column-building .idea-status { color: #d17916; background: #fff1dc; }
.idea-column-declined .idea-status { color: var(--danger); background: color-mix(in srgb, var(--danger) 9%, var(--bg)); }
.site-roles-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.site-roles-guide > div { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
.site-roles-guide strong { font-size: 13px; }
.site-roles-guide small { color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.site-role-form { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.site-role-form label { display: inline-flex; align-items: center; gap: 3px; margin: 0; color: var(--text-sub); font-size: 11px; font-weight: 700; white-space: nowrap; }
.site-role-form input { width: auto; margin: 0; }
.automation-toggle { display: flex; align-items: center; gap: 8px; }
.automation-toggle input { width: auto; margin: 0; }
.automation-controls-card { overflow:hidden; padding:0; }
.automation-controls-card .real-admin-card-head { padding:22px 22px 16px; margin:0; border-bottom:1px solid var(--border); background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 7%,var(--card)),var(--card) 58%); }
.automation-cycle-chip { flex:0 0 auto; padding:7px 10px; border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border)); border-radius:999px; background:var(--card); color:var(--text-sub); font-size:11px; font-weight:750; }
.automation-cycle-chip strong { margin-left:3px; color:var(--accent); }
.automation-control-head, .automation-control-row { display:grid; grid-template-columns:minmax(0,1fr) 116px 128px; align-items:center; }
.automation-control-head { padding:10px 22px; color:var(--text-sub); border-bottom:1px solid var(--border); background:color-mix(in srgb,var(--bg) 58%,var(--card)); font-size:10px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.automation-control-head span:not(:first-child) { text-align:center; }
.automation-control-list { padding:8px 12px; }
.automation-control-row { min-height:66px; padding:0 10px; border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent); }
.automation-control-row:last-child { border-bottom:0; }
.automation-control-copy { display:flex; align-items:center; min-width:0; gap:10px; }
.automation-control-icon { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border-radius:10px; background:color-mix(in srgb,var(--accent) 10%,var(--bg)); font-size:16px; }
.automation-control-copy strong, .automation-control-copy small { display:block; }
.automation-control-copy strong { font-size:13px; }
.automation-control-copy small { margin-top:2px; color:var(--text-sub); font-size:11px; line-height:1.35; }
.automation-check { display:inline-flex; align-items:center; justify-content:center; gap:7px; color:var(--text-sub); font-size:11px; font-weight:750; cursor:pointer; }
.automation-check input { width:17px; height:17px; margin:0; accent-color:var(--accent); cursor:pointer; }
.automation-check.is-unavailable { opacity:.46; cursor:not-allowed; }
.automation-check.is-unavailable input { cursor:not-allowed; }
.automation-controls-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 22px; border-top:1px solid var(--border); background:color-mix(in srgb,var(--bg) 42%,var(--card)); }
.automation-controls-footer small { max-width:640px; color:var(--text-sub); font-size:11px; line-height:1.4; }
.automation-manual-actions { display: grid; gap: 11px; }
.automation-manual-actions form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; align-items: center; padding: 11px; border: 1px solid var(--border); border-radius: 11px; background: color-mix(in srgb, var(--bg) 55%, var(--card)); }
.automation-manual-actions strong { font-size: 13px; }
.automation-manual-actions small { color: var(--text-sub); font-size: 11px; line-height: 1.35; }
.automation-manual-actions button { grid-column: 2; grid-row: 1 / 3; }
.automation-error { margin: 13px 0 0; padding: 10px; border-radius: 9px; background: color-mix(in srgb, var(--danger) 8%, var(--bg)); color: var(--danger); font-size: 12px; }
.external-backup-state { padding: 5px 9px; border-radius: 999px; background: var(--bg); color: var(--text-sub); font-size: 11px; font-weight: 800; }
.external-backup-state.is-active { background: color-mix(in srgb, #1b9b65 13%, var(--bg)); color: #168454; }
.external-backup-help { margin: 12px 0 0; padding: 11px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 7%, var(--bg)); color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.external-backup-now { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr auto; gap: 8px; margin-top: 12px; }
.external-backup-now select, .external-backup-now input { margin: 0; min-width: 0; padding: 8px; font-size: 12px; }
.external-backup-last { display: block; margin-top: 9px; color: var(--text-sub); font-size: 11px; }
.external-backup-help p { margin: 5px 0 0; }
.backup-row-actions { display: flex; align-items: center; gap: 7px; }
.backup-row-actions form { margin: 0; }

/* Module calendrier. Ordre défini dans manifest.json. */
.hub-backup-card-body { display:flex; align-items:center; gap:14px; padding:15px; border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border)); border-radius:14px; background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 7%,var(--bg)),var(--card)); }
.hub-backup-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:12px; background:var(--card); font-size:21px; }
.hub-backup-card-body > div { flex:1; min-width:0; }
.hub-backup-card-body strong, .hub-backup-card-body small { display:block; }
.hub-backup-card-body small { margin-top:3px; color:var(--text-sub); font-size:12px; line-height:1.4; }
.connector-card { max-width: 720px; }
.connector-question-help { display: block; margin: 6px 0 9px; color: var(--text-sub); font-size: 12px; line-height: 1.45; white-space: pre-line; }
.connector-actions { display: flex; gap: 8px; }
.connector-actions form { margin: 0; }
.admin-mail-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 18px 0; padding: 24px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--card)), var(--card) 70%); }
.admin-mail-hero h1 { margin: 5px 0 8px; }
.admin-mail-hero p { margin: 0; color: var(--text-sub); }
.admin-mail-hero > span { font-size: 50px; }
.admin-mail-list { display: grid; gap: 8px; }
.admin-mail-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); color: var(--text); }
.admin-mail-row:hover { border-color: var(--accent); color: var(--text); text-decoration: none; }
.admin-mail-icon { color: var(--accent); font-size: 21px; }
.admin-mail-row strong, .admin-mail-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-mail-row small, .admin-mail-row time { color: var(--text-sub); font-size: 11px; }
.admin-mail-row em { color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; }
.admin-mail-detail { max-width: 860px; }
.admin-mail-body { margin-top: 17px; padding: 17px; border-top: 1px solid var(--border); color: var(--text); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-mail-reply { max-width: 860px; margin-top: 16px; }
.admin-mail-reply h2 { margin-top: 0; }
.admin-mail-reply form { display: grid; gap: 8px; }
.admin-mail-reply form .btn { justify-self: start; margin-top: 7px; }
.event-recurrence-fieldset { display: grid; gap: 7px; margin: 16px 0 0; padding: 14px; border: 1px solid var(--border); border-radius: 12px; }
.event-recurrence-fieldset legend { padding: 0 5px; font-size: 13px; font-weight: 800; }
.event-recurrence-fieldset .field-hint { margin: 0; }
.event-recurrence-fieldset label { margin-top: 3px; }
@media (max-width: 640px) {
  .calendar-grid { gap: 2px; }
  .calendar-cell { min-height: var(--calendar-week-height, 64px); padding: 3px; }
  .calendar-weekday { font-size: 9px; }
  .calendar-week-events { top: 30px; grid-auto-rows: 19px; }
  .calendar-event-bar { padding: 2px 5px; font-size: 9px; }
}

/* Module autocompletion-des-mentions. Ordre défini dans manifest.json. */
/* ── Autocomplétion des mentions ── */
.mention-autocomplete {
  position: absolute; background: var(--card); border: 1px solid var(--border); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.15); z-index: 30; max-height: 220px; overflow-y: auto; min-width: 160px;
}
.mention-autocomplete-item { padding: 7px 12px; font-size: 13px; cursor: pointer; }
.mention-autocomplete-item.is-active, .mention-autocomplete-item:hover { background: var(--bg); }
.member-search-control { position: relative; display: block; width: 100%; }
.member-search-control > input { width: 100%; }
.member-search-results { position: absolute; z-index: 90; top: calc(100% + 6px); right: 0; left: 0; max-height: 300px; overflow-y: auto; padding: 6px; border: 1px solid var(--border); border-radius: 13px; background: var(--card); box-shadow: 0 16px 38px rgba(8,16,30,.2); }
.member-search-results[hidden] { display: none; }
.member-search-option { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; width: 100%; min-height: 48px; padding: 7px 9px; border: 0; border-radius: 9px; background: transparent; color: var(--text); cursor: pointer; font: inherit; text-align: left; }
.member-search-option > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: color-mix(in srgb,var(--accent) 10%,var(--bg)); }
.member-search-option strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.member-search-option small { color: var(--text-sub); font-size: 10px; font-weight: 700; }
.member-search-option:hover, .member-search-option.is-active { background: color-mix(in srgb,var(--accent) 10%,var(--bg)); color: var(--accent); }
@media(max-width:600px){.member-search-results{position:fixed;z-index:170;top:auto;right:12px;bottom:max(12px,env(safe-area-inset-bottom,0px));left:12px;max-height:min(52dvh,360px);padding:8px;border-radius:16px}.member-search-option{min-height:54px}}

/* Module conseil-communautaire. Ordre défini dans manifest.json. */
/* ── Conseil communautaire ── */
.community-council-hero { margin: 24px 0 16px; padding: clamp(23px, 4vw, 35px); border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 20px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 11%, var(--card)), var(--card) 66%); }
.community-council-hero .page-title { max-width: 720px; margin: 7px 0 10px; font-size: clamp(31px, 4vw, 45px); letter-spacing: -.045em; line-height: 1.04; }
.community-council-hero > p { max-width: 720px; margin: 0; color: var(--text-sub); line-height: 1.58; }
.community-council-principles { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.community-council-principles span { padding: 7px 9px; border: 1px solid var(--border); border-radius: 999px; background: color-mix(in srgb, var(--card) 85%, transparent); color: var(--text-sub); font-size: 11px; font-weight: 700; }
.community-council-guide { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding: 15px 17px; border-color: color-mix(in srgb, var(--accent) 20%, var(--border)); }
.community-council-guide strong, .community-council-guide p { display: block; }
.community-council-guide strong { font-size: 13px; }
.community-council-guide p { max-width: 760px; margin: 4px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.5; }
.community-trust-chip { flex: none; padding: 9px 11px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 9%, var(--bg)); color: var(--accent); font-size: 11px; font-weight: 750; white-space: nowrap; }
.community-council-list { display: grid; gap: 12px; max-width: 920px; }
.community-review-card { padding: clamp(17px, 3vw, 23px); }
.community-review-meta { display: flex; flex-wrap: wrap; gap: 7px; color: var(--text-sub); font-size: 10px; font-weight: 750; }
.community-review-meta span { padding: 4px 7px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg); }
.community-review-card h2 { margin: 10px 0 12px; font-size: 18px; letter-spacing: -.02em; }
.community-review-reason { display: grid; gap: 2px; margin-bottom: 10px; }
.community-review-reason strong { color: var(--text-sub); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.community-review-reason span { font-size: 12px; font-weight: 750; }
.community-review-excerpt { max-height: 170px; overflow: hidden; padding: 12px 13px; border: 1px solid var(--border); border-radius: 11px; background: color-mix(in srgb, var(--bg) 70%, var(--card)); color: var(--text); font-size: 13px; line-height: 1.55; }
.community-review-excerpt img { max-width: 180px; max-height: 120px; object-fit: cover; border-radius: 7px; }
.community-vote-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(230px, 1.7fr); gap: 7px; align-items: stretch; margin-top: 12px; }
.community-vote-summary > div { display: grid; gap: 2px; padding: 9px; border: 1px solid var(--border); border-radius: 9px; background: var(--card); }
.community-vote-summary > div strong { font-size: 19px; line-height: 1; }
.community-vote-summary > div span { color: var(--text-sub); font-size: 10px; line-height: 1.25; }
.community-recommendation { display: grid; align-content: center; gap: 3px; margin: 0; padding: 9px 11px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 9px; background: color-mix(in srgb, var(--accent) 6%, var(--card)); }
.community-recommendation span { color: var(--text-sub); font-size: 10px; font-weight: 700; }
.community-recommendation strong { color: var(--accent); font-size: 12px; line-height: 1.3; }
.community-recommendation.is-consensus { border-color: color-mix(in srgb, var(--ok) 45%, var(--border)); background: color-mix(in srgb, var(--ok) 7%, var(--card)); }
.community-recommendation.is-consensus strong { color: var(--ok); }
.community-vote-form { display: grid; gap: 10px; margin-top: 15px; }
.community-vote-form fieldset { margin: 0; padding: 0; border: 0; }
.community-vote-form legend { margin-bottom: 7px; color: var(--text-sub); font-size: 11px; font-weight: 800; }
.community-vote-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.community-vote-options label { display: flex; align-items: flex-start; gap: 7px; min-height: 55px; margin: 0; padding: 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); cursor: pointer; }
.community-vote-options label:has(input:checked), .community-vote-options label.is-selected { border-color: color-mix(in srgb, var(--accent) 58%, var(--border)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.community-vote-options input { flex: none; width: 15px; height: 15px; margin: 2px 0 0; accent-color: var(--accent); }
.community-vote-options strong, .community-vote-options small { display: block; }
.community-vote-options strong { font-size: 11px; line-height: 1.3; }
.community-vote-options small { margin-top: 3px; color: var(--text-sub); font-size: 10px; line-height: 1.3; }
.community-vote-locked { margin: 13px 0 0; padding: 10px 11px; border-radius: 9px; background: var(--bg); color: var(--text-sub); font-size: 11px; line-height: 1.45; }
.community-council-empty { display: flex; align-items: flex-start; gap: 13px; padding: 23px; }
.community-council-empty > span { font-size: 24px; }
.community-council-empty h2 { margin: 0; font-size: 17px; }
.community-council-empty p { margin: 4px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.5; }
.report-details { display: inline-block; position: relative; }
.report-details > summary { cursor: pointer; }
.report-details > form { display: grid; gap: 12px; width: min(460px, calc(100vw - 40px)); margin-top: 10px; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: #fff; box-shadow: 0 16px 42px rgba(24, 25, 42, .18); }
.report-form-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; font-size: 19px; line-height: 1.2; }
.report-form-close { display: grid; flex: none; width: 38px; height: 38px; place-items: center; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: var(--bg); color: var(--text); font-size: 26px; line-height: 1; cursor: pointer; }
.report-form-close:hover, .report-form-close:focus-visible { border-color: var(--accent); color: var(--accent); }
.report-details > form label { margin: 0; color: var(--text); font-size: 15px; font-weight: 700; }
.report-details select, .report-details textarea { width: 100%; margin: -4px 0 0; font-size: 16px; line-height: 1.45; }
.report-details select { min-height: 46px; }
.report-details textarea { min-height: 112px; resize: vertical; }
.report-form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.report-form-actions .btn { min-height: 44px; font-size: 15px; }
@media (max-width: 520px) {
  .report-details > form { width: min(100%, calc(100vw - 32px)); padding: 16px; }
  .report-form-actions .btn { width: 100%; justify-content: center; }
}
.moderation-consensus { display: grid; gap: 3px; margin: 8px 0; padding: 9px 10px; border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border)); border-radius: 9px; background: color-mix(in srgb, var(--accent) 5%, var(--card)); }
.moderation-consensus strong { font-size: 11px; }
.moderation-consensus span, .moderation-consensus em { color: var(--text-sub); font-size: 10px; font-style: normal; }
.moderation-consensus em { color: var(--accent); font-weight: 800; }
.moderation-decision { position: relative; }
.moderation-decision > form { display: grid; gap: 7px; min-width: 230px; margin-top: 7px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); box-shadow: var(--shadow); }
.moderation-decision select, .moderation-decision textarea { width: 100%; font-size: 11px; }
@media (max-width: 720px) {
  .public-club-hero.is-showcase-subpage { min-height: 0; padding: 15px; }
  .public-club-hero.is-showcase-subpage > .club-mark { width: 46px; height: 46px; font-size: 22px; }
  .public-club-presentation-cover { max-height: 300px; }
  .public-club-presentation-body { padding: 18px; }
  .public-club-hero:has(.public-club-cover) { min-height: 460px; }
  .public-club-hero:has(.public-club-cover)::after { background: linear-gradient(0deg, color-mix(in srgb, var(--card) 97%, transparent) 0%, color-mix(in srgb, var(--card) 82%, transparent) 72%, color-mix(in srgb, var(--card) 35%, transparent) 100%); }
  .public-club-cover { object-position: center top; }
  .public-club-editor { padding: 14px; }
  .public-editor-grid { grid-template-columns: 1fr; }
  .public-inline-editor-form { padding: 14px; }
  .community-council-guide { align-items: flex-start; flex-direction: column; }
  .community-vote-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .community-recommendation { grid-column: 1 / -1; }
  .community-vote-options { grid-template-columns: 1fr; }
}

/* Calendrier mobile inspiré de l’usage iPhone : commandes larges, grille aérée,
   rendez-vous visibles sans devoir zoomer. */
@media (max-width: 640px) {
  .layout-main > .card:has(.calendar-grid) { padding: 14px 10px 18px; border-radius: 20px; background: color-mix(in srgb, var(--card) 94%, #000); }
  .layout-main > .card:has(.calendar-grid) .calendar-nav { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 8px; align-items: center; margin: 0 0 16px; }
  .layout-main > .card:has(.calendar-grid) .calendar-nav .btn { min-height: 58px; padding: 8px 10px; border-radius: 18px; font-size: 16px; font-weight: 800; justify-content: center; }
  .layout-main > .card:has(.calendar-grid) .calendar-nav .btn:first-child { text-align: left; }
  .layout-main > .card:has(.calendar-grid) .calendar-nav .btn:last-child { text-align: right; }
  .calendar-month-title { font-size: 25px; line-height: 1.08; text-align: center; }
  .calendar-weekday-row, .calendar-week { gap: 5px; }
  .calendar-weekday { padding: 6px 0; font-size: 11px; letter-spacing: .03em; }
  .calendar-week { min-height: max(var(--calendar-week-height, 92px), 116px); margin-top: 5px; }
  .calendar-cell { min-height: max(var(--calendar-week-height, 92px), 116px); padding: 7px 5px; border-radius: 15px; background: color-mix(in srgb, var(--bg) 92%, var(--card)); }
  .calendar-cell.is-today { border-width: 2px; box-shadow: inset 0 0 0 1px var(--accent), 0 0 0 2px color-mix(in srgb, var(--accent) 13%, transparent); }
  .calendar-day-num { font-size: 15px; }
  .calendar-week-events { top: 40px; grid-auto-rows: 28px; gap: 5px; }
  .calendar-event-bar { min-height: 28px; padding: 4px 8px; border-radius: 14px; font-size: 11px; box-shadow: 0 4px 10px color-mix(in srgb, var(--accent) 22%, transparent); }
  .layout-side { margin-top: 4px; }
  .layout-side .side-widget:first-child { border-radius: 20px; padding: 18px 16px; }
  .layout-side .side-widget:first-child h3 { font-size: 17px; text-transform: none; letter-spacing: 0; }
  .upcoming-event-item { display: grid; grid-template-columns: 5px minmax(0, 1fr) auto; column-gap: 10px; align-items: center; padding: 14px 0; border-top: 1px solid var(--border); }
  .upcoming-event-item::before { content: ''; width: 5px; height: 48px; border-radius: 4px; background: var(--accent); grid-row: span 3; }
  .upcoming-event-date { grid-column: 2; color: var(--accent); font-size: 12px; font-weight: 800; }
  .upcoming-event-title { grid-column: 2; font-size: 16px; font-weight: 800; }
  .upcoming-event-item .page-sub { grid-column: 2; }
}

/* Module conseil-communautaire. Ordre défini dans manifest.json. */
@media (max-width: 640px) {
  .site-admin-hero { margin-top: 16px; padding: 20px; }
  .admin-kpi-grid, .admin-console-grid, .admin-recent-grid { grid-template-columns: 1fr; }
  .admin-kpi-grid .card { min-height: 0; }
  .admin-console-card { min-height: 0; }
  .site-settings-save { bottom: 8px; justify-content: stretch; }
  .site-settings-save .btn { flex: 1; justify-content: center; }
}

/* Module langage-visuel-commun-un-produit-unique-pas-une-somme-de-pages. Ordre défini dans manifest.json. */
/* ── Langage visuel commun : un produit unique, pas une somme de pages ── */
html { scroll-behavior: smooth; }
body { min-height: 100vh; letter-spacing: -.006em; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 200; padding: 10px 14px; border-radius: 10px; background: var(--accent); color: #fff; font-size: 13px; font-weight: 800; transform: translateY(-140%); transition: transform .16s ease; }
.skip-link:focus { transform: translateY(0); color: #fff; text-decoration: none; outline: 3px solid color-mix(in srgb, var(--accent) 30%, transparent); outline-offset: 3px; }
.site-header { background: color-mix(in srgb, var(--card) 88%, transparent); box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 78%, transparent), 0 8px 26px rgba(20, 24, 34, .035); }
html, body { overflow-x: hidden; }
@supports (backdrop-filter: blur(16px)) { .site-header { backdrop-filter: blur(16px) saturate(1.15); } }
.site-header .logo { letter-spacing: -.035em; }
.site-header .logo img { border-radius: 8px !important; }
.nav-link { min-height: 34px; border-radius: 10px; font-weight: 720; transition: color .16s ease, background .16s ease, box-shadow .16s ease; }
.nav-link:hover { background: color-mix(in srgb, var(--accent) 9%, var(--bg)); }
.nav-link.is-active, .nav-dropdown.is-active > .nav-link { background: color-mix(in srgb, var(--accent) 12%, var(--bg)); color: var(--accent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent); }
.nav-icon { display: inline-flex; align-items: center; justify-content: center; width: 17px; font-size: 16px; font-weight: 800; }
.space-switcher summary, .account-menu summary, .theme-toggle { border-radius: 11px; }
.search-form input { min-height: 38px; border-radius: 12px; background: color-mix(in srgb, var(--bg) 82%, var(--card)); }
.container { max-width: 1220px; padding-left: 24px; padding-right: 24px; }
#main-content { outline: none; }
.page-title { font-size: clamp(27px, 3.3vw, 38px); line-height: 1.1; letter-spacing: -.035em; }
.page-sub { line-height: 1.52; }
.card { border-radius: 18px; box-shadow: 0 1px 1px rgba(20, 24, 34, .025), 0 10px 30px rgba(20, 24, 34, .045); }
.btn { min-height: 38px; border-radius: 999px; padding: 8px 15px; font-weight: 750; }
.btn-primary { box-shadow: 0 5px 14px color-mix(in srgb, var(--accent) 25%, transparent); }
.btn-sm { min-height: 30px; padding: 4px 11px; border-radius: 999px; }
input[type=text], input[type=email], input[type=password], input[type=url], textarea, select { border-radius: 12px; background: color-mix(in srgb, var(--card) 70%, var(--bg)); transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
input[type=text]:focus, input[type=email]:focus, input[type=password]:focus, input[type=url]:focus, textarea:focus, select:focus { border-color: var(--accent); background: var(--card); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent); outline: none; }
.layout { gap: 20px; }
.layout-side { top: 112px; }
.side-widget { border-radius: 16px; }
.cat-row, .thread-row { border-radius: 13px; }
.cat-row:hover, .thread-row:hover { background: color-mix(in srgb, var(--accent) 5%, var(--bg)); }
.post-card { border-radius: 18px; }
.activity-row { border-radius: 12px; padding-left: 10px; padding-right: 10px; }
.activity-row:hover { background: color-mix(in srgb, var(--accent) 5%, var(--bg)); text-decoration: none; }
.forum-section-card, .community-pulse-main, .community-spotlight { border-radius: 18px; }
.forum-category-card { border-radius: 13px; }
.gallery-grid { gap: 8px; }
.gallery-tile { border-radius: 14px; }
.members-grid { gap: 16px; }
.member-card { border-radius: 18px; }
.calendar-cell { border-radius: 11px; }
.site-footer { margin-top: 40px; padding: 22px 0 10px; border-top: 1px solid var(--border); color: var(--text-sub); font-size: 12px; text-align: center; }
.discover-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(230px, .58fr); gap: 22px; align-items: end; margin: 24px 0 18px; padding: clamp(24px, 4vw, 38px); border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 22px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--card)), var(--card) 65%); box-shadow: var(--shadow); }
.discover-hero .page-title { max-width: 740px; margin: 6px 0 10px; font-size: clamp(30px, 4vw, 45px); letter-spacing: -.045em; }
.discover-hero p { max-width: 680px; margin: 0; color: var(--text-sub); line-height: 1.58; }
.discover-hero-note { padding: 17px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 15px; background: color-mix(in srgb, var(--card) 84%, transparent); }
.discover-hero-note span { display: block; margin-bottom: 7px; color: var(--accent); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.discover-hero-note strong { display: block; font-size: 14px; line-height: 1.42; }
.discover-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 20px 0 30px; }
.discover-section { margin: 26px 0 32px; }
.discover-section .home-section-head { margin-bottom: 11px; }
.discover-section .home-section-head h2 { margin: 4px 0 0; font-size: 21px; }
.discover-section .discover-grid { margin: 0; }
.discover-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; min-height: 108px; padding: 17px; border: 1px solid var(--border); border-radius: 17px; background: var(--card); box-shadow: var(--shadow); color: var(--text); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.discover-card:hover { border-color: color-mix(in srgb, var(--accent) 52%, var(--border)); box-shadow: var(--shadow-lift); color: var(--text); text-decoration: none; transform: translateY(-1px); }
.discover-card-icon { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid color-mix(in srgb, var(--accent) 14%, var(--border)); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 15%, var(--card)), color-mix(in srgb, var(--accent) 7%, var(--bg))); color: var(--accent); font-size: 22px; font-weight: 800; box-shadow: 0 6px 14px color-mix(in srgb, var(--accent) 10%, transparent); }
.discover-card strong, .discover-card small { display: block; }
.discover-card strong { font-size: 14px; }
.discover-card small { margin-top: 4px; color: var(--text-sub); font-size: 12px; line-height: 1.42; }
.discover-card em { color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; white-space: nowrap; }
.discover-card-muted .discover-card-icon { background: var(--bg); color: var(--text-sub); }
@media (max-width: 900px) {
  .container { padding-left: 16px; padding-right: 16px; }
  .site-header { box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 76%, transparent); }
  .nav-link.is-active, .nav-dropdown.is-active > .nav-link { box-shadow: none; }
  .layout-side { top: auto; }
  .discover-hero { grid-template-columns: 1fr; align-items: start; }
}
@media (max-width: 640px) {
  .page-title { font-size: 29px; }
  .card { border-radius: 16px; }
  .gallery-grid { gap: 5px; }
  .gallery-tile { border-radius: 10px; }
  .site-footer { margin-top: 28px; padding-bottom: 2px; }
  .discover-hero { margin-top: 16px; padding: 21px; border-radius: 18px; }
  .discover-hero .page-title { font-size: 31px; }
  .discover-grid { grid-template-columns: 1fr; gap: 8px; }
  .discover-card { min-height: 94px; padding: 14px; border-radius: 15px; }
  .discover-card em { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Navigation de l'administration — même langage visuel que le reste du site. */
.admin-nav.admin-nav-modern {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) repeat(4, auto);
  align-items: center;
  gap: 8px;
  min-height: 64px;
  margin: 18px 0 24px;
  padding: 9px;
  overflow: visible;
  border: 1px solid color-mix(in srgb, var(--border) 82%, var(--accent));
  border-radius: var(--radius-card);
  background: var(--surface-raised);
  box-shadow: var(--shadow);
}
.admin-nav-modern .admin-nav-brand {
  align-self: stretch;
  padding: 0 14px 0 4px;
  gap: 10px;
}

/* Module langage-visuel-commun-un-produit-unique-pas-une-somme-de-pages. Ordre défini dans manifest.json. */
.admin-nav-modern .admin-nav-brand-icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: color-mix(in srgb, var(--accent) 14%, var(--card));
  color: var(--accent);
  font-size: 18px;
}
.admin-nav-modern .admin-nav-brand strong { font-size: 13px; font-weight: 850; }
.admin-nav-modern .admin-nav-brand small { margin-top: 3px; font-size: 11px; }
.admin-nav-modern .admin-nav-primary {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex-wrap: wrap;
}
.admin-nav-modern .admin-nav-primary a,
.admin-nav-modern .admin-nav-dropdown summary {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  color: var(--text-sub);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
}
.admin-nav-modern .admin-nav-primary a > span,
.admin-nav-modern .admin-nav-dropdown summary > span {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent) 9%, var(--card));
  color: var(--accent);
  font-size: 14px;
}
.admin-nav-modern .admin-nav-primary a:hover,
.admin-nav-modern .admin-nav-dropdown summary:hover {
  border-color: color-mix(in srgb, var(--accent) 16%, var(--border));
  background: color-mix(in srgb, var(--accent) 7%, var(--card));
  color: var(--text);
}
.admin-nav-modern .admin-nav-primary a.is-active,
.admin-nav-modern .admin-nav-dropdown summary.is-active,
.admin-nav-modern .admin-nav-dropdown[open] summary {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--border));
  background: color-mix(in srgb, var(--accent) 13%, var(--card));
  color: var(--accent);
  box-shadow: none;
}
.admin-nav-modern .admin-nav-primary a.is-active > .admin-item-icon {
  background: var(--accent);
  color: #fff;
}
.admin-nav-modern .admin-nav-dropdown-panel {
  top: calc(100% + 9px);
  min-width: 220px;
  padding: 7px;
  border-radius: var(--radius-card);
  background: var(--surface-raised);
  box-shadow: var(--shadow-lift);
}
.admin-nav-modern .admin-nav-dropdown-panel a {
  min-height: 42px;
  padding: 8px 10px;
  border-radius: var(--radius-control);
  font-size: 13px;
}
.admin-nav-modern .admin-nav-dropdown-panel a span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent) 9%, var(--card));
}

@media (max-width: 1180px) {
  .admin-nav.admin-nav-modern { display: flex; flex-wrap: wrap; }
  .admin-nav-modern .admin-nav-primary { flex: 1 1 620px; }
}
@media (max-width: 760px) {
  .admin-nav.admin-nav-modern {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin: 12px 0 18px;
    padding: 10px;
    border-radius: 19px;
  }
  .admin-nav-modern .admin-nav-brand {
    width: 100%;
    margin: 0;
    padding: 2px 2px 10px;
  }
  .admin-nav-modern .admin-nav-primary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    padding: 0;
    overflow: visible;
  }
  .admin-nav-modern .admin-nav-primary a {
    width: 100%;
    min-width: 0;
    white-space: normal;
  }
  .admin-nav-modern .admin-nav-dropdown {
    display: block;
    width: 100%;
    margin: 0;
  }
  .admin-nav-modern .admin-nav-dropdown summary {
    display: flex;
    width: 100%;
  }
  .admin-nav-modern .admin-nav-dropdown summary b { margin-left: auto; }
  .admin-nav-modern .admin-nav-dropdown-panel {
    position: static;
    min-width: 0;
    max-height: none;
    margin-top: 5px;
    padding: 5px;
    box-shadow: none;
  }
  .admin-nav-modern .admin-nav-dropdown-panel a { white-space: normal; }
}
@media (max-width: 390px) {
  .admin-nav-modern .admin-nav-primary { grid-template-columns: 1fr; }
}

/* Module espaces-clubs-agendas-et-comptes-rendus. Ordre défini dans manifest.json. */
/* ── Espaces clubs : agendas et comptes rendus ── */
.club-calendar-hub { margin-top: 16px; padding: 20px; border-color: color-mix(in srgb, var(--accent) 24%, var(--border)); }
.club-calendar-hub .page-sub { max-width: 700px; margin: 0 0 14px; }
.calendar-picker { display: flex; flex-wrap: wrap; gap: 8px; }
.calendar-picker-item { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 7px 11px; border: 1px solid var(--border); border-radius: 999px; color: var(--text); font-size: 13px; font-weight: 720; }
.calendar-picker-item:hover, .calendar-picker-item.is-selected { border-color: color-mix(in srgb, var(--accent) 48%, var(--border)); background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--accent); text-decoration: none; }
.calendar-picker-item small { color: var(--text-sub); font-size: 10px; font-weight: 750; }
.calendar-picker-dot { display: inline-block; flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 10%, transparent); }
.calendar-subscription { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.calendar-subscription strong { display: block; font-size: 14px; }
.calendar-subscription p { margin: 4px 0 0; color: var(--text-sub); font-size: 12px; line-height: 1.45; }
.calendar-feed-ready { min-width: min(100%, 420px); }
.calendar-feed-ready label { display: block; margin-bottom: 5px; font-size: 11px; font-weight: 800; }
.calendar-feed-ready input { width: 100%; min-height: 36px; padding: 7px 10px; font-size: 11px; }
.calendar-feed-ready small { display: block; margin-top: 8px; color: var(--text-sub); font-size: 11px; line-height: 1.42; }
.calendar-feed-actions, .meeting-detail-actions, .meeting-form-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.calendar-feed-actions form, .meeting-detail-actions form { margin: 0; }
.club-calendar-management-list { display: grid; gap: 8px; margin: 14px 0; }
.club-calendar-management-list > div { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 12px; }
.club-calendar-management-list > div > span:nth-child(2) { display: grid; flex: 1; gap: 2px; }
.club-calendar-management-list small { color: var(--text-sub); font-size: 11px; }
.club-calendar-management-list em { color: var(--accent); font-size: 11px; font-style: normal; font-weight: 800; }
.calendar-create-form { display: grid; grid-template-columns: minmax(180px, .9fr) 90px minmax(220px, 1.4fr) auto; gap: 10px; align-items: end; padding-top: 14px; border-top: 1px solid var(--border); }
.calendar-create-form label { margin-top: 0; font-size: 11px; }
.calendar-create-form input { margin-top: 5px; }
.calendar-create-form input[type=color] { min-height: 38px; padding: 3px; }
.club-meeting-hero, .club-meeting-detail-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-end; margin: 18px 0; padding: 24px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--card)), var(--card) 66%); }
.club-meeting-hero h1, .club-meeting-detail-head h1 { margin: 5px 0 8px; }
.club-meeting-hero p, .club-meeting-detail-head p { margin: 0; color: var(--text-sub); line-height: 1.5; }
.club-meeting-search { padding: 16px; }
.club-meeting-search label { display: block; margin-top: 0; font-size: 12px; font-weight: 800; }
.club-meeting-search form > div { display: flex; gap: 8px; margin-top: 7px; }
.club-meeting-search input { flex: 1; margin: 0; }
.club-meeting-list { display: grid; gap: 9px; margin-top: 16px; }
.club-meeting-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 16px; color: var(--text); }
.club-meeting-row:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); color: var(--text); text-decoration: none; }
.club-meeting-row time { display: grid; gap: 3px; color: var(--accent); font-size: 12px; }
.club-meeting-row time small, .club-meeting-row > span small { color: var(--text-sub); font-size: 11px; }
.club-meeting-row > span { display: grid; gap: 4px; min-width: 0; }
.club-meeting-row > span strong, .club-meeting-row > span small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.club-meeting-row > em { color: var(--accent); font-size: 12px; font-style: normal; font-weight: 800; }
.club-meeting-editor { max-width: 860px; }
.meeting-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 14px; }
.meeting-status-choice { display: grid; gap: 8px; margin: 18px 0 0; padding: 14px; border: 1px solid var(--border); border-radius: 13px; }
.meeting-status-choice legend { padding: 0 5px; font-size: 12px; font-weight: 800; }
.meeting-status-choice label { display: flex; align-items: flex-start; gap: 8px; margin: 0; cursor: pointer; }
.meeting-status-choice input { margin-top: 3px; }
.meeting-status-choice span { display: grid; gap: 2px; }
.meeting-status-choice small { color: var(--text-sub); font-size: 11px; line-height: 1.4; }
.meeting-optional-link { margin-top: 14px; }
.meeting-optional-link summary { color: var(--accent); cursor: pointer; font-size: 12px; font-weight: 800; }
.meeting-optional-link select { width: 100%; margin-top: 8px; }
.meeting-document { max-width: 900px; margin: 18px 0 26px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.meeting-email-subscription { max-width: 1100px; display: grid; gap: 18px; margin: 18px 0; padding: 20px; border: 1px solid color-mix(in srgb, var(--accent) 26%, var(--border)); border-radius: 18px; background: linear-gradient(100deg, color-mix(in srgb, var(--accent) 7%, var(--card)), var(--card) 64%); }
.meeting-email-subscription h2 { margin: 4px 0; font-size: 17px; }
.meeting-email-subscription p { margin: 0; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.meeting-email-subscription-intro{display:flex;align-items:center;gap:13px}.meeting-email-icon{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:14px;background:var(--accent-soft);font-size:22px}
.meeting-email-subscription-actions { display: grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap: 10px; }
.meeting-email-subscription-actions form { display:flex;align-items:center;gap:14px;min-width:0;margin:0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--card); }
.meeting-email-subscription-actions form>span{display:grid;gap:3px;min-width:0;flex:1}.meeting-email-subscription-actions strong{color:var(--text);font-size:13px}.meeting-email-subscription-actions small{color:var(--text-sub);font-size:11px;line-height:1.4}.meeting-email-subscription-actions .btn{flex:0 0 auto;min-height:38px;white-space:nowrap}
.meeting-document-section { padding: 22px 4px; border-bottom: 1px solid var(--border); }
.meeting-document-section:last-child { border-bottom: 0; }
.meeting-document-section h2 { margin: 0 0 10px; font-size: 18px; letter-spacing: -.015em; }
.meeting-document-section .post-body { line-height: 1.72; }
.meeting-document-key { background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 72%); }
.meeting-discussion { max-width: 900px; padding-top: 4px; }
.meeting-discussion h2 { margin: 5px 0 5px; font-size: 22px; }
.meeting-discussion > div > p { margin: 0; color: var(--text-sub); line-height: 1.5; }
.meeting-comment-list { display: grid; gap: 10px; margin: 18px 0; }
.meeting-comment { display: flex; gap: 10px; padding: 13px 0; border-top: 1px solid var(--border); }
.meeting-comment > .avatar { width: 34px; height: 34px; flex: none; }
.meeting-comment > div { min-width: 0; flex: 1; }
.meeting-comment header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 5px; }
.meeting-comment header a { font-size: 13px; font-weight: 800; }
.meeting-comment time { color: var(--text-sub); font-size: 10px; }
.meeting-comment .post-body { font-size: 13px; line-height: 1.55; }
.meeting-no-comments { margin: 18px 0; color: var(--text-sub); font-size: 13px; }
.meeting-comment-form { display: grid; gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--border); }
.meeting-comment-form label { margin: 0; }
.meeting-comment-form textarea { min-height: 100px; }
@media (max-width: 720px) {
  .calendar-subscription, .club-meeting-hero, .club-meeting-detail-head, .meeting-email-subscription { grid-template-columns: 1fr; display: grid; align-items: start; }
  .meeting-email-subscription-actions { justify-content: flex-start; }
  .calendar-create-form, .meeting-form-grid { grid-template-columns: 1fr; }
  .calendar-create-form > div:last-child { margin-top: 2px; }
  .club-meeting-search form > div { flex-wrap: wrap; }
  .club-meeting-search input { min-width: 100%; }
  .club-meeting-row { grid-template-columns: 1fr auto; gap: 7px 11px; }
  .club-meeting-row time { grid-column: 1 / -1; display: flex; gap: 8px; }
  .club-meeting-row > em { align-self: center; }
}
@media (max-width:760px){.meeting-email-subscription{padding:16px}.meeting-email-subscription-actions{grid-template-columns:1fr}.meeting-email-subscription-actions form{align-items:stretch;flex-direction:column}.meeting-email-subscription-actions .btn{width:100%}.meeting-email-subscription-intro{align-items:flex-start}}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
/* ── Inscription protégée et règlement ── */
.signup-hero, .rules-hero { max-width: 760px; margin: 24px auto 18px; text-align: center; }
.signup-hero .page-title, .rules-hero .page-title { margin: 6px 0 8px; }
.signup-hero p, .rules-hero p { margin: 0; color: var(--text-sub); line-height: 1.55; }
.signup-card { max-width: 500px; margin: 0 auto; padding: 24px; }
.signup-human-check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 11px; margin-top: 20px; padding: 15px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 14px; background: color-mix(in srgb, var(--accent) 6%, var(--card)); }
.signup-human-check > span { display: flex; align-items: center; justify-content: center; width: 29px; height: 29px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 14px; font-weight: 900; }
.signup-human-check strong { display: block; font-size: 13px; }
.signup-human-check p { margin: 2px 0 10px; color: var(--text-sub); font-size: 12px; line-height: 1.43; }
.signup-photo-challenges { display: grid; gap: 10px; }
.signup-photo-challenges fieldset { margin: 0; padding: 11px; border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border)); border-radius: 11px; background: color-mix(in srgb, var(--card) 82%, transparent); }
.signup-photo-challenges legend { padding: 0; color: var(--text); font-size: 12px; font-weight: 800; line-height: 1.42; }
.signup-photo-challenges legend span { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-right: 4px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 10px; }
.signup-photo-challenges fieldset > p { margin: 6px 0 8px; font-size: 11px; }
.signup-photo-challenges fieldset > div { display: grid; gap: 5px; }
.signup-photo-challenges label { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 7px 8px; border: 1px solid var(--border); border-radius: 9px; background: var(--card); color: var(--text); font-size: 11px; font-weight: 700; line-height: 1.36; cursor: pointer; }
.signup-photo-challenges label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 60%, var(--border)); background: color-mix(in srgb, var(--accent) 9%, var(--card)); color: var(--accent); }
.signup-photo-challenges input { flex: none; width: 15px; height: 15px; margin: 0; accent-color: var(--accent); }
.signup-rules-accept { display: flex; align-items: flex-start; gap: 9px; margin-top: 17px; color: var(--text); font-size: 12px; font-weight: 650; line-height: 1.45; cursor: pointer; }
.signup-rules-accept input { flex: none; width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--accent); }
.signup-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.signup-profile-basics, .profile-photo-details { margin-top: 20px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--accent) 4%, var(--card)); }
.signup-section-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 13px; }
.signup-section-head > span { display: flex; align-items: center; justify-content: center; width: 31px; height: 31px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 12%, var(--bg)); font-size: 16px; }
.signup-section-head strong { display: block; font-size: 13px; }
.signup-section-head p { margin: 2px 0 0; color: var(--text-sub); font-size: 11px; line-height: 1.42; }
.signup-profile-basics > label, .profile-photo-details > label { margin-top: 12px; }
.signup-profile-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.signup-profile-grid label { display: block; margin-top: 12px; font-size: 12px; font-weight: 800; }
.signup-profile-grid select, .signup-profile-grid input { width: 100%; margin-top: 5px; }
.signup-photo-interests { margin: 15px 0 0; padding: 0; border: 0; }
.signup-photo-interests legend { padding: 0; color: var(--text); font-size: 12px; font-weight: 800; }
.signup-photo-interests legend span { color: var(--text-sub); font-weight: 500; }
.signup-photo-interests > div { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.signup-photo-interests label { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; margin: 0; padding: 5px 8px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--text); font-size: 11px; font-weight: 700; cursor: pointer; }
.signup-photo-interests label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--accent); }
.signup-photo-interests input { width: 14px; height: 14px; margin: 0; accent-color: var(--accent); }
.profile-photo-details { margin: 18px 0; }
.profile-photo-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.profile-photo-summary span { padding: 5px 8px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 999px; background: color-mix(in srgb, var(--accent) 7%, var(--card)); color: var(--text-sub); font-size: 11px; font-weight: 700; }
.rules-hero { max-width: 810px; }
.forum-rules { max-width: 860px; margin: 0 auto; padding: clamp(20px, 4vw, 34px); }
.forum-rules-intro { display: flex; align-items: center; gap: 12px; margin-bottom: 23px; padding: 14px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 15px; background: color-mix(in srgb, var(--accent) 7%, var(--card)); }
.forum-rules-intro > span { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; background: var(--card); font-size: 19px; }
.forum-rules-intro strong, .forum-rules-intro small { display: block; }
.forum-rules-intro strong { font-size: 14px; }
.forum-rules-intro small { margin-top: 2px; color: var(--text-sub); font-size: 11px; }
.forum-rules .post-body { color: var(--text); font-size: 14px; line-height: 1.72; }
.forum-rules .post-body strong { color: var(--accent); }
.forum-rules-footer { margin-top: 24px; padding-top: 15px; border-top: 1px solid var(--border); color: var(--text-sub); font-size: 12px; }
.forum-rules-footer span { color: var(--text); font-weight: 800; }
@media (max-width: 640px) {
  .signup-hero, .rules-hero { margin-top: 16px; text-align: left; }
  .signup-card { padding: 19px; }
  .signup-human-check { padding: 13px; }
  .signup-profile-grid { grid-template-columns: 1fr; gap: 0; }
  .forum-rules { padding: 19px; }
  .forum-rules-intro { align-items: flex-start; }
}
.help-page{max-width:1180px;margin:0 auto;padding:34px 20px 70px}.help-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:34px 0 26px}.help-hero .page-title{max-width:720px;margin:6px 0 8px}.help-hero-icon{display:grid;place-items:center;width:86px;height:86px;border-radius:26px;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent);font-size:42px}.help-search{position:sticky;top:74px;z-index:5;padding:18px 20px;margin-bottom:26px}.help-search label{display:block;font-size:13px;font-weight:800;color:var(--text-sub);margin-bottom:8px}.help-search-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:13px;padding:0 12px;background:var(--bg)}.help-search-row>span{font-size:25px;color:var(--text-sub)}.help-search-row input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:16px;padding:13px 0;outline:0}.help-clear{border:0;background:transparent;color:var(--accent);font:inherit;font-weight:700;cursor:pointer}.help-tools{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:13px}.help-tools>span{margin-right:auto;color:var(--text-sub);font-size:12px;font-weight:700}.help-filter{border:1px solid var(--border);background:var(--card);color:var(--text-sub);border-radius:999px;padding:6px 11px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.help-filter:hover,.help-filter.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}.help-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:start}.help-index{position:sticky;top:230px;padding:16px}.help-index strong{display:block;margin-bottom:9px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-sub)}.help-index a{display:block;padding:8px 9px;border-radius:8px;color:var(--text);font-size:13px;font-weight:650}.help-index a:hover{background:var(--bg);color:var(--accent);text-decoration:none}.help-section{margin-bottom:38px;scroll-margin-top:220px}.help-section-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}.help-section-heading>span{color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.1em;padding-top:7px}.help-section-heading h2{margin:0;font-size:24px}.help-section-heading p{margin:3px 0 0;color:var(--text-sub);font-size:14px}.help-item{border-top:1px solid var(--border);padding:0 4px}.help-item:last-child{border-bottom:1px solid var(--border)}.help-item summary{cursor:pointer;list-style:none;padding:16px 30px 16px 0;position:relative;font-size:15px;font-weight:750;color:var(--text)}.help-item summary::-webkit-details-marker{display:none}.help-item summary:after{content:'+';position:absolute;right:4px;top:13px;color:var(--accent);font-size:22px;font-weight:400}.help-item[open] summary:after{content:'–'}.help-item[open] summary{color:var(--accent)}.help-item p{max-width:760px;margin:-3px 30px 17px 0;color:var(--text-sub);font-size:14px;line-height:1.7}.help-item code{font-size:.9em;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 4px}.help-empty{padding:28px;text-align:center}.help-empty strong{font-size:17px}.help-empty p{color:var(--text-sub)}@media(max-width:760px){.help-page{padding:18px 14px 52px}.help-hero{padding:18px 0 22px}.help-hero-icon{width:58px;height:58px;border-radius:18px;font-size:28px}.help-hero .page-title{font-size:28px}.help-search{top:8px;padding:14px;margin-bottom:22px}.help-tools>span{width:100%;margin:0 0 2px}.help-layout{display:block}.help-index{position:static;display:flex;gap:5px;overflow:auto;margin-bottom:30px;padding:7px}.help-index strong{display:none}.help-index a{white-space:nowrap;font-size:12px;padding:8px 10px}.help-section-heading h2{font-size:21px}.help-item summary{font-size:14px;padding:15px 26px 15px 0}.help-item p{font-size:13px}}
.registration-pending-card{text-align:center;max-width:560px;margin:0 auto 60px;padding:30px}.registration-pending-icon{font-size:42px;margin-bottom:8px}.registration-pending-card h2{margin:0 0 8px}.registration-pending-card .page-sub{margin:8px auto 22px;max-width:440px}
.mobile-admin-shortcuts{margin:8px 0 2px;padding:8px 0 2px;border-top:1px solid var(--border)}.mobile-admin-shortcuts .mobile-nav-label{margin-top:0}.mobile-admin-shortcuts .mobile-nav-action{color:var(--accent);font-weight:750}

.site-banner {
  background: linear-gradient(135deg, rgba(59,111,214,.14), rgba(42,168,120,.16));
  border-bottom: 1px solid rgba(59,111,214,.22);
  color: var(--text);
}
.site-banner-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 12px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  text-align: center;
  font-weight: 650;
}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.site-banner-icon {
  color: var(--accent);
  font-size: 1.05rem;
}
.site-banner-text {
  flex: 1 1 560px;
  min-width: 0;
  max-width: 820px;
  line-height: 1.45;
}
.site-banner-link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 8px;
  background: var(--accent);
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
}
.site-banner-link:hover {
  filter: brightness(.95);
  color: #fff;
}
@media (max-width: 640px) {
  .site-banner-inner {
    align-items: stretch;
    padding: 11px 14px;
  }
  .site-banner-icon {
    display: none;
  }
  .site-banner-text { flex-basis: 100%; max-width: none; }
  .site-banner-link {
    justify-content: center;
    width: 100%;
  }
}

.site-banner-close {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: rgba(255,255,255,.72);
  color: var(--muted);
  cursor: pointer;
  font-size: 1.35rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.site-banner-close:hover,
.site-banner-close:focus-visible {
  color: var(--text);
  background: rgba(255,255,255,.95);
  outline: 2px solid rgba(59,111,214,.28);
  outline-offset: 2px;
}
.site-banner[hidden] {
  display: none;
}
@media (max-width: 640px) {
  .site-banner-close {
    position: absolute;
    top: 8px;
    right: 8px;
  }
  .site-banner-inner {
    position: relative;
    padding-right: 46px;
  }
}

.analytics-period-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 14px 0 18px;
}
.analytics-period-tabs a {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  text-decoration: none;
  color: var(--text);
  font-weight: 700;
  background: var(--card);
}
.analytics-period-tabs a.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.analytics-stat-grid strong {
  font-variant-numeric: tabular-nums;
}
.analytics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.analytics-card {
  overflow: hidden;
}
.analytics-bars {
  display: grid;
  gap: 10px;
}
.analytics-bar-row {
  display: grid;
  grid-template-columns: 110px minmax(120px, 1fr) 56px 84px;
  align-items: center;
  gap: 10px;
  font-size: .94rem;
}
.analytics-bar-row strong,
.analytics-table-row strong {
  font-variant-numeric: tabular-nums;
}
.analytics-bar-track {
  height: 10px;
  border-radius: 999px;
  background: var(--soft);
  overflow: hidden;
}
.analytics-bar-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), #2aa878);
}
.analytics-table {
  display: grid;
  gap: 0;
}
.analytics-table-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 70px 110px;
  gap: 10px;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid var(--border);
}
.analytics-table-row:first-child {
  border-top: 0;
}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.analytics-table-row a,
.analytics-table-row > span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.analytics-note {
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--soft);
  color: var(--muted);
}
.analytics-note span {
  display: block;
  color: var(--text);
  font-weight: 800;
  margin-bottom: 4px;
}
.analytics-note p {
  margin: 0;
}
@media (max-width: 760px) {
  .analytics-grid {
    grid-template-columns: 1fr;
  }
  .analytics-bar-row {
    grid-template-columns: 1fr 54px;
  }
  .analytics-bar-row span,
  .analytics-bar-row small {
    grid-column: 1 / -1;
  }
  .analytics-table-row {
    grid-template-columns: 1fr 58px;
  }
  .analytics-table-row > span:last-child {
    grid-column: 1 / -1;
  }
}

/* Navigation des espaces club/interclub, alignée sur le design de l'administration. */
.context-nav {
  border-bottom: 0;
  background: transparent;
  padding: 14px 20px 0;
}
.context-nav-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 46px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 6px 8px 6px 14px;
  overflow-x: auto;
  scrollbar-width: none;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--card) 90%, transparent);
  box-shadow: var(--shadow);
}
.context-nav-inner::-webkit-scrollbar {
  display: none;
}
.context-nav-title {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--text-sub);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.context-nav-title > span:first-child {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
}
.context-nav-title strong {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}
.context-nav-inner a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 31px;
  padding: 6px 9px;
  border-radius: 9px;
  color: var(--text-sub);
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}
.context-nav-inner a:hover {
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg));
  text-decoration: none;
}
.context-nav-inner a.is-active {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 28%, transparent);
}
.context-nav-inner a > span {
  font-size: 14px;
  line-height: 1;
}
.context-nav-inner .context-nav-manage {
  margin-left: auto;
  color: var(--accent);
}
.context-nav-inner .context-nav-manage.is-active {
  color: #fff;
}
@media (max-width: 760px) {
  .context-nav {
    padding: 10px 12px 0;
  }
  .context-nav-inner {
    gap: 6px;
    padding-left: 8px;
  }
  .context-nav-title > span:nth-child(2) {
    display: none;
  }
  .context-nav-title strong {
    max-width: 116px;
  }
  .context-nav-inner a {
    min-height: 36px;
    padding: 7px 9px;
    font-size: 12px;
  }
  .context-nav-inner .context-nav-manage {
    margin-left: 0;
  }
}


.contact-hero {
  margin: 22px 0 16px;
  max-width: 760px;
}
.contact-card {
  max-width: 860px;
}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.admin-mail-row.is-muted {
  opacity: .62;
}
.admin-email-thread {
  margin-bottom: 16px;
}
.admin-mail-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 14px;
}
.admin-mail-detail-head p {
  margin: 6px 0 0;
  color: var(--text-sub);
}
@media (max-width: 640px) {
  .admin-mail-detail-head {
    display: block;
  }
  .admin-mail-detail-head form {
    margin-top: 12px;
  }
}


.member-profile-link { display: block; color: inherit; text-decoration: none; }
.member-profile-link:hover { color: inherit; text-decoration: none; }
.member-contact-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; margin-top: 11px; padding: 7px 11px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 7%, var(--card)); color: var(--accent); font-size: 12px; font-weight: 800; text-decoration: none; }
.member-contact-btn:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--card)); color: var(--accent); text-decoration: none; }
.member-contact-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 28px; height: 28px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); border-radius: 9px; background: color-mix(in srgb, var(--accent) 7%, var(--card)); color: var(--accent); font-size: 13px; font-weight: 800; line-height: 1; text-decoration: none; }
.member-contact-icon:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 13%, var(--card)); color: var(--accent); text-decoration: none; }
.member-inline-contact { display: inline-flex; align-items: center; gap: 6px; vertical-align: middle; }
.post-contact-btn { width: 100%; max-width: 108px; margin: 8px auto 6px; padding: 6px 9px; }
.club-member-row-wrap { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--border); }
.club-member-row-wrap .club-member-row { flex: 1; min-width: 0; border-top: 0; }

.avatar-fallback-hidden { display: none; }


.public-article-list { display: grid; gap: 12px; }
.public-article-list article { padding: 12px 0; border-top: 1px solid var(--border); }
.public-article-list article:first-child { border-top: 0; padding-top: 0; }
.public-article-list h3, .public-article-grid h3 { margin: 0 0 5px; }
.public-article-list p, .public-article-grid p { margin: 0 0 6px; color: var(--text-sub); line-height: 1.5; }
.public-article-list small, .public-article-grid span { color: var(--text-sub); font-size: 12px; font-weight: 700; }
.public-article-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.public-article-grid article { border: 1px solid var(--border); border-radius: 14px; background: var(--card); padding: 14px; }
.public-article-grid img, .public-article-detail > img { width: 100%; max-height: 320px; object-fit: cover; border-radius: 12px; margin-bottom: 12px; }
.public-article-detail { padding: 24px; }
.public-article-detail h2 { margin: 4px 0 6px; font-size: clamp(28px, 5vw, 46px); line-height: 1.05; }
.public-member-strip { display: flex; flex-wrap: wrap; gap: 10px; }
.public-member-strip a { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid var(--border); border-radius: 999px; color: var(--text); text-decoration: none; }
.public-member-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.public-member-grid article { padding: 16px; border: 1px solid var(--border); border-radius: 14px; text-align: center; background: var(--card); }
.public-member-grid .avatar-lg { width: 64px; height: 64px; margin: 0 auto 10px; }
.public-member-grid h3 { margin: 0 0 5px; }
.public-member-grid p { margin: 0; color: var(--text-sub); font-size: 12px; line-height: 1.35; }
@media (max-width: 760px) { .public-article-grid, .public-member-grid { grid-template-columns: 1fr; } .public-club-actions { align-items: stretch; } .public-club-actions .btn, .public-club-actions form, .public-club-actions button { width: 100%; justify-content: center; } }


.cover-upload-control { display: grid; gap: 8px; align-items: start; }
.cover-upload-control img { width: 100%; max-height: 160px; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); }
.cover-upload-control .field-hint { margin: 0; }


.club-mail-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
}
.club-mail-row > span {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.club-mail-row strong,
.club-mail-row small,
.club-mail-row em {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.club-mail-row b {
  white-space: nowrap;
  font-size: 13px;
}
@media (max-width: 720px) {
  .club-mail-row {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .club-mail-row b {
    justify-self: start;
  }
}


.club-mail-bulk .admin-mail-list {
  padding: 12px;
}
.club-mail-row {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.club-mail-row > input {
  width: 18px;
  height: 18px;
}
.club-mail-row > a {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  color: inherit;
  text-decoration: none;
}
.club-mail-row > a > span {
  min-width: 0;
  display: grid;
  gap: 4px;
}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.club-mail-row strong,
.club-mail-row small,
.club-mail-row em {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.club-mail-row b {
  white-space: nowrap;
  font-size: 13px;
}
.mail-detail-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media (max-width: 720px) {
  .club-mail-row {
    align-items: start;
  }
  .club-mail-row > a {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .club-mail-row b {
    justify-self: start;
  }
  .mail-detail-actions {
    justify-content: flex-start;
  }
}


.text-align-center {
  display: block;
  text-align: center;
}
.public-club-description {
  color: var(--text-sub);
  line-height: 1.55;
  max-width: 920px;
}
.public-club-hero .public-club-description p,
.public-club-hero .public-club-description div {
  margin: 0;
}

/* Administration des espaces : pages dédiées et navigation persistante */
.real-space-admin-menu { display:flex; align-items:center; gap:8px; flex-wrap:nowrap; margin:0 0 22px; padding:9px 12px; background:var(--card); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow); }
.real-space-admin-brand { display:flex; align-items:center; gap:8px; min-width:170px; }
.real-space-admin-brand .club-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:11px; background:color-mix(in srgb,var(--accent) 12%,var(--bg)); font-size:20px; }
.real-space-admin-brand div { display:grid; gap:2px; }
.real-space-admin-brand strong { font-size:14px; color:var(--text); }
.real-space-admin-brand small { color:var(--text-sub); font-size:10px; }
.real-space-admin-links { display:flex; align-items:center; gap:1px; flex:1 1 auto; min-width:0; flex-wrap:wrap; overflow:visible; }
.real-space-admin-links a { display:inline-flex; align-items:center; gap:5px; padding:7px 7px; border-radius:9px; color:var(--text-sub); font-weight:700; font-size:12px; text-decoration:none; white-space:nowrap; }
.real-space-admin-links a:hover, .real-space-admin-links a.is-active { color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--card)); }
.real-space-admin-links a span { font-size:14px; }
.real-space-admin-exit { color:var(--accent); font-size:12px; font-weight:700; text-decoration:none; white-space:nowrap; }
.real-admin-page-head { display:flex; justify-content:space-between; gap:22px; margin:12px 0 22px; }
.real-admin-page-head p { color:#747d8a; margin:8px 0 0; }
.real-admin-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; padding:26px 28px; border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border)); border-radius:22px; background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--card)),var(--card)); }
.real-admin-hero h1 { margin:6px 0 0; }
.real-admin-hero p { color:var(--text-sub); margin:8px 0 0; }
.real-admin-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; }
.real-admin-stat-grid a, .real-admin-stat-grid > div { display:block; padding:18px; background:var(--card); border:1px solid var(--border); border-radius:16px; text-decoration:none; }
.real-admin-stat-grid strong { display:block; font-size:28px; color:#217bf3; }
.real-admin-stat-grid span { display:block; margin-top:5px; color:var(--text-sub); font-size:13px; font-weight:700; }
.real-admin-card { margin:18px 0; padding:22px; background:var(--card); border:1px solid var(--border); border-radius:20px; box-shadow:var(--shadow); }
.real-admin-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; }
.real-admin-card h2 { margin:4px 0 0; font-size:20px; }
.real-admin-card-head p { color:var(--text-sub); margin:6px 0 0; }
.real-admin-two-col { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.real-admin-form { display:grid; gap:12px; }
.real-admin-form label { color:var(--text); font-size:13px; font-weight:700; }
.real-admin-form input[type=text], .real-admin-form input[type=email], .real-admin-form input[type=number], .real-admin-form textarea, .real-admin-form select { width:100%; min-height:44px; box-sizing:border-box; padding:10px 12px; border:1px solid var(--border); border-radius:11px; background:var(--bg); color:var(--text); font:inherit; }
.real-admin-form textarea { min-height:110px; resize:vertical; }
.real-admin-list { display:grid; gap:8px; }
.real-admin-section-stack { display:grid; gap:12px; }
.real-admin-subsection { overflow:hidden; border:1px solid var(--border); border-radius:14px; background:var(--card); }
.real-admin-subsection > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; background:color-mix(in srgb,var(--accent) 5%,var(--card)); border-bottom:1px solid var(--border); }
.real-admin-subsection > header strong, .real-admin-subsection > header small { display:block; }
.real-admin-subsection > header strong { font-size:14px; }
.real-admin-subsection > header small { margin-top:2px; color:var(--text-sub); font-size:11px; }
.real-admin-subsection > header > span { color:var(--accent); font-size:18px; }
.real-admin-subsection .real-admin-list { padding:7px; }
.real-admin-list > a, .real-admin-list > div { display:flex; align-items:center; gap:12px; min-height:54px; padding:10px 12px; border:1px solid var(--border); border-radius:13px; color:inherit; text-decoration:none; }
.real-admin-list > a:hover { border-color:color-mix(in srgb,var(--accent) 40%,var(--border)); background:color-mix(in srgb,var(--accent) 6%,var(--card)); }
.real-admin-list-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:10px; background:color-mix(in srgb,var(--accent) 12%,var(--bg)); font-size:18px; }
.real-admin-list strong, .real-admin-list small { display:block; }
.real-admin-list small { margin-top:3px; color:var(--text-sub); }
.real-admin-list em { margin-left:auto; color:#7b8491; font-size:12px; font-style:normal; }
.real-admin-tag-list { display:flex; flex-wrap:wrap; gap:8px; }
.real-admin-tag-list span { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid #dfe5ee; border-radius:999px; background:#fafcff; font-size:13px; font-weight:700; }
.real-admin-tag-list i { width:8px; height:8px; border-radius:50%; background:#3687ef; }
.real-admin-action-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.real-admin-action-grid-large { grid-template-columns:repeat(3,minmax(0,1fr)); }
.real-admin-action-grid a { display:grid; gap:7px; padding:18px; border:1px solid var(--border); border-radius:16px; background:var(--card); color:inherit; text-decoration:none; }
.real-admin-action-grid a:hover { border-color:color-mix(in srgb,var(--accent) 40%,var(--border)); box-shadow:var(--shadow); }
.real-admin-action-grid a > span { color:#237af2; font-size:23px; }
.real-admin-action-grid small { color:var(--text-sub); line-height:1.45; }
.real-admin-action-grid em { color:#237af2; font-size:12px; font-style:normal; font-weight:800; }
.real-admin-inline-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.real-admin-check-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.real-admin-check { display:flex; align-items:center; gap:8px; padding:10px; border:1px solid #e2e7ef; border-radius:11px; font-weight:600 !important; }
.real-admin-check span { font-size:18px; }
.real-admin-status { display:inline-flex; align-items:center; padding:7px 10px; border-radius:999px; background:#f4f5f7; color:#7a8491; font-size:12px; font-weight:800; }
.real-admin-status.is-live { background:#eaf8f0; color:#16814a; }

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.real-admin-switch { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--border); border-radius:13px; background:color-mix(in srgb,var(--accent) 7%,var(--card)); color:var(--text); transition:border-color .16s ease,background .16s ease; }
.real-admin-switch:has(input:checked) { border-color:color-mix(in srgb,var(--accent) 48%,var(--border)); background:color-mix(in srgb,var(--accent) 13%,var(--card)); }
.real-admin-switch:focus-within { outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent); outline-offset:2px; }
.real-admin-switch input { flex:none; width:18px; height:18px; accent-color:var(--accent); }
.real-admin-switch strong, .real-admin-switch small { display:block; }
.real-admin-switch strong { color:var(--text); }
.real-admin-switch small { margin-top:3px; color:var(--text-sub); font-weight:400; }
.real-admin-list-spaced { margin-top:22px; }
.real-admin-list-spaced form { margin-left:auto; }
.real-admin-form-inline { display:grid; grid-template-columns:1.3fr .5fr 1.4fr auto; align-items:end; gap:10px; margin-top:20px; padding-top:18px; border-top:1px solid #edf0f4; }
.real-admin-form-inline label { display:grid; gap:6px; }
.real-admin-form-inline input { min-height:42px; }
.real-admin-callout { margin:0; padding:12px 14px; border-radius:12px; background:#f6f8fb; color:#687383; line-height:1.5; }
.real-admin-count { display:inline-grid; place-items:center; min-width:30px; height:30px; padding:0 8px; border-radius:999px; background:#edf4ff; color:#237af2; font-weight:800; }
.real-admin-inline-actions select { min-height:34px; padding:6px 8px; border:1px solid #d8dee8; border-radius:8px; background:#fff; }
.real-admin-tag-row { border:1px solid #e6eaf0; border-radius:13px; overflow:hidden; }
.real-admin-tag-row summary { display:flex; align-items:center; gap:12px; min-height:54px; padding:10px 12px; cursor:pointer; list-style:none; }
.real-admin-tag-row summary::-webkit-details-marker { display:none; }
.real-admin-tag-row summary em { margin-left:auto; color:#237af2; font-size:12px; font-style:normal; font-weight:800; }
.real-admin-tag-row .real-admin-list-icon { position:relative; }
.real-admin-tag-row .real-admin-list-icon i { width:9px; height:9px; border-radius:50%; }
.display-hidden { display:none !important; }
.display-editing .display-hidden { display:block !important; opacity:.36; filter:grayscale(.9) brightness(.58); }
.display-editing [data-display-block] { position:relative; box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 72%,transparent), 0 12px 30px rgba(22,48,88,.11); cursor:grab; transition:opacity .16s ease, filter .16s ease, transform .16s ease; }
.display-editing [data-display-block]::before { content:'Affiché · cliquez pour masquer'; position:absolute; z-index:8; top:10px; right:10px; padding:6px 9px; border-radius:999px; background:var(--accent); color:#fff; box-shadow:0 5px 14px rgba(16,32,59,.18); font-size:10px; font-weight:850; line-height:1; pointer-events:none; }
.display-editing .display-hidden::before { content:'Masqué · cliquez pour afficher'; background:#273244; }
.display-editing [data-display-block]:active { cursor:grabbing; }
.display-editing .display-dragging { opacity:.25 !important; transform:scale(.985); }
.display-customizer { position:fixed; z-index:40; right:20px; bottom:20px; }
.display-customizer-toggle, .display-customizer-panel button { border:0; font:800 12px/1 inherit; cursor:pointer; }
.display-customizer-toggle { display:flex; align-items:center; gap:7px; padding:11px 14px; border-radius:999px; background:var(--accent); color:#fff; box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 32%,transparent); }
.display-customizer-panel { display:none; width:245px; margin-bottom:9px; padding:14px; border:1px solid var(--border); border-radius:15px; background:var(--card); box-shadow:0 16px 38px rgba(16,32,59,.18); }
.display-customizer.is-open .display-customizer-panel { display:block; }
.display-customizer-panel strong, .display-customizer-panel small, .display-customizer-panel i { display:block; }
.display-customizer-panel small { margin-top:4px; color:var(--text-sub); font-size:11px; line-height:1.4; }
.display-customizer-panel small b { color:var(--text); }
.display-customizer-panel i { margin-top:7px; color:var(--accent); font-size:10px; font-style:normal; font-weight:750; }
.display-customizer-panel > div { display:flex; gap:7px; margin-top:12px; }
.display-customizer-panel button { padding:8px 9px; border-radius:8px; background:#edf3ff; color:var(--accent); }
.display-customizer-panel .display-done { background:var(--accent); color:#fff; }
@media (max-width:640px) {
  .display-customizer { right:12px; bottom:12px; }
  .display-customizer-toggle { padding:10px 12px; font-size:11px; }
  .display-customizer-panel { width:min(245px, calc(100vw - 24px)); }
  .display-editing [data-display-block]::before { top:7px; right:7px; padding:5px 7px; font-size:9px; }
}
.real-admin-inline-edit { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:12px; border-top:1px solid #edf0f4; background:#fafcff; }
.real-admin-inline-edit input[name=label] { min-height:36px; flex:1 1 220px; padding:7px 9px; border:1px solid #d8dee8; border-radius:8px; }
.real-admin-inline-edit input[type=color] { width:42px; height:36px; padding:2px; border:1px solid #d8dee8; border-radius:8px; background:#fff; }
.real-admin-tool-card { display:flex; align-items:flex-start; gap:20px; max-width:920px; margin-top:26px; }
.real-admin-tool-card h2 { margin:0 0 7px; }
.real-admin-tool-card p { margin:0 0 18px; color:#747e8c; line-height:1.55; }
.real-admin-tool-icon { display:grid; place-items:center; width:58px; height:58px; flex:0 0 58px; border-radius:17px; background:#edf4ff; color:#237af2; font-size:30px; font-weight:800; }
.real-admin-idea-row { align-items:flex-start !important; }
.real-admin-idea-row > span:nth-child(2) { flex:1; min-width:0; }
.real-admin-idea-row p { margin:7px 0 0; color:#697585; line-height:1.45; }
.real-admin-status-form { display:flex; align-items:center; gap:7px; margin-left:auto; }
.real-admin-status-form select { min-height:34px; padding:6px 8px; border:1px solid #d8dee8; border-radius:8px; background:#fff; }
@media (max-width: 760px) {
  .real-space-admin-menu { align-items:stretch; gap:12px; padding:13px; }
  .real-space-admin-brand { min-width:100%; }
  .real-space-admin-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; white-space:normal; }
  .real-space-admin-links a { padding:9px 7px; font-size:12px; }
  .real-space-admin-exit { display:block; width:100%; padding-top:4px; }
  .real-admin-hero { display:block; padding:20px; }
  .real-admin-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .real-admin-two-col, .real-admin-action-grid, .real-admin-action-grid-large, .real-admin-check-grid, .real-admin-form-inline { grid-template-columns:1fr; }
  .real-admin-card { padding:16px; border-radius:16px; }
  .real-admin-tool-card { display:block; }
  .real-admin-tool-icon { margin-bottom:14px; }
  .real-admin-status-form { width:100%; margin:10px 0 0; }
  .real-admin-status-form select { flex:1; }
  .automation-controls-card .real-admin-card-head { padding:16px; }
  .automation-cycle-chip { display:none; }
  .automation-control-head { display:none; }
  .automation-control-list { padding:0 12px; }
  .automation-control-row { grid-template-columns:minmax(0,1fr) 54px 54px; min-height:76px; padding:0 4px; }
  .automation-control-copy small { font-size:10px; }
  .automation-check { display:grid; gap:2px; font-size:9px; text-align:center; }
  .automation-controls-footer { display:grid; padding:14px 16px; }
  .automation-controls-footer .btn { width:100%; justify-content:center; }
  .hub-backup-card-body { align-items:flex-start; flex-wrap:wrap; }
  .hub-backup-card-body .btn { width:100%; justify-content:center; }
}

/* Barre d’administration principale : accès directs + menus secondaires */
.admin-nav-modern { gap:10px; min-height:48px; padding:6px 10px; border-radius:16px; background:color-mix(in srgb,var(--card) 92%,transparent); }
.admin-nav-brand { display:flex; align-items:center; gap:8px; flex:0 0 auto; padding-right:8px; border-right:1px solid var(--border); }
.admin-nav-brand-icon { display:grid; place-items:center; width:29px; height:29px; border-radius:9px; background:var(--accent); color:#fff; font-size:14px; }
.admin-nav-brand strong, .admin-nav-brand small { display:block; line-height:1.1; }
.admin-nav-brand strong { color:var(--text); font-size:11px; }
.admin-nav-brand small { margin-top:2px; color:var(--text-sub); font-size:9px; }
.admin-nav-primary { display:flex; align-items:center; gap:2px; flex:1 1 auto; flex-wrap:wrap; }
.admin-nav-modern .admin-nav-primary a, .admin-nav-modern .admin-nav-dropdown summary { min-height:31px; padding:6px 8px; border-radius:9px; font-size:11px; }
.admin-nav-modern .admin-nav-primary a { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.admin-nav-modern .admin-nav-primary a.is-active { background:var(--accent); color:#fff; }
.admin-nav-dropdown { position:relative; flex:0 0 auto; }
.admin-nav-dropdown summary { display:inline-flex; align-items:center; gap:5px; cursor:pointer; list-style:none; color:var(--text-sub); font-weight:750; white-space:nowrap; }
.admin-nav-dropdown summary::-webkit-details-marker { display:none; }
.admin-nav-dropdown summary b { margin-left:2px; color:var(--muted); font-size:10px; font-weight:400; }
.admin-nav-dropdown summary:hover, .admin-nav-dropdown summary.is-active { background:color-mix(in srgb,var(--accent) 10%,var(--card)); color:var(--accent); }
.admin-nav-dropdown[open] summary b { transform:rotate(180deg); }
.admin-nav-dropdown-panel { position:absolute; z-index:20; top:calc(100% + 7px); right:0; min-width:175px; padding:6px; border:1px solid var(--border); border-radius:12px; background:var(--card); box-shadow:0 14px 30px rgba(20,36,66,.14); }
.admin-nav-dropdown-panel a { display:flex; align-items:center; gap:7px; padding:8px 9px; border-radius:8px; color:var(--text-sub); font-size:11px; font-weight:750; white-space:nowrap; }
.admin-nav-dropdown-panel a:hover, .admin-nav-dropdown-panel a.is-active { background:color-mix(in srgb,var(--accent) 10%,var(--bg)); color:var(--accent); text-decoration:none; }

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
@media (max-width:760px) {
  .admin-nav-modern { align-items:stretch; flex-wrap:wrap; gap:6px; }
  .admin-nav-brand { width:100%; padding:0 0 6px; border-right:0; border-bottom:1px solid var(--border); }
  .admin-nav-primary { order:2; width:100%; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .admin-nav-primary::-webkit-scrollbar { display:none; }
  .admin-nav-dropdown { order:3; }
  .admin-nav-dropdown-panel { position:fixed; left:14px; right:14px; top:auto; margin-top:7px; }
}

/* Aperçu d’un événement depuis le calendrier */
.event-preview-modal[hidden] {
  display: none;
}

.event-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: grid;
  place-items: center;
  padding: 20px;
}

.event-preview-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(24, 25, 42, 0.42);
  backdrop-filter: blur(5px);
}

.event-preview-card {
  position: relative;
  z-index: 1;
  width: min(540px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  padding: 30px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: #fff;
  color: #24232c;
  box-shadow: 0 28px 70px rgba(24, 25, 42, 0.25);
}

.event-preview-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface-muted);
  color: var(--ink);
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
}

.event-preview-close:hover,
.event-preview-close:focus-visible {
  border-color: var(--blue);
  color: var(--blue);
}

.event-preview-card h2 {
  margin: 8px 42px 20px 0;
  font-size: clamp(1.55rem, 4vw, 2.05rem);
  line-height: 1.12;
}

.event-preview-date,
.event-preview-location {
  margin: 10px 0;
  color: var(--muted);
  font-weight: 700;
}

.event-preview-description {
  margin: 20px 0 0;
  padding: 16px;
  border-radius: 14px;
  background: var(--surface-muted);
  color: var(--ink);
  line-height: 1.55;
  white-space: pre-wrap;
}

.event-preview-description-copy + .event-preview-image {
  margin-top: 16px;
}

.event-preview-image {
  display: block;
  width: 100%;
  max-height: min(58vh, 680px);
  object-fit: contain;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.06);
}

.event-preview-image + .event-preview-image {
  margin-top: 12px;
}

.event-preview-open {
  width: 100%;
  margin-top: 24px;
  justify-content: center;
}

@media (max-width: 520px) {
  .event-preview-card {
    padding: 24px 20px;
    border-radius: 20px;
  }
}


.event-preview-rsvp {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.event-preview-rsvp > strong {
  display: block;
  margin-bottom: 12px;
}

.event-preview-rsvp-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.event-preview-rsvp-actions form {
  margin: 0;
}


.community-pending-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 18px 0;
  padding: 15px 18px;
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  border-radius: 14px;
  background: color-mix(in srgb, var(--accent) 8%, #fff);
  color: var(--text);
}

.community-pending-banner > span { font-size: 24px; }

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.community-pending-banner p { margin: 0; }
.community-pending-banner strong, .community-pending-banner small { display: block; }
.community-pending-banner small { margin-top: 3px; color: var(--text-sub); }

.community-direct-decision { margin-top: 16px; }
.community-direct-decision > summary { display: inline-flex; cursor: pointer; }
.community-direct-decision > form { display: grid; gap: 9px; max-width: 480px; margin-top: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
.community-direct-decision label { margin: 0; font-size: 13px; font-weight: 800; }
.community-direct-decision label em { color: var(--text-sub); font-weight: 400; }
.community-direct-decision textarea { min-height: 80px; resize: vertical; }

/* Le bouton de fermeture du bandeau doit rester lisible dans les deux thèmes. */
.site-banner-close {
  border: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
  background: color-mix(in srgb, var(--card) 84%, transparent);
  color: var(--text);
  font-family: Arial, sans-serif;
  font-weight: 700;
}
.site-banner-close:hover,
.site-banner-close:focus-visible {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 13%, var(--card));
  color: var(--text);
  outline-color: color-mix(in srgb, var(--accent) 65%, transparent);
}
:root[data-theme="dark"] .site-banner-close {
  border-color: color-mix(in srgb, var(--border) 92%, transparent);
  background: color-mix(in srgb, var(--card) 94%, var(--bg));
  color: var(--text);
}

/* Informations juridiques, données personnelles et choix de consentement */
.legal-page { max-width: 920px; margin: 26px auto 0; }
.legal-hero { padding: 26px 0 16px; }
.legal-hero h1 { margin: 7px 0 9px; font-size: clamp(30px, 4.8vw, 46px); letter-spacing: -.045em; }
.legal-hero p { max-width: 740px; color: var(--text-sub); font-size: 16px; line-height: 1.65; }
.legal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 18px; align-items: start; }
.legal-content { padding: 26px; }
.legal-content h2 { margin: 30px 0 10px; font-size: 21px; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content h3 { margin: 18px 0 7px; font-size: 16px; }
.legal-content p, .legal-content li { color: var(--text-sub); line-height: 1.7; }
.legal-content strong { color: var(--text); }
.legal-content ul { padding-left: 20px; }
.legal-content table { width: 100%; border-collapse: collapse; margin: 15px 0; font-size: 14px; }
.legal-content th, .legal-content td { padding: 11px 10px; border: 1px solid var(--border); vertical-align: top; text-align: left; line-height: 1.45; }
.legal-content th { background: var(--accent-soft); color: var(--text); }
.legal-note { margin: 18px 0; padding: 14px 16px; border-left: 4px solid var(--accent); border-radius: 10px; background: var(--accent-soft); }
.legal-note p { margin: 5px 0 0; }
.legal-index { position: sticky; top: 14px; padding: 16px; display: grid; gap: 4px; }
.legal-index strong { margin-bottom: 4px; }
.legal-index a { padding: 7px 8px; border-radius: 8px; color: var(--text-sub); font-size: 13px; }
.legal-index a:hover { background: var(--accent-soft); color: var(--text); }
.cookie-consent { position: fixed; z-index: 1000; left: max(16px, env(safe-area-inset-left)); right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); max-width: 980px; margin: 0 auto; padding: 18px 20px; display: flex; gap: 20px; align-items: center; border: 1px solid var(--border); border-radius: 18px; background: var(--card); color: var(--text); box-shadow: 0 18px 50px color-mix(in srgb, var(--text) 24%, transparent); }
.cookie-consent-intro { flex: 1; display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.cookie-consent-pola { width: clamp(52px, 9vw, 72px); height: auto; flex: none; }
.cookie-consent strong { display: block; font-size: 16px; }
.cookie-consent p { margin: 5px 0 7px; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.cookie-consent a { font-size: 13px; }
.cookie-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.cookie-consent-actions form { margin: 0; }
.cookie-consent-actions .btn { min-height: 42px; width: 100%; justify-content: center; font-size: 13px; }
.legal-choice-grid > label { align-content: start; }
@media (max-width: 760px) {
  .legal-layout { grid-template-columns: 1fr; }
  .legal-index { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal-content { padding: 20px 16px; }
  .legal-content table { display: block; overflow-x: auto; }
  .cookie-consent { bottom: 8px; left: 8px; right: 8px; display: block; padding: 16px; }
  .cookie-consent-actions { margin-top: 13px; justify-content: stretch; }
  .cookie-consent-actions form { flex: 1 1 220px; }
  .cookie-consent-actions .btn { width: 100%; justify-content: center; }
}

/* Lecture mobile des informations juridiques : les tableaux deviennent des fiches. */
@media (max-width: 760px) {
  .legal-page { margin: 14px 12px 0; }
  .legal-hero { padding: 18px 2px 12px; }
  .legal-hero h1 { margin: 6px 0 8px; font-size: clamp(28px, 9vw, 36px); line-height: 1.08; }
  .legal-hero p { margin: 0; font-size: 15px; line-height: 1.55; }
  .legal-layout { gap: 12px; }
  .legal-content { padding: 20px 16px; overflow-wrap: anywhere; }
  .legal-content h2 { margin: 28px 0 9px; font-size: 20px; line-height: 1.2; scroll-margin-top: 12px; }
  .legal-content h3 { font-size: 16px; }
  .legal-content p, .legal-content li { font-size: 15px; line-height: 1.62; }
  .legal-content ul { padding-left: 18px; }
  .legal-index { position: static; display: flex; align-items: center; gap: 6px; max-width: 100%; padding: 10px; overflow-x: auto; overscroll-behavior-inline: contain; white-space: nowrap; scrollbar-width: thin; }
  .legal-index strong { flex: 0 0 auto; margin: 0 4px 0 0; font-size: 12px; }
  .legal-index a { flex: 0 0 auto; padding: 8px 10px; background: var(--accent-soft); color: var(--text); font-size: 12px; }
  .legal-content .legal-table { display: block; width: 100%; margin: 14px 0 20px; border: 0; font-size: 14px; }
  .legal-content .legal-table thead { display: none; }
  .legal-content .legal-table tbody { display: grid; gap: 10px; }
  .legal-content .legal-table tr { display: block; padding: 6px 12px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--card) 94%, var(--accent-soft)); }
  .legal-content .legal-table td { display: block; padding: 9px 0; border: 0; color: var(--text-sub); line-height: 1.5; }
  .legal-content .legal-table td + td { border-top: 1px solid var(--border); }
  .legal-content .legal-table td::before { display: block; margin-bottom: 3px; color: var(--text); font-size: 10px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
  .legal-table--purposes td:nth-child(1)::before { content: 'Finalité'; }
  .legal-table--purposes td:nth-child(2)::before { content: 'Données concernées'; }
  .legal-table--purposes td:nth-child(3)::before { content: 'Fondement'; }
  .legal-table--retention td:nth-child(1)::before { content: 'Catégorie'; }
  .legal-table--retention td:nth-child(2)::before { content: 'Durée appliquée'; }
  .legal-table--cookies td:nth-child(1)::before { content: 'Catégorie'; }
  .legal-table--cookies td:nth-child(2)::before { content: 'Utilité'; }
  .legal-table--cookies td:nth-child(3)::before { content: 'Durée'; }
  .legal-table--cookies td:nth-child(4)::before { content: 'Choix'; }
  .legal-note { margin: 18px 0; padding: 14px; }
  .cookie-consent { max-height: calc(100dvh - 16px); overflow-y: auto; border-radius: 16px; }
  .cookie-consent strong { font-size: 15px; }
  .cookie-consent p { font-size: 13px; }
  .cookie-consent-actions { gap: 8px; }
  .cookie-consent-actions form { flex-basis: 100%; }
  .cookie-consent-actions .btn { min-height: 46px; white-space: normal; line-height: 1.25; }
  .site-footer { margin-top: 26px; line-height: 1.9; }
  .site-footer a { display: inline-block; margin: 0 2px; }
}


/* Page unique des documents de la communauté et éditeur associé. */
.legal-hub { max-width: 960px; }
.legal-hub-nav { position: sticky; top: 12px; z-index: 4; display: flex; gap: 8px; margin: 0 0 18px; padding: 10px; overflow-x: auto; overscroll-behavior-inline: contain; background: color-mix(in srgb, var(--card) 94%, var(--accent-soft)); box-shadow: 0 8px 22px color-mix(in srgb, var(--text) 8%, transparent); }
.legal-hub-nav a { flex: 0 0 auto; padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; color: var(--text); font-size: 13px; font-weight: 800; white-space: nowrap; }
.legal-hub-nav a:hover, .legal-hub-nav a:focus-visible { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.legal-hub-content { padding: 28px; }
.legal-hub-section { scroll-margin-top: 76px; }
.legal-hub-section + .legal-hub-section { margin-top: 42px; padding-top: 38px; border-top: 1px solid var(--border); }

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.legal-hub-section > h2 { margin-top: 0; font-size: 25px; }
.legal-document-body { color: var(--text-sub); line-height: 1.75; }
.legal-document-body strong { color: var(--text); }
.legal-document-body br + br { display: block; content: ''; margin-top: 12px; }
.legal-facts { margin: 18px 0; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--card) 92%, var(--accent-soft)); }
.legal-facts h3 { margin: 0 0 7px; }
.legal-facts p { margin: 0; }
.legal-cookie-actions { justify-content: flex-start; margin-top: 14px; }
.legal-documents-settings { scroll-margin-top: 16px; }
.legal-document-editor { margin-top: 12px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--card) 96%, var(--accent-soft)); }
.legal-document-editor > summary { display: grid; gap: 3px; padding: 15px 16px; cursor: pointer; color: var(--text); }
.legal-document-editor > summary::marker { color: var(--accent); }
.legal-document-editor > summary small { color: var(--text-sub); line-height: 1.45; }
.legal-document-editor > label { display: grid; gap: 7px; padding: 0 16px 16px; }
.legal-document-editor textarea { min-height: 240px; resize: vertical; font-family: inherit; line-height: 1.55; }
@media (max-width: 760px) {
  .legal-hub-nav { top: 6px; margin-bottom: 12px; padding: 8px; border-radius: 14px; }
  .legal-hub-nav a { padding: 8px 10px; font-size: 12px; }
  .legal-hub-content { padding: 20px 16px; }
  .legal-hub-section { scroll-margin-top: 64px; }
  .legal-hub-section + .legal-hub-section { margin-top: 32px; padding-top: 30px; }
  .legal-hub-section > h2 { font-size: 22px; }
  .legal-document-body { font-size: 15px; line-height: 1.68; }
  .legal-facts { padding: 14px; }
  .legal-document-editor > summary { padding: 14px; }
  .legal-document-editor > label { padding: 0 14px 14px; }
  .legal-document-editor textarea { min-height: 210px; font-size: 16px; }
}


/* Recherche globale : suggestions immédiates sous la barre de l’en-tête. */
.global-search { position: relative; }
.search-form.global-search input { width: min(340px, 28vw); }
.global-search-results { position: absolute; z-index: 90; top: calc(100% + 8px); left: 0; width: min(430px, calc(100vw - 24px)); max-height: min(440px, calc(100vh - 110px)); overflow-y: auto; border: 1px solid var(--border); border-radius: 15px; background: var(--card); box-shadow: 0 18px 42px color-mix(in srgb, var(--text) 20%, transparent); }
.global-search-results[hidden] { display: none; }
.global-search-result { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 11px 12px; border-bottom: 1px solid var(--border); color: var(--text); text-decoration: none; }
.global-search-result:first-child { border-radius: 14px 14px 0 0; }
.global-search-result:hover, .global-search-result.is-active { background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--text); }
.global-search-result-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--accent-soft); font-size: 15px; }
.global-search-result-copy { min-width: 0; display: grid; gap: 2px; }
.global-search-result-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.global-search-result-copy small { overflow: hidden; color: var(--text-sub); font-size: 11px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.global-search-result-kind { max-width: 82px; overflow: hidden; color: var(--text-sub); font-size: 10px; font-weight: 800; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.global-search-more { display: block; padding: 11px 12px; border-radius: 0 0 14px 14px; color: var(--accent); font-size: 12px; font-weight: 800; text-align: center; }
.global-search-empty { margin: 0; padding: 18px 14px; color: var(--text-sub); font-size: 13px; line-height: 1.5; }
.search-page { max-width: 900px; margin: 28px auto 0; }
.search-page-hero { padding: 22px 0 14px; }
.search-page-hero .page-title { margin: 6px 0 8px; }
.search-page-hero p, .search-page-count { color: var(--text-sub); line-height: 1.6; }
.search-page-count { margin: 18px 0 12px; }
.search-page-results { display: grid; gap: 10px; }
.search-page-result { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto 20px; gap: 12px; align-items: center; padding: 15px 17px; border: 1px solid var(--border); border-radius: 14px; background: var(--card); color: var(--text); text-decoration: none; }
.search-page-result:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--card)); color: var(--text); transform: translateY(-1px); }
.search-page-result-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--accent-soft); font-size: 19px; }
.search-page-result-copy { min-width: 0; display: grid; gap: 4px; }
.search-page-result-copy strong { font-size: 15px; }
.search-page-result-copy small { color: var(--text-sub); font-size: 13px; line-height: 1.45; }
.search-page-result-kind { color: var(--text-sub); font-size: 11px; font-weight: 800; white-space: nowrap; }
.search-page-result-arrow { color: var(--accent); font-size: 20px; }
.search-page-empty { display: flex; gap: 16px; align-items: center; padding: 24px; }
.search-page-empty > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--accent-soft); color: var(--accent); font-size: 28px; }
.search-page-empty h2 { margin: 0 0 4px; font-size: 18px; }
.search-page-empty p { margin: 0; color: var(--text-sub); line-height: 1.55; }
@media (max-width: 760px) {
  .mobile-nav-search.global-search { overflow: visible; }
  .mobile-nav-search .global-search-results { position: static; width: 100%; max-height: min(360px, 52vh); margin-top: 8px; }
  .mobile-nav-search .global-search-result { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .search-page { margin: 14px 12px 0; }
  .search-page-hero { padding: 16px 2px 10px; }
  .search-page-result { grid-template-columns: 38px minmax(0, 1fr) 18px; gap: 10px; padding: 13px; }
  .search-page-result-icon { width: 36px; height: 36px; font-size: 16px; }
  .search-page-result-kind { display: none; }
  .search-page-result-copy strong { font-size: 14px; }
  .search-page-result-copy small { font-size: 12px; }
  .search-page-empty { align-items: flex-start; padding: 18px; }
}

.profile-security-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
@media (max-width: 760px) { .profile-security-actions { width: 100%; flex-direction: column; align-items: stretch; } }

/* Confirmation des coordonnées : garde les actions de sécurité claires sur tous les écrans. */
.contact-verification-banner{display:flex;align-items:center;gap:12px;max-width:1180px;margin:14px auto 0;padding:12px 16px;border:1px solid var(--border);border-radius:14px;background:var(--card);color:var(--text);box-shadow:0 7px 20px rgba(25,35,55,.08);font-size:.94rem;line-height:1.45}
.contact-verification-banner>a{margin-left:auto;flex:0 0 auto;color:var(--accent);font-weight:800;text-decoration:none}.contact-verification-banner>a:hover{text-decoration:underline}
.contact-verification-intro,.signup-human-button{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;margin:0 0 20px;border:1px solid var(--border);border-radius:16px;background:var(--warm-accent-soft);color:var(--text)}
.contact-verification-intro>span,.signup-human-button>span{font-size:1.45rem;line-height:1}.contact-verification-intro strong,.signup-human-button strong{display:block;font-size:1.02rem}.contact-verification-intro p,.signup-human-button p{margin:4px 0 0;line-height:1.55;color:var(--text-sub)}
.contact-code-form{display:grid;gap:14px}.contact-code-card{padding:17px;border:1px solid var(--border);border-radius:16px;background:var(--card)}.contact-code-card>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;margin-bottom:12px}.contact-code-card>div>span{font-size:1.25rem;grid-row:1 / span 2}.contact-code-card strong{font-size:1rem}.contact-code-card small{color:var(--text-sub);line-height:1.4}.contact-code-card input,.contact-verification-card input{font-size:1.3rem;letter-spacing:.16em;text-align:center;max-width:240px}.signup-verification-actions{display:flex;gap:10px;flex-wrap:wrap}.signup-verification-actions .btn{display:inline-flex;justify-content:center;align-items:center}
.contact-verification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1000px;margin:0 auto}.contact-verification-card{display:flex;flex-direction:column;align-items:flex-start}.contact-verification-card h2{margin:9px 0 4px}.contact-verification-card p{margin:0 0 18px;color:var(--text-sub);line-height:1.55}.contact-verification-card form{width:100%}.contact-verification-card .btn{margin-top:12px}.contact-resend{margin-top:8px}.contact-verification-icon{font-size:1.7rem}.contact-verification-complete{grid-column:1/-1;text-align:center;padding:34px}.contact-verification-complete>span{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-text);font-size:1.4rem;font-weight:900}
@media (max-width:700px){.contact-verification-banner{margin:10px 12px 0;align-items:flex-start}.contact-verification-banner>a{margin-left:0;align-self:flex-end}.contact-verification-grid{grid-template-columns:1fr;margin:0 12px}.contact-code-card input,.contact-verification-card input{max-width:none;width:100%;box-sizing:border-box}.signup-verification-actions{display:grid;grid-template-columns:1fr}.signup-verification-actions .btn{width:100%}}
@media (max-width:460px){.contact-verification-banner{display:grid;grid-template-columns:auto 1fr}.contact-verification-banner>a{grid-column:2}.contact-verification-intro,.signup-human-button{padding:14px}.contact-verification-card{padding:18px 16px}}

.signup-phone-optout{margin-top:12px}.signup-email-only-note{margin:10px 0 18px;padding:13px 15px;border:1px solid var(--border);border-radius:13px;background:var(--warm-accent-soft);color:var(--text);line-height:1.55}.signup-email-only-note strong{display:block;margin-bottom:2px}

/* Console des clubs : navigation claire, cohérente et mobile. */
.real-space-admin-menu.real-space-admin-modern{display:grid;grid-template-columns:1fr;gap:0;margin:14px 0 24px;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:20px;background:color-mix(in srgb,var(--card) 97%,var(--accent-soft));box-shadow:0 12px 34px color-mix(in srgb,var(--text) 10%,transparent)}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.real-space-admin-modern .real-space-admin-brand{display:flex;align-items:center;gap:12px;width:auto;min-width:0;padding:14px 16px;border:0;border-bottom:1px solid var(--border);background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 10%,var(--card)),var(--card) 62%)}
.real-space-admin-modern .real-space-admin-brand .club-mark{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:13px;background:var(--accent-soft);font-size:23px}
.real-space-admin-modern .real-space-admin-brand div{display:grid;gap:2px;min-width:0}.real-space-admin-modern .real-space-admin-brand strong{overflow:hidden;color:var(--text);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.real-space-admin-modern .real-space-admin-brand small{color:var(--text-sub);font-size:11px}
.real-space-admin-modern .real-space-admin-exit{display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin-left:auto;padding:7px 12px;border:1px solid var(--border);border-radius:11px;background:var(--card);color:var(--accent);font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap}
.real-space-admin-modern .real-space-admin-exit:hover{border-color:var(--accent);background:var(--accent-soft)}
.real-space-admin-modern .real-space-admin-primary{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;padding:9px;box-sizing:border-box}
.real-space-admin-modern .real-space-admin-primary a{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-width:0;min-height:46px;padding:7px 9px;border:1px solid transparent;border-radius:12px;color:var(--text-sub);font-size:11px;font-weight:800;line-height:1.2;text-decoration:none;white-space:normal}
.real-space-admin-modern .real-space-admin-primary a>span{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--accent) 9%,var(--bg));font-size:16px}
.real-space-admin-modern .real-space-admin-primary a:hover{border-color:var(--border);background:var(--bg);color:var(--text)}
.real-space-admin-modern .real-space-admin-primary a.is-active{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--accent-soft);color:var(--accent)}
.real-space-admin-menu.real-space-admin-modern .real-space-admin-primary a.is-active{border-color:var(--accent)!important;background:var(--accent)!important;color:#fff!important;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 24%,transparent)}
.real-space-admin-menu.real-space-admin-modern .real-space-admin-primary a.is-active>span{background:rgba(255,255,255,.18)!important;color:#fff!important}
.real-admin-page-head{align-items:center;padding:8px 2px}.real-admin-page-head p{color:var(--text-sub);line-height:1.55}.real-admin-page-head-icon{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center}.real-admin-page-head-icon>span{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:var(--accent-soft);font-size:26px}.real-admin-page-head-icon .btn{white-space:nowrap}
.real-admin-card{overflow:hidden}.real-admin-card,.real-admin-action-grid>a,.admin-mail-list{background:var(--card);color:var(--text)}
.real-admin-empty{display:flex;align-items:center;gap:16px}.real-admin-empty>span{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:var(--accent-soft);font-size:26px}.real-admin-empty h2,.real-admin-empty p{margin:0}.real-admin-empty p{margin-top:4px;color:var(--text-sub)}
.club-mail-rich-composer{border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}.club-mail-rich-composer .private-message-composer-head p{max-width:680px;margin:5px 0 0;color:var(--text-sub);font-size:13px;line-height:1.5}.club-mail-rich-composer textarea{min-height:190px}.club-mail-rich-composer .composer-toolbar{background:color-mix(in srgb,var(--accent) 5%,var(--card))}
.club-mail-bulk .admin-mail-bulk-bar{position:sticky;top:6px;z-index:12;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--card) 96%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--text) 9%,transparent);backdrop-filter:blur(12px)}
@media(max-width:1050px){.real-space-admin-modern .real-space-admin-primary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.real-space-admin-menu.real-space-admin-modern{margin:10px 0 18px;border-radius:16px}.real-space-admin-modern .real-space-admin-brand{padding:12px}.real-space-admin-modern .real-space-admin-brand .club-mark{width:40px;height:40px}.real-space-admin-modern .real-space-admin-brand small{display:none}.real-space-admin-modern .real-space-admin-exit{min-height:36px;padding:6px 9px;font-size:11px}.real-space-admin-modern .real-space-admin-primary{display:flex;gap:6px;overflow-x:auto;padding:8px;scrollbar-width:none;scroll-snap-type:x proximity}.real-space-admin-modern .real-space-admin-primary::-webkit-scrollbar{display:none}.real-space-admin-modern .real-space-admin-primary a{flex:0 0 auto;min-height:42px;padding:6px 10px;white-space:nowrap;scroll-snap-align:start}.real-space-admin-modern .real-space-admin-primary a>span{width:28px;height:28px}.real-admin-page-head-icon{grid-template-columns:44px minmax(0,1fr);gap:11px}.real-admin-page-head-icon>span{width:44px;height:44px;font-size:22px}.real-admin-page-head-icon>.btn{grid-column:1/-1;width:100%}.private-conversation-head,.private-message-composer-head,.private-message-send{align-items:stretch;flex-direction:column}.club-mail-bulk .admin-mail-bulk-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.club-mail-bulk .admin-mail-bulk-bar label{grid-column:1/-1}.club-mail-bulk .admin-mail-bulk-bar .btn{width:100%}.real-admin-card-head{flex-direction:column}.real-admin-inline-actions{max-width:100%;flex-wrap:wrap}.real-admin-inline-actions form{max-width:100%;flex-wrap:wrap}.real-admin-inline-actions select{max-width:100%}}
@media(max-width:430px){.real-space-admin-modern .real-space-admin-brand .home-kicker{font-size:9px}.real-space-admin-modern .real-space-admin-brand strong{font-size:14px}.real-space-admin-modern .real-space-admin-exit{max-width:105px;text-align:center}.real-admin-card{padding:15px}.real-admin-two-col{grid-template-columns:1fr}.real-admin-page-head .page-title{font-size:25px}}


.security-step-up-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.security-step-up-actions>section{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.security-step-up-actions h3{margin:0 0 4px}.security-step-up-actions form{display:grid;gap:10px}.security-step-up-actions .btn{justify-self:start}
@media (max-width:700px){.security-step-up-actions{grid-template-columns:1fr}.security-step-up-actions .btn{width:100%;justify-content:center}}

/* Un seul centre d’affichage dans l’en-tête : thème, lecture et organisation. */
.display-menu{position:relative;flex:0 0 auto}.display-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:7px 12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--card) 92%,var(--bg));color:var(--text);font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}.display-menu-toggle:hover,.display-menu-toggle[aria-expanded="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--accent)}.display-menu-toggle.is-editing{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.display-menu-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.display-menu-icon circle{fill:var(--card)}.display-menu-toggle.is-editing .display-menu-icon circle{fill:var(--accent-text)}
.display-menu-panel{position:absolute;z-index:110;top:calc(100% + 10px);right:0;width:min(460px,calc(100vw - 24px));max-height:min(720px,calc(100vh - 88px));max-height:min(720px,calc(100dvh - 88px));overflow:auto;padding:18px;border:1px solid var(--border);border-radius:19px;background:var(--card);color:var(--text);box-shadow:0 22px 55px rgba(15,20,35,.24);overscroll-behavior:contain}.display-menu-panel[hidden]{display:none!important}.display-menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.display-menu-head strong{display:block;margin-top:2px;font-size:1.22rem;line-height:1.25}.display-menu-close{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;min-height:36px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg);color:var(--text-sub);font-size:24px;line-height:1;cursor:pointer}.display-menu-close:hover{border-color:var(--accent);color:var(--accent)}
.display-menu-section{padding:15px 0;border-top:1px solid var(--border)}.display-menu-section-head{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;margin-bottom:12px}.display-menu-section-head strong,.display-menu-section-head small{display:block}.display-menu-section-head strong{font-size:.98rem}.display-menu-section-head small{margin-top:2px;color:var(--text-sub);font-size:.78rem;line-height:1.38}.display-setting-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:1rem;font-weight:850}.display-setting-aa{font-size:.82rem;letter-spacing:-.04em}
.display-theme-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.display-theme-choices button,.display-menu-panel .text-size-choices button,.display-organization-actions button{min-height:42px;border:1px solid var(--border);border-radius:11px;background:var(--bg);color:var(--text);font:inherit;font-size:.86rem;font-weight:800;cursor:pointer}.display-theme-choices button{display:flex;align-items:center;justify-content:center;gap:8px}.display-theme-choices button:hover,.display-menu-panel .text-size-choices button:hover,.display-organization-actions button:hover{border-color:var(--accent);color:var(--accent)}.display-theme-choices button[aria-pressed="true"],.display-menu-panel .text-size-choices button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-text);box-shadow:0 6px 15px color-mix(in srgb,var(--accent) 24%,transparent)}
.display-menu-panel .text-size-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.display-menu-panel .text-size-choices button{padding:0 4px;white-space:nowrap}.display-menu-panel .comfort-switch{display:flex;align-items:flex-start;gap:11px;margin-top:13px;padding:13px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--accent) 4%,var(--bg));cursor:pointer}.display-menu-panel .comfort-switch input{flex:0 0 auto;width:22px;min-width:22px;height:22px;min-height:22px;margin:1px 0 0;accent-color:var(--accent)}.display-menu-panel .comfort-switch b,.display-menu-panel .comfort-switch small{display:block}.display-menu-panel .comfort-switch small{margin-top:2px;color:var(--text-sub);font-size:.76rem;line-height:1.4}
.display-organization-help{margin:0 0 11px;color:var(--text-sub);font-size:.78rem;line-height:1.48}.display-organization-help b{color:var(--text)}.display-organization-actions{display:flex;flex-wrap:wrap;gap:8px}.display-organization-actions button{padding:8px 11px}.display-organization-actions .display-start,.display-organization-actions .display-done{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.display-organization-actions .display-done[hidden]{display:none}.display-menu-storage{margin:0;padding-top:13px;border-top:1px solid var(--border);color:var(--accent);font-size:.72rem;font-weight:750;line-height:1.4}
@media(max-width:900px){.display-menu-toggle{width:38px;height:38px;min-height:38px;padding:0;border-radius:11px}.display-menu-toggle>span{display:none}.display-menu-icon{width:21px;height:21px}.display-menu-panel{position:fixed;top:calc(env(safe-area-inset-top,0px) + 64px);right:12px;width:calc(100vw - 24px);max-height:calc(100vh - 82px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 82px - env(safe-area-inset-bottom,0px));padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:18px}.display-menu-head strong{font-size:1.12rem}}
@media(max-width:420px){.display-menu-panel .text-size-choices{gap:5px}.display-menu-panel .text-size-choices button{font-size:.78rem}.display-organization-actions{display:grid;grid-template-columns:1fr}.display-organization-actions button{width:100%}}

/* Profil : navigation par rubriques et sections repliables. */
.profile-page{max-width:1180px;margin:0 auto 60px}
.profile-nav{position:sticky;top:10px;z-index:30;display:flex;gap:8px;align-items:center;overflow-x:auto;margin:0 0 8px;padding:8px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 10px 28px rgba(25,35,55,.10);backdrop-filter:blur(12px);scrollbar-width:none}
.profile-nav::-webkit-scrollbar{display:none}.profile-nav-link{flex:0 0 auto;padding:9px 13px;border-radius:11px;color:var(--text-sub);font-size:.9rem;font-weight:800;text-decoration:none;white-space:nowrap}.profile-nav-link:hover{background:var(--accent-soft);color:var(--text)}.profile-nav-link.is-active,.profile-nav-link[aria-current="page"]{background:var(--accent);color:var(--accent-text)}
.profile-nav-hint{margin:0 2px 18px;color:var(--text-sub);font-size:.9rem;line-height:1.45}
.profile-page [id]{scroll-margin-top:92px}
.profile-collapsible{padding:0;overflow:hidden}.profile-collapsible>summary{list-style:none}.profile-collapsible>summary::-webkit-details-marker{display:none}.profile-collapsible-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px 24px;cursor:pointer}.profile-collapsible-summary:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.profile-collapsible-summary strong{display:block;margin-top:3px;color:var(--text);font-size:1.16rem}.profile-collapsible-summary small{display:block;margin-top:4px;color:var(--text-sub);font-size:.9rem;font-weight:500;line-height:1.4}.profile-collapsible-icon{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:1px solid var(--border);border-radius:50%;color:var(--text-sub);font-size:1.25rem;line-height:1;transition:transform .18s ease,background .18s ease}.profile-collapsible[open] .profile-collapsible-icon{transform:rotate(180deg);background:var(--accent-soft);color:var(--accent)}
.profile-collapsible> :not(summary){margin-left:24px;margin-right:24px}.profile-collapsible>form,.profile-collapsible>p,.profile-collapsible>section,.profile-collapsible>.profile-club-list,.profile-collapsible>.profile-club-pending,.profile-collapsible>.profile-club-actions,.profile-collapsible>.profile-space-list{margin-left:24px;margin-right:24px}.profile-collapsible-action{margin-top:-5px;margin-bottom:0;text-align:right}.profile-collapsible-action a{font-weight:800;color:var(--accent);text-decoration:none}.profile-collapsible-action a:hover{text-decoration:underline}
.profile-security-panel{scroll-margin-top:92px}.profile-security-email{display:flex;align-items:flex-start;gap:14px;margin-top:4px;padding:0 24px 20px;border-bottom:1px solid var(--border)}.profile-security-method-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:var(--accent-soft);font-size:1.25rem}.profile-security-email strong{font-size:1.02rem}.profile-security-email .page-sub{margin:4px 0}.profile-security-email .field-hint{max-width:760px}.profile-security-email .btn{display:inline-flex;margin-top:5px}.profile-security-block{margin:18px 24px 0;padding-top:18px;border-top:1px solid var(--border)}.profile-security-block:first-of-type{border-top:0}.profile-security-block .home-kicker{display:block}.profile-security-block .notification-preferences-form{margin-top:14px}.profile-security-panel>.mfa-profile-callout{margin:18px 24px 24px;padding:18px;border:1px solid var(--border);border-radius:15px;background:var(--warm-accent-soft);box-shadow:none}
@media (max-width:700px){.profile-page{margin-bottom:36px}.profile-nav{top:6px;margin-left:-4px;margin-right:-4px;padding:7px}.profile-nav-link{padding:9px 11px;font-size:.84rem}.profile-nav-hint{margin:0 0 13px;font-size:.84rem}.profile-collapsible-summary{padding:17px 16px}.profile-collapsible-summary strong{font-size:1.05rem}.profile-collapsible-summary small{font-size:.82rem}.profile-collapsible> :not(summary),.profile-collapsible>form,.profile-collapsible>p,.profile-collapsible>section,.profile-collapsible>.profile-club-list,.profile-collapsible>.profile-club-pending,.profile-collapsible>.profile-club-actions,.profile-collapsible>.profile-space-list{margin-left:16px;margin-right:16px}.profile-security-email{padding:0 16px 17px}.profile-security-block{margin-left:16px;margin-right:16px}.profile-security-panel>.mfa-profile-callout{margin-left:16px;margin-right:16px;margin-bottom:17px;padding:15px}.profile-security-email .btn{width:100%;justify-content:center}.profile-collapsible-action{text-align:left}}

/* Profil : sommaire persistant et quatre familles de réglages. */
.profile-settings-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px;align-items:start}.profile-settings-sidebar{position:sticky;top:86px;z-index:25}.profile-settings-nav{display:grid;gap:5px;padding:9px;border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:0 12px 30px rgba(25,35,55,.09)}.profile-settings-nav a,.profile-settings-nav button{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;align-items:center;width:100%;min-height:62px;padding:9px;border:0;border-radius:13px;background:transparent;color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.profile-settings-nav a>span,.profile-settings-nav button>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:1.05rem;font-weight:900}.profile-settings-nav b{align-self:end;font-size:.9rem}.profile-settings-nav small{align-self:start;overflow:hidden;color:var(--text-sub);font-size:.72rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.profile-settings-nav a:hover,.profile-settings-nav button:hover,.profile-settings-nav .is-active{background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--text)}.profile-settings-nav .is-active>span{background:var(--accent);color:var(--accent-text)}.profile-public-link{display:block;margin:10px 8px;color:var(--accent);font-size:.82rem;font-weight:800;text-decoration:none}.profile-settings-content{display:flex;min-width:0;flex-direction:column;gap:14px}.profile-settings-content>#profil-identite{order:1}.profile-settings-content>#securite-compte{order:2}.profile-settings-content>#notifications-preferences{order:3}.profile-settings-content>#mes-clubs{order:4}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.profile-settings-content>#mes-creations{order:5}.profile-collapsible-summary{display:grid;grid-template-columns:minmax(0,1fr) 36px}.profile-settings-content>.profile-collapsible{margin:0}.profile-security-email{margin-top:18px!important;padding:0 0 20px!important}.profile-security-email>div{min-width:0;flex:1}.profile-security-email form{display:grid;gap:11px}.profile-security-subpanel{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--bg)}.profile-security-subpanel>summary{cursor:pointer;color:var(--accent);font-weight:800}.profile-security-subpanel form{margin-top:13px}.profile-pending-contact{padding:10px 12px;border-radius:10px;background:var(--warm-accent-soft);line-height:1.45}.contact-verification-return{max-width:1000px;margin:18px auto;text-align:center}
@media(max-width:820px){.profile-settings-layout{display:block}.profile-settings-sidebar{top:calc(env(safe-area-inset-top,0px) + 58px);margin-bottom:14px;padding:6px 0;background:var(--bg)}.profile-settings-nav{display:flex;gap:7px;overflow-x:auto;padding:7px;border-radius:14px;scrollbar-width:none}.profile-settings-nav::-webkit-scrollbar{display:none}.profile-settings-nav a,.profile-settings-nav button{display:flex;flex:0 0 auto;gap:7px;width:auto;min-height:44px;padding:6px 10px;white-space:nowrap}.profile-settings-nav a>span,.profile-settings-nav button>span{width:32px;height:32px}.profile-settings-nav small{display:none}.profile-settings-nav b{align-self:center;font-size:.82rem}.profile-public-link{display:none}.profile-settings-content{gap:11px}.profile-security-email{align-items:flex-start}.profile-security-email form .btn{width:100%;justify-content:center}}

/* Profil : aucun contenu ne doit dépasser des cartes, y compris l’éditeur riche. */
.profile-settings-content,.profile-settings-content>details,.profile-collapsible>summary>*{min-width:0;max-width:100%}
.profile-collapsible> :not(summary){width:auto;max-width:calc(100% - 48px)}
.profile-collapsible>form{margin-bottom:24px;padding-bottom:2px}
.profile-collapsible form,.profile-collapsible .rich-editor,.profile-collapsible .rich-editable,.profile-collapsible .richtoolbar,.profile-collapsible input,.profile-collapsible textarea,.profile-collapsible select{min-width:0;max-width:100%}
.profile-collapsible .richtoolbar{overflow-x:auto;overscroll-behavior-inline:contain}
.profile-collapsible-icon{position:relative;font-size:0;transform:none!important}
.profile-collapsible-icon::before{content:"";display:block;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transform-origin:center}
.profile-collapsible[open] .profile-collapsible-icon::before{transform:translateY(2px) rotate(225deg)}
@media(max-width:700px){.profile-collapsible> :not(summary){max-width:calc(100% - 32px)}.profile-collapsible>form{margin-bottom:17px}.profile-collapsible-summary{grid-template-columns:minmax(0,1fr) 34px;gap:10px}.profile-collapsible-icon{width:32px;height:32px}.profile-collapsible .btn{max-width:100%;white-space:normal;text-align:center}.profile-collapsible .richtoolbar{width:100%;padding-inline:8px}.profile-collapsible .rich-editable{width:100%;overflow-x:hidden}}

/* Menu d’affichage : reste contenu même avec le texte très agrandi. */
.display-menu-panel{overflow-x:hidden;max-width:calc(100vw - 24px)}
.display-menu-panel :where(div,section,p,span,strong,small,label){min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.display-menu-panel button{min-width:0;max-width:100%;white-space:normal}
.display-menu-panel .text-size-choices{grid-template-columns:repeat(auto-fit,minmax(54px,1fr))}
.display-menu-panel .display-organization-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}
.display-menu-panel .display-organization-actions button{width:100%}
.display-menu-panel .comfort-switch>span{flex:1;min-width:0}
.display-menu-panel .display-organization-help,.display-menu-panel .comfort-switch small{white-space:normal;overflow-wrap:anywhere;word-break:normal}
.display-menu-panel .display-menu-section-head>div{min-width:0}
@media(max-width:520px){.display-menu-panel{right:max(8px,env(safe-area-inset-right,0px));left:max(8px,env(safe-area-inset-left,0px));width:auto;max-width:none;padding:15px 15px calc(15px + env(safe-area-inset-bottom,0px))}.display-theme-choices{grid-template-columns:1fr 1fr}.display-menu-panel .text-size-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.display-menu-panel .display-organization-actions{grid-template-columns:1fr}.display-menu-section-head{grid-template-columns:34px minmax(0,1fr);gap:9px}.display-setting-icon{width:34px;height:34px}}
@media(max-width:350px){.display-theme-choices{grid-template-columns:1fr}.display-menu-panel .text-size-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Validation toujours accessible pendant l’organisation des blocs. */
.display-floating-done{position:fixed;z-index:160;right:max(18px,env(safe-area-inset-right,0px));bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 12px));display:inline-flex;align-items:center;justify-content:center;gap:9px;max-width:calc(100vw - 36px);min-height:50px;padding:12px 18px;border:1px solid color-mix(in srgb,var(--accent) 72%,white);border-radius:999px;background:var(--accent);color:var(--accent-text);font:inherit;box-shadow:0 16px 38px color-mix(in srgb,var(--accent) 38%,transparent);cursor:pointer}.display-floating-done[hidden]{display:none!important}.display-floating-done:hover{background:var(--accent-dark);transform:translateY(-1px)}.display-floating-done:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:3px}.display-floating-done>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:color-mix(in srgb,var(--accent-text) 18%,transparent);font-weight:900}.display-floating-done strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){.display-floating-done{right:12px;bottom:max(12px,calc(env(safe-area-inset-bottom,0px) + 8px));left:12px;width:calc(100% - 24px);max-width:none;border-radius:15px}.display-floating-done strong{white-space:normal;text-align:center}}

/* Finitions communes : administration lisible, champs riches et zones sûres iPhone. */
body{padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}
.admin-nav-modern{position:relative;overflow:visible;border-color:color-mix(in srgb,var(--accent) 18%,var(--border));box-shadow:0 8px 24px color-mix(in srgb,var(--text) 6%,transparent)}
.admin-nav-modern .admin-nav-primary a,.admin-nav-modern .admin-nav-dropdown summary{font-weight:800;line-height:1.2}
.admin-nav-modern .admin-nav-primary a>span,.admin-nav-modern .admin-nav-dropdown summary>span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:color-mix(in srgb,var(--accent) 10%,var(--card));font-size:13px}
.admin-nav-modern .admin-nav-primary a.is-active>.admin-item-icon{background:rgba(255,255,255,.18)}
.event-comment-form>div{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}.event-comment-form>div small{color:var(--text-sub)}
.event-comment-body img{display:block;max-width:min(100%,680px);height:auto;margin:12px 0;border-radius:14px}
.idea-body{margin-top:10px}.idea-body img{display:block;max-width:min(100%,760px);height:auto;margin:12px 0;border-radius:14px}
@media(max-width:900px){
  .site-header .inner,.container{padding-right:max(12px,env(safe-area-inset-right,0px));padding-left:max(12px,env(safe-area-inset-left,0px))}
  .admin-nav-modern{display:block;padding:9px;margin-inline:0}
  .admin-nav-brand{width:100%;margin-bottom:7px;padding:0 0 8px;border-right:0;border-bottom:1px solid var(--border)}
  .admin-nav-primary{display:flex;flex-wrap:nowrap!important;width:100%;padding-bottom:3px;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
  .admin-nav-primary a,.admin-nav-dropdown{flex:0 0 auto;scroll-snap-align:start}
  .admin-nav-dropdown{display:inline-block;margin-top:5px;margin-right:3px}
  .admin-nav-dropdown-panel{right:max(10px,env(safe-area-inset-right,0px));left:max(10px,env(safe-area-inset-left,0px));max-height:calc(100dvh - var(--site-header-height) - env(safe-area-inset-bottom,0px) - 24px);overflow-y:auto;padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}
}
@media(max-width:520px){.event-comment-form>div .btn{width:100%;justify-content:center}.admin-nav-modern .admin-nav-primary a,.admin-nav-modern .admin-nav-dropdown summary{min-height:44px;padding:8px 10px}}
.member-dashboard-hero,.media-library-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:24px 0}.member-dashboard-hero p,.media-library-hero p{margin:4px 0;color:var(--text-sub)}.member-dashboard-counts{display:flex;gap:8px;flex-wrap:wrap}.member-dashboard-counts a{display:grid;min-width:112px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--card);color:var(--text);text-decoration:none}.member-dashboard-counts strong{font-size:1.45rem;color:var(--accent)}.member-dashboard-counts span{font-size:.72rem;color:var(--text-sub)}.member-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-list{display:grid;gap:6px}.dashboard-list>a{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:12px;color:var(--text);text-decoration:none}.dashboard-list>a:hover{background:var(--accent-soft)}.dashboard-list>a>span:first-child{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent-soft)}.dashboard-list strong,.dashboard-list small{display:block}.dashboard-list small{margin-top:2px;color:var(--text-sub)}.dashboard-list em{color:var(--accent);font-size:.74rem;font-style:normal;font-weight:800}.dashboard-empty{padding:24px;text-align:center;color:var(--text-sub)}.dashboard-clubs{display:flex;gap:9px;flex-wrap:wrap}.dashboard-clubs a{display:grid;grid-template-columns:36px auto;gap:2px 9px;padding:10px 13px;border:1px solid var(--border);border-radius:13px;color:var(--text);text-decoration:none}.dashboard-clubs a>span{grid-row:1/3;font-size:1.35rem}.dashboard-clubs small{color:var(--text-sub)}
.media-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.media-library-grid article{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}.media-library-grid img{width:100%;height:210px;object-fit:cover}.media-library-grid article>div{padding:11px}.media-library-grid article>div>span{display:block;margin-bottom:9px;color:var(--text-sub);font-size:.75rem}.media-library-grid article>div>div{display:flex;gap:7px;flex-wrap:wrap}.media-empty{display:flex;align-items:center;gap:16px}.media-empty>span{font-size:2rem}
.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.health-grid article{display:flex;align-items:flex-start;gap:13px;border-left:5px solid var(--muted)}.health-grid article>span{font-size:1.6rem}.health-grid article strong,.health-grid article p,.health-grid article small{display:block;margin:0}.health-grid article p{margin-top:5px}.health-grid article small{margin-top:5px;color:var(--text-sub)}.health-grid .is-ok{border-left-color:#22a06b}.health-grid .is-error{border-left-color:#dc3f3f}.health-grid .is-warning{border-left-color:#d59619}.health-explanation{margin-top:15px}
.search-filter-chips{display:flex;gap:7px;overflow-x:auto;margin:12px 0 16px;padding-bottom:3px;scrollbar-width:none}.search-filter-chips a{flex:none;padding:8px 12px;border:1px solid var(--border);border-radius:999px;color:var(--text-sub);font-weight:800;text-decoration:none}.search-filter-chips a.is-active{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.notification-group-count{display:inline-grid;min-width:22px;height:22px;place-items:center;margin-left:5px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.7rem}.draft-status{display:block;margin-top:8px;color:var(--text-sub)}
.event-options-fieldset{margin:16px 0;padding:15px;border:1px solid var(--border);border-radius:14px}.event-options-fieldset legend{padding:0 6px;font-weight:850}.event-options-grid,.listing-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-options-grid label,.listing-form-grid label{margin:0}.event-capacity-summary,.listing-facts{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.event-capacity-summary span,.listing-facts span{padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text-sub);font-size:.78rem}.listing-facts strong{margin-right:5px;color:var(--text)}.listing-check{display:flex;align-items:center;gap:9px}.listing-check input{width:18px;height:18px}.marketplace-filters{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr)) auto auto;align-items:end;gap:9px;margin:0 0 16px;padding:13px;border:1px solid var(--border);border-radius:15px;background:var(--card)}.marketplace-filters label{margin:0}.listing-card-facts{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.listing-card-facts span{padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.68rem;font-weight:750}.revision-history{margin-top:14px}.revision-history>summary{cursor:pointer;font-weight:850}.revision-history>div{margin-top:12px}.accessibility-overflow-guard{max-width:100%!important;overflow-wrap:anywhere!important}
@media(max-width:760px){.member-dashboard-hero,.media-library-hero{align-items:flex-start;flex-direction:column}.member-dashboard-counts{width:100%}.member-dashboard-counts a{flex:1 1 90px}.member-dashboard-grid,.health-grid,.event-options-grid,.listing-form-grid{grid-template-columns:1fr}.marketplace-filters{grid-template-columns:1fr 1fr}.marketplace-filters .btn{min-height:44px}.media-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-library-grid img{height:150px}}
@media(max-width:480px){.marketplace-filters,.media-library-grid{grid-template-columns:1fr}.media-library-grid img{height:auto;max-height:320px}.dashboard-list>a{grid-template-columns:34px minmax(0,1fr)}.dashboard-list>a>em{grid-column:2}}

/* Navigation personnelle : deux sélections, adaptées au support utilisé. */
@media(min-width:901px){#mainNav>.nav-link-desktop[data-navigation-desktop="0"],#mainNav>.nav-link-mobile{display:none!important}}
@media(max-width:900px){#mainNav>.nav-link-desktop,#mainNav>.nav-link-mobile[data-navigation-mobile="0"]{display:none!important}}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.discover-menu-customizer{margin:24px 0 34px;padding:clamp(20px,3vw,30px);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--card)),var(--card) 68%);box-shadow:var(--shadow)}.discover-menu-customizer-head{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;align-items:start}.discover-menu-customizer-head .discover-card-icon{width:52px;height:52px}.discover-menu-customizer-head h2{margin:4px 0 5px;font-size:clamp(21px,2.5vw,29px)}.discover-menu-customizer-head p{max-width:780px;margin:0;color:var(--text-sub);line-height:1.55}.discover-menu-device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}.discover-menu-device-grid fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--card)}.discover-menu-device-grid legend{padding:0 7px;color:var(--text);font-size:1rem;font-weight:850}.discover-menu-device-grid legend small{margin-left:7px;color:var(--accent);font-size:.75rem}.discover-menu-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.discover-menu-choice{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;align-items:center;margin:0;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--bg);cursor:pointer}.discover-menu-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.discover-menu-choice:has(input:disabled){cursor:default}.discover-menu-choice input{width:20px;height:20px;margin:0;accent-color:var(--accent)}.discover-menu-choice b,.discover-menu-choice small{display:block}.discover-menu-choice b{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.discover-menu-choice small{margin-top:2px;color:var(--text-sub);font-size:.67rem}.discover-menu-feedback{min-height:20px;margin:12px 0 0;color:var(--accent);font-size:.82rem;font-weight:750}.discover-menu-actions{display:flex;flex-wrap:wrap;gap:9px}.discover-menu-actions .btn{margin:0}
@media(max-width:760px){.discover-menu-customizer{margin:16px 0 26px;padding:17px;border-radius:18px}.discover-menu-customizer-head{grid-template-columns:43px minmax(0,1fr);gap:11px}.discover-menu-customizer-head .discover-card-icon{width:43px;height:43px}.discover-menu-device-grid{grid-template-columns:1fr}.discover-menu-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.discover-menu-actions{display:grid;grid-template-columns:1fr}.discover-menu-actions .btn{width:100%;justify-content:center}}
@media(max-width:390px){.discover-menu-choices{grid-template-columns:1fr}}

/* Configurateur de navigation repliable et ordonnable. */
.discover-menu-customizer{padding:0;overflow:hidden}.discover-menu-customizer>summary{list-style:none;padding:clamp(18px,3vw,26px);cursor:pointer}.discover-menu-customizer>summary::-webkit-details-marker{display:none}.discover-menu-customizer-head{grid-template-columns:52px minmax(0,1fr) 36px}.discover-menu-customizer-chevron{display:block;width:11px;height:11px;margin:auto;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-3px) rotate(45deg);transition:transform .18s ease}.discover-menu-customizer[open] .discover-menu-customizer-chevron{transform:translateY(3px) rotate(225deg)}.discover-menu-customizer-body{padding:0 clamp(18px,3vw,30px) clamp(20px,3vw,30px);border-top:1px solid var(--border)}.discover-menu-order-hint{margin:0 0 10px;color:var(--text-sub);font-size:.72rem}.discover-menu-choices{grid-template-columns:1fr}.discover-menu-choice{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;padding:7px}.discover-menu-choice>label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;align-items:center;min-width:0;margin:0;cursor:pointer}.discover-menu-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.discover-menu-drag,.discover-menu-move-buttons button{display:grid;place-items:center;border:1px solid var(--border);background:var(--card);color:var(--text-sub);cursor:grab}.discover-menu-drag{width:32px;height:38px;border-radius:9px;font-size:20px;touch-action:none}.discover-menu-drag:active{cursor:grabbing}.discover-menu-move-buttons{display:flex;gap:4px}.discover-menu-move-buttons button{width:30px;height:30px;border-radius:8px;cursor:pointer}.discover-menu-choice.is-dragging{opacity:.58;border-color:var(--accent);box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 22%,transparent)}
@media(min-width:901px){#mainNav>.nav-link-desktop{order:var(--navigation-desktop-order)}}
@media(max-width:900px){#mainNav>.mobile-nav-search{order:-50}#mainNav>.mobile-space-picker{order:-40}#mainNav>.mobile-admin-panel{order:-30}#mainNav>.mobile-nav-primary-label{order:-20}#mainNav>.nav-link-mobile[data-navigation-mobile="1"]{display:inline-flex!important;visibility:visible!important;order:var(--navigation-mobile-order)}#mainNav>.mobile-nav-utilities{order:50}.discover-menu-customizer-head{grid-template-columns:43px minmax(0,1fr) 30px}.discover-menu-customizer-body{padding:0 14px 18px}.discover-menu-choice{grid-template-columns:34px minmax(0,1fr)}.discover-menu-move-buttons{grid-column:2;justify-content:flex-end}.discover-menu-move-buttons button{width:36px;height:32px}}

/* En-tête permanent, mesuré selon le menu, le texte et l’appareil. */
html{scroll-padding-top:calc(var(--site-header-height) + 14px)}
.site-header{position:fixed;z-index:100;top:0;right:0;left:0;width:100%;padding-top:env(safe-area-inset-top,0px)}
.profile-settings-sidebar{top:calc(var(--site-header-height) + 14px)}
.help-search{top:calc(var(--site-header-height) + 8px)}
@media(max-width:900px){.site-header{max-width:100vw}.site-header .inner{width:100%}.profile-settings-sidebar{top:calc(var(--site-header-height) + 6px)}.mobile-account-menu-panel,.notif-dropdown{top:calc(var(--site-header-height) + 8px);max-height:calc(100dvh - var(--site-header-height) - 22px)}.display-menu-panel{top:calc(var(--site-header-height) + 8px);max-height:calc(100dvh - var(--site-header-height) - 22px)}}

/* Accueil : chiffres de la communauté lisibles et intégrés au décor. */
.community-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:14px 0 22px;padding:10px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--card) 94%,var(--accent-soft));box-shadow:var(--shadow)}.community-stat{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;min-width:0;padding:11px 12px;border-radius:13px;background:var(--card)}.community-stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--accent-soft);font-size:18px}.community-stat>span:last-child{min-width:0}.community-stat strong,.community-stat small{display:block}.community-stat strong{color:var(--text);font-size:1.12rem;line-height:1.1}.community-stat small{margin-top:3px;overflow:hidden;color:var(--text-sub);font-size:.7rem;font-weight:700;line-height:1.25;text-overflow:ellipsis}.community-stat-online .community-stat-icon{background:color-mix(in srgb,var(--ok) 13%,var(--card));color:var(--ok);font-size:14px}.community-stat-online strong{color:var(--ok)}.community-stat-visitors .community-stat-icon{color:var(--accent)}
@media(max-width:980px){.community-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.community-stat-online,.community-stat-visitors{grid-column:auto}}
@media(max-width:600px){.community-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0 18px;padding:7px;border-radius:15px}.community-stat{grid-template-columns:34px minmax(0,1fr);gap:8px;padding:9px}.community-stat-icon{width:34px;height:34px;font-size:16px}.community-stat strong{font-size:1rem}.community-stat small{white-space:normal}.community-stat-visitors:last-child{grid-column:1/-1}}

/* Distinction immédiate entre défi libre et concours classé. */
.challenge-contest-explainer{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:start;margin:14px 0 18px;padding:15px 17px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:15px;background:color-mix(in srgb,var(--accent) 8%,var(--card))}.challenge-contest-explainer>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);font-size:22px}.challenge-contest-explainer strong{display:block;font-size:.95rem}.challenge-contest-explainer p{margin:4px 0 0;color:var(--text-sub);font-size:.82rem;line-height:1.5}.challenge-contest-explainer a{font-weight:800}.challenge-contest-explainer-competitive{border-color:color-mix(in srgb,#d49a22 36%,var(--border));background:color-mix(in srgb,#d49a22 8%,var(--card))}
@media(max-width:600px){.challenge-contest-explainer{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:13px}.challenge-contest-explainer>span{width:36px;height:36px;font-size:18px}}

/* Largeur commune du produit : chaque page suit la même grille. Les limites
   plus courtes restent réservées aux lignes de texte, jamais au cadre entier. */
.container,
.site-header .inner,
.context-nav-inner,
.site-banner-inner,
.contact-verification-banner {
  width: 100%;
  max-width: var(--content-max-width);
}
.help-page,
.legal-page,
.legal-hub,
.search-page,
.profile-page {
  width: 100%;
  max-width: none;
}
.help-page { padding-left: 0; padding-right: 0; }
.site-settings-form,
.admin-management-section,
.protection-intro-note,
.protection-block-list,
.protection-settings,
.discuss-customize-form,
.community-council-list,
.real-admin-tool-card {
  width: 100%;
  max-width: none;
}
.card > form:not(.inline-form),
.real-admin-card > form,
.admin-management-section form {
  width: 100%;
  min-width: 0;
}
.auth-form-card {
  width: min(100%, 640px);
  margin-left: auto;
  margin-right: auto;
}
.auth-form-card input,
.auth-form-card select,
.auth-form-card textarea,
.auth-form-card .btn {
  max-width: 100%;
}

@media (max-width: 760px) {
  .container { padding-left: 14px; padding-right: 14px; }
  .site-header .inner { padding-left: 14px; padding-right: 14px; }
  .context-nav { padding-left: 14px; padding-right: 14px; }
  .context-nav-inner { padding-left: 8px; padding-right: 8px; }
  .help-page,
  .legal-page,
  .legal-hub,
  .search-page,
  .profile-page { margin-left: 0; margin-right: 0; }
  .auth-form-card { width: 100%; }
}

/* Cohérence visuelle 2026 : une interface calme, précise et prévisible.
   La profondeur vient de l’espace et des séparations, avec très peu d’effets. */
:root {
  --shadow: 0 1px 2px color-mix(in srgb, var(--text) 5%, transparent), 0 8px 24px color-mix(in srgb, var(--text) 5%, transparent);
  --shadow-lift: 0 2px 4px color-mix(in srgb, var(--text) 6%, transparent), 0 16px 38px color-mix(in srgb, var(--text) 9%, transparent);
}
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
#main-content { padding-top: var(--space-page); }
.page-title { margin-top: 0; text-wrap: balance; }

/* Keep contest reply guidance readable inside the reply card at every width. */
.contest-reply-guidance{grid-template-columns:36px minmax(0,1fr);align-items:start}.contest-reply-guidance-copy{min-width:0;overflow-wrap:anywhere}.contest-reply-guidance .contest-participate-link{display:inline-flex;width:auto;max-width:100%;margin-top:12px;white-space:normal;text-align:center;justify-content:center;line-height:1.35}.contest-reply-guidance strong{overflow-wrap:anywhere}
@media(max-width:600px){.contest-reply-guidance{grid-template-columns:30px minmax(0,1fr);gap:9px}.contest-reply-guidance>span{width:30px;height:30px;font-size:16px}.contest-reply-guidance .contest-participate-link{width:100%;box-sizing:border-box}}

.thread-contest-dates{margin:14px 0 20px;padding:14px 16px;border:1px solid color-mix(in srgb,#d49a22 42%,var(--border));border-radius:15px;background:color-mix(in srgb,#d49a22 8%,var(--card));display:grid;gap:10px}.thread-contest-dates-heading{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.thread-contest-dates-heading>span:first-child{font-size:1.2rem}.thread-contest-phase{margin-left:auto;padding:4px 9px;border-radius:999px;background:var(--accent-soft);font-size:.78rem;font-weight:700}.thread-contest-dates-list{display:flex;gap:12px;flex-wrap:wrap}.thread-contest-dates-list>span{display:flex;gap:6px;flex-wrap:wrap}.thread-contest-dates a{font-weight:700}@media(max-width:600px){.thread-contest-dates-list{display:grid;gap:5px}.thread-contest-phase{margin-left:0}}

/* Module inscription-protegee-et-reglement. Ordre défini dans manifest.json. */
.page-sub { max-width: var(--reading-width); color: var(--text-sub); text-wrap: pretty; }
.home-kicker,
.section-kicker,
.page-kicker,
.admin-kicker { letter-spacing: .09em; }

.card,
.forum-section-card,
.forum-category-card,
.discover-card,
.public-club-card,
.club-category-card,
.real-admin-card,
.admin-panel,
.meeting-card {
  border-radius: var(--radius-card);
  background: var(--surface-raised);
  box-shadow: var(--shadow);
}
.community-hero,
.page-hero,
.club-hero,
.public-club-hero,
.club-directory-hero,
.spaces-hub-hero,
.discover-hero,
.ideas-hero,
.real-admin-hero {
  border-radius: var(--radius-hero);
}

:where(input[type=text],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=search],input[type=number],input[type=date],input[type=datetime-local],input[type=time],select,textarea),
.btn,
button,
summary {
  border-radius: var(--radius-control);
}
:where(input[type=text],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=search],input[type=number],input[type=date],input[type=datetime-local],input[type=time],select,textarea) {
  width: 100%;
  max-width: 100%;
  border-color: color-mix(in srgb, var(--border) 88%, var(--text-sub));
  background: color-mix(in srgb, var(--card) 84%, var(--bg));
}
label { line-height: 1.35; }
form > label + label,
form > label + fieldset,
form > fieldset + label,
form > fieldset + fieldset { margin-top: 14px; }

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 38%, transparent);
  outline-offset: 3px;
}
.btn { justify-content: center; transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease; }
.btn-primary { box-shadow: 0 5px 14px color-mix(in srgb, var(--accent) 20%, transparent); }
.site-header { border-bottom-color: color-mix(in srgb, var(--border) 76%, transparent); }
.site-footer { margin-top: clamp(36px, 6vw, 72px); }

@media (hover:hover) and (pointer:fine) {
  .card[href]:hover,
  .discover-card:hover,
  .public-club-card:hover,
  .club-category-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
  .btn:hover { transform: translateY(-1px); }
}
@media (max-width: 760px) {
  #main-content { padding-top: 18px; }
  .card { margin: 14px 0; padding: 17px; }
  .community-hero,
  .page-hero,
  .club-hero,
  .public-club-hero,
  .club-directory-hero,
  .spaces-hub-hero,
  .discover-hero,
  .ideas-hero,
  .real-admin-hero { border-radius: 19px; }
  :where(.btn,button,input,select,textarea,summary) { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Edition des messages : flux de lecture vertical, indépendant des boutons. */
.post-edit-form .rich-editable { display:block; min-width:0; max-width:100%; box-sizing:border-box; }
.post-edit-form .rich-editable blockquote { display:block; margin:12px 0; padding:12px 14px; border-left:3px solid var(--accent); background:var(--card); overflow-wrap:anywhere; min-width:0; }
.post-edit-form .rich-editable img { display:block; max-width:min(100%,360px); max-height:260px; margin:12px 0; float:none; }

.community-pulse.community-pulse--exchanges { grid-template-columns: minmax(0,1fr); }

.community-stats a.community-stat { color:var(--text); text-decoration:none; border-radius:var(--radius-control); transition:background .15s ease; }
.community-stats a.community-stat:hover { background:color-mix(in srgb,var(--accent) 9%,transparent); }
.community-stats a.community-stat:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.activity-list { list-style:none; padding:0; margin:20px 0; }
.activity-list li { padding:14px 0; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.activity-list .field-hint { margin:5px 0 0; }

/* Private message composition and group settings. */
.pm-inbox-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 20px;
}
.pm-inbox-heading .page-title { margin: 0; }
.pm-new { display: grid; gap: 18px; max-width: 900px; }
.pm-new label, .pm-rename label { display: block; margin-bottom: 8px; font-weight: 600; }
.pm-new input[type="search"], .pm-new input[name="title"], .pm-rename input {
  width: 100%;
  box-sizing: border-box;
}
.pm-recipients { border: 0; padding: 0; margin: 0; min-width: 0; }
.pm-recipients legend { font-weight: 700; font-size: 1.1rem; }
.pm-selected { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.pm-recipient {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  padding: 5px 8px 5px 12px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--card);
}
.pm-recipient span { overflow-wrap: anywhere; }
.pm-recipient button {
  border: 0;
  background: transparent;
  color: var(--text);
  font-size: 1.4rem;
  min-width: 32px;
  min-height: 32px;
  cursor: pointer;
}
.pm-search-results { display: grid; gap: 6px; padding: 0; margin: 0; list-style: none; }
.pm-search-results button { width: 100%; justify-content: flex-start; text-align: left; }
.pm-error { color: var(--text); border-left: 3px solid var(--accent); padding: 12px; }
.pm-group-name, .pm-group-settings p, .pm-inbox-title { overflow-wrap: anywhere; }
.pm-group-settings { margin-bottom: 20px; }
.pm-group-settings summary { cursor: pointer; font-weight: 600; }
.pm-rename { display: grid; gap: 12px; margin-top: 16px; max-width: 700px; }
.pm-rename button { justify-self: start; }
.pm-group-badge { display: inline-block; margin-left: 8px; font-size: .8rem; font-weight: 400; }
.pm-group-icon { flex-shrink: 0; }
@media (max-width: 600px) {
  .pm-inbox-heading .btn { width: 100%; justify-content: center; }
  .pm-new { padding: 16px; }
  .pm-inbox-list .thread-row { flex-wrap: wrap; }
  .pm-inbox-list .thread-stats { margin-left: 44px; }
}

/* Private-message counters shared by desktop and mobile navigation. */
.private-message-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 20px;
  min-height: 20px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #b42318;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  vertical-align: middle;
}
.account-menu-panel .private-message-label,
.mobile-account-menu-panel .private-message-label {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: normal;
  overflow: visible;
}
.mobile-account-menu summary { position: relative; }
.mobile-account-menu summary > .private-message-count {
  position: absolute;
  top: -5px;
  right: -7px;
  border: 2px solid var(--card);
  pointer-events: none;
}
.mobile-nav-action > .private-message-count { margin-left: auto; }
@media (max-width: 600px) {
  .mobile-account-menu summary > .private-message-count {
    min-width: 19px;
    min-height: 19px;
    padding: 2px 4px;
    font-size: 10px;
  }
}

.club-visibility-guide {
  margin: 24px 0;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--border);
  border-radius: var(--radius-card, 18px);
  background: var(--card);
  color: var(--text);
}
.club-visibility-intro { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.club-visibility-intro h2 { margin: 6px 0 12px; font-size: clamp(1.25rem, 2vw, 1.7rem); }
.club-free-label { flex-shrink: 0; padding: 7px 12px; border-radius: 20px; background: var(--accent); color: var(--accent-text, #112033); font-weight: 700; font-size: .85rem; }
.club-visibility-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }
.club-visibility-columns > div { padding: 20px; border: 1px solid var(--border); border-radius: 14px; }
.club-visibility-columns h3 { margin: 14px 0 10px; }
.club-visibility-columns h3 small { display: block; margin-top: 4px; font-weight: 400; font-size: .85rem; }
.club-visibility-columns p { line-height: 1.65; }
.club-visibility-state { display: inline-block; font-size: .85rem; font-weight: 700; padding: 5px 10px; border: 1px solid var(--border); border-radius: 20px; }
.club-visibility-state.is-published { border-color: var(--accent); }
.club-visibility-state.is-unpublished { border-style: dashed; }
.club-visibility-link { display: block; margin-top: 14px; }
.club-visibility-privacy { padding-top: 16px; margin-bottom: 0; border-top: 1px solid var(--border); font-size: .9rem; line-height: 1.6; }
.club-visibility-columns + .club-visibility-privacy { margin-top: 20px; }
.club-publication { scroll-margin-top: 110px; }
.club-publication-notice { border-left: 3px solid var(--accent); padding: 12px 16px; line-height: 1.65; }
.club-publication-step { margin: 0; padding: 18px; border: 1px solid var(--border); border-radius: 12px; min-width: 0; }
.club-publication-step legend { padding: 0 8px; font-weight: 700; }
.club-publication-step legend small { font-weight: 400; }
.club-publication-appearance { margin-top: 20px; }
.club-publication-appearance summary { cursor: pointer; padding: 12px 0; font-weight: 600; }
.club-publication-appearance summary span { font-weight: 400; }
.club-publication-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.club-onboarding-note { margin: 18px 0; padding: 16px 20px; border: 1px solid var(--border); border-radius: 12px; line-height: 1.65; }
@media (max-width: 760px) {
  .club-visibility-intro { flex-direction: column; }
  .club-visibility-columns { grid-template-columns: 1fr; }
  .club-visibility-columns > div { padding: 16px; }
  .club-publication-actions { align-items: stretch; flex-direction: column; }
  .club-publication-actions .btn { white-space: normal; text-align: center; }
}

.help-item[id] { scroll-margin-top: 110px; }

.post-edit-media { margin: 16px 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--card); }
.post-edit-media h3 { margin: 0 0 8px; font-size: 1rem; }
.post-edit-media p { font-size: .88rem; line-height: 1.6; }
.post-edit-media-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 12px; }
.post-edit-media-card { display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; min-width: 0; }
.post-edit-media-card img { width: 100%; height: 125px; object-fit: contain; border-radius: 6px; }
.post-edit-media-card .btn { white-space: normal; text-align: center; }
.post-edit-media-status { margin: 12px 0 0; }
.post-edit-media [hidden] { display: none !important; }
.post-edit-help { margin: 0 0 12px; line-height: 1.6; font-size: .9rem; }
.feedback-entry { margin: 24px 0; }
.feedback-entry-heading h2, .feedback-progress h2 { margin: 0 0 10px; font-size: 1.45rem; }
.feedback-entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
.feedback-entry-grid > a { display: flex; flex-direction: column; gap: 12px; padding: 22px; background: var(--card); border: 1px solid var(--border); border-radius: 16px; color: var(--text); text-decoration: none; }
.feedback-entry-grid > a:hover, .feedback-entry-grid > a:focus-visible { border-color: var(--accent); }
.feedback-entry-grid strong { font-size: 1.08rem; }
.feedback-entry-grid span { line-height: 1.65; }
.feedback-entry-grid small { color: var(--text-sub); }
.feedback-entry-grid b { margin-top: auto; color: var(--accent); }
.feedback-follow-link { margin-top: 14px; }
.feedback-progress { margin: 24px 0; padding: 24px; }
.feedback-progress ul { list-style: none; padding: 0; margin: 20px 0; display: grid; gap: 16px; }
.feedback-progress li { display: grid; gap: 5px; padding-left: 14px; border-left: 3px solid var(--accent); }
.feedback-progress li > a { font-weight: 700; }
.feedback-progress li > span { color: var(--text-sub); line-height: 1.6; }
.login-alternative { border-top: 1px solid var(--border); padding-top: 16px; margin-top: 16px; }
.login-alternative summary { cursor: pointer; font-weight: 600; line-height: 1.5; }
.login-alternative p { line-height: 1.6; font-size: .9rem; }
.login-remember-help { padding: 12px; border: 1px solid var(--border); border-radius: 10px; margin-top: 12px; }
@media (max-width: 700px) {
  .feedback-entry-grid { grid-template-columns: 1fr; }
  .post-edit-media-list { grid-template-columns: 1fr; }
  .post-edit-media-card img { height: 150px; }
}

.post-edit-media-card label { display: grid; gap: 4px; font-size: .78rem; }
.post-edit-media-card input { min-width: 0; width: 100%; margin: 0; box-sizing: border-box; }
.topic-photo-library {
  width: min(740px, calc(100vw - 28px));
  max-height: 85vh;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  color: var(--text);
}
.topic-photo-library::backdrop { background: #0008; }
.topic-photo-library-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  gap: 8px;
}
.topic-photo-library-grid label {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow-wrap: anywhere;
}
.topic-photo-library-grid label:has(input:checked) { border-color: var(--accent); }
.topic-photo-library-grid input[type="checkbox"] { width: auto; justify-self: start; }
.topic-photo-library-grid img { width: 100%; height: 100px; object-fit: contain; }
.topic-photo-library-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.topic-photo-library-actions [hidden] { display: none; }

.gallery-controls { display: grid; gap: .75rem; margin-block: 1rem; }
.gallery-control-row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: end; }
.gallery-control-row label { display: grid; gap: .25rem; flex: 1 1 12rem; min-width: 0; }
.gallery-control-row input, .gallery-control-row select { width: 100%; min-width: 0; }

/* Prix du public : fiches des exposants. */
.pv-exhibitor-counts {
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
 gap:16px;
 margin:18px 0;
}
.pv-exhibitor-counts p { overflow-wrap:anywhere; }
.pv-exhibitor-card { margin:16px 0; }
.pv-exhibitor-card summary { cursor:pointer;font-weight:650; }
.pv-exhibitor-card form { margin-top:18px; }
.pv-exhibitors fieldset label { display:flex;flex-direction:column;gap:7px; }
.pv-exhibitors fieldset input {
 box-sizing:border-box;max-width:100%;width:100%;
 padding:11px 12px;border:1px solid var(--border,#cbd5e1);
 border-radius:8px;font:inherit;
 background:var(--input-bg,var(--card-bg,#fff));color:inherit;
}
.pv-exhibitors fieldset[disabled] { opacity:.65; }
@media(max-width:520px) {
 .pv-exhibitor-counts { grid-template-columns:1fr; }
 .pv-exhibitor-card button,.pv-exhibitors .pv-actions .btn {
  width:100%;box-sizing:border-box;white-space:normal;
 }
 .pv-exhibitors .pv-actions {
  display:flex;flex-direction:column;align-items:stretch;
 }
}

/* Options de la projection : cases lisibles sur téléphone et grand écran. */
#pv-live-settings fieldset { margin:18px 0;padding:16px;border:1px solid var(--border,#cbd5e1);border-radius:12px; }
#pv-live-settings .pv-live-option { display:flex;align-items:center;gap:12px;margin:14px 0;line-height:1.5;cursor:pointer; }
#pv-live-settings .pv-live-option input[type="checkbox"] { width:18px;height:18px;min-height:0;flex:0 0 18px;margin:0;padding:0;accent-color:var(--accent,#4e8abf); }
#pv-participant-results { overflow-x:auto; }

/* Deux étapes distinctes : construction puis gestion. */
.pv-contest-nav { display:flex;flex-wrap:wrap;gap:12px;margin:22px 0; }
.pv-contest-nav a,.pv-contest-nav span {
 padding:14px 18px;border:1px solid var(--border,#cbd5e1);
 border-radius:12px;text-decoration:none;font-weight:650;line-height:1.4;
}
.pv-contest-nav a[aria-current] { background:var(--accent,#3478b9);color:var(--accent-text,#fff); }
.pv-contest-nav span { opacity:.6; }
.pv-exhibitors #themes,.pv-exhibitors #participants { scroll-margin-top:180px; }
.pv-exhibitors #themes { margin-top:0; }
@media(max-width:600px) {
 .pv-contest-nav { flex-direction:column; }
 .pv-contest-nav a,.pv-contest-nav span { display:block; }
}

/* Actions et réglages à la demande. */
.pv-admin .pv-disclosure > summary { cursor:pointer;font-weight:700;font-size:1.12rem;padding:8px 0; }
.pv-admin .pv-disclosure[open] > summary { margin-bottom:20px; }
.pv-admin .pv-disclosure > .pv-card { border:0;padding:0;box-shadow:none; }
.pv-build-steps { display:flex;gap:12px;flex-wrap:wrap;margin:20px 0; }
.pv-build-steps a { padding:12px 16px;background:var(--surface,#fff);border:1px solid var(--border,#cbd5e1);border-radius:10px;text-decoration:none;font-weight:650; }
.pv-admin button,.pv-admin .btn { min-height:44px;white-space:normal; }
.pv-admin summary { min-height:44px;align-content:center; }
.pv-projection-presets { margin:18px 0; }
.pv-admin .pv-config-fieldset { min-width:0; }
@media(max-width:600px) {
 .pv-build-steps { flex-direction:column; }
 .pv-admin .pv-launch { align-items:stretch; }
 .pv-admin .pv-launch form,.pv-admin .pv-launch button { width:100%; }
 .pv-admin .pv-actions { flex-wrap:wrap; }
 .pv-admin .pv-stats { gap:10px; }
}

/* Une hiérarchie commune, sans changer les préférences ni les droits. */
.simple-publish-trigger { white-space:nowrap;min-height:42px; }
.simple-publish-dialog { width:min(560px,calc(100% - 28px));max-height:85dvh;overflow:auto;padding:24px;border:1px solid var(--border);border-radius:20px;background:var(--card);color:var(--text);box-shadow:var(--shadow-lift); }
.simple-publish-dialog::backdrop { background:rgba(0,0,0,.55); }
.simple-publish-dialog header { display:flex;align-items:flex-start;gap:16px;justify-content:space-between;margin-bottom:18px; }
.simple-publish-dialog h2 { margin:0 0 8px;font-size:1.45rem; }
.simple-publish-dialog p { margin:0; }
.simple-task-list { display:grid;gap:12px; }
.simple-task-list a { display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);background:var(--bg); }
.simple-task-list a:hover { border-color:var(--accent); }
.simple-task-list a>span:nth-child(2) { flex:1;min-width:0; }
.simple-task-list strong,.simple-task-list small { display:block; }
.simple-task-list small { color:var(--text-sub);margin-top:5px;line-height:1.5; }
.simple-note { color:var(--text-sub);font-size:.9rem;line-height:1.5;margin:14px 0!important; }
.simple-details { margin:18px 0;border:1px solid var(--border);border-radius:14px;padding:8px 18px;background:var(--card); }
.simple-details>summary { cursor:pointer;font-weight:650;min-height:44px;align-content:center; }
.simple-details[open]>summary { margin-bottom:16px; }
.simple-details .community-stats { margin:0 0 14px; }
.simple-compose-destination { padding:12px 16px;border-left:3px solid var(--accent);background:var(--bg);border-radius:8px; }
.simple-directory-hero { max-width:760px;margin:12px 0 26px; }
.simple-directory-hero .page-title { margin-bottom:8px; }
.simple-directory-hero label { display:block;font-weight:650;margin:22px 0 8px; }
.simple-directory-hero input { width:100%;min-height:48px; }
.simple-shortcuts { display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0 26px; }
.simple-shortcuts>a { display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--border);background:var(--card);padding:10px 16px;border-radius:10px;text-decoration:none; }
.discover-card[hidden],.discover-section[hidden] { display:none!important; }
#simple-reply { scroll-margin-top:calc(var(--site-header-height) + 20px); }
.simple-sidebar .side-widget { box-shadow:none; }
/* Ne pas surcharger l'en-tête des petits écrans. */
@media(max-width:900px) {
 .site-header .header-pola-button { display:none; }
 .simple-publish-trigger { min-height:40px;padding:8px 12px;font-size:.9rem; }
 .simple-publish-dialog { padding:18px; }
 .simple-task-list a { padding:15px 12px; }
 .simple-shortcuts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }
 .simple-shortcuts>a { justify-content:center;text-align:center; }
 .simple-details { padding:8px 12px; }
 .compose-choice-grid { grid-template-columns:minmax(0,1fr); }
 .composer-publish-row { flex-wrap:wrap;gap:12px; }
}
@media(min-width:901px) {
 .site-header .header-pola-button small { display:none; }
 .site-header .search-form { min-width:140px; }
}
.simple-search-form { margin:20px 0;max-width:760px; }
.simple-search-form label { display:block;font-weight:650;margin-bottom:8px; }
.simple-search-form>div { display:flex;gap:10px; }
.simple-search-form input { flex:1;min-width:0;min-height:46px; }
.simple-inbox-controls { display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:20px 0; }
.simple-inbox-controls>label:first-child { flex:1;min-width:200px; }
.simple-inbox-controls input[type=search] { display:block;width:100%;margin-top:8px; }
.simple-inbox-controls .simple-note { width:100%; }
.simple-unread-choice { display:flex;gap:10px;align-items:center;min-height:44px; }
.simple-unread-choice input { width:20px;height:20px; }
.pm-inbox-list [data-conversation-name][hidden] { display:none!important; }
.simple-account-more { border-top:1px solid var(--border);margin-top:6px;padding-top:6px; }
.simple-account-more>summary { cursor:pointer;padding:12px;font-weight:650;min-height:44px; }
#simple-private-reply { scroll-margin-top:calc(var(--site-header-height) + 20px); }
@media(max-width:600px) {
 .simple-search-form>div { flex-direction:column; }
 .simple-inbox-controls { display:block; }
 .simple-unread-choice { margin-top:12px; }
}

.simple-mobile-publish { display:none; }
.simple-account-more a { display:flex;gap:10px;padding:12px;text-decoration:none;color:var(--text);min-height:44px;align-items:center; }
@media(max-width:900px) { #mainNav .simple-mobile-publish { display:flex;border:1px solid var(--accent);border-radius:12px;color:var(--accent);font-weight:700;min-height:48px; } }

/* Contrôles clair/sombre et format mobile, 26 octobre 2026. */
.simple-banner-copy { flex:1;min-width:0; }
.simple-banner-copy>summary { display:none;cursor:pointer;font-weight:650; }
.simple-banner-copy[open] { display:flex;gap:14px;align-items:center; }
.simple-banner-copy .site-banner-text { flex:1; }
.simple-first-visit>summary { font-weight:650;cursor:pointer;min-height:44px;align-content:center; }
.simple-first-visit[open]>summary { margin-bottom:18px; }
.simple-first-visit:not([open]) { display:block;padding:14px 20px; }
/* Les retours d’état suivent la palette du site. */
.simple-publish-dialog :focus-visible,.simple-details summary:focus-visible,
.simple-first-visit summary:focus-visible,.simple-banner-copy summary:focus-visible {
 outline:3px solid var(--accent);outline-offset:4px;border-radius:6px;
}
@media(max-width:760px) {
 .site-banner .site-banner-inner { padding:8px 14px;gap:8px;align-items:flex-start; }
 .simple-banner-copy>summary { display:list-item;min-height:40px;align-content:center;text-align:left; }
 .simple-banner-copy[open] { display:block; }
 .simple-banner-copy .site-banner-text { display:block;text-align:left;font-size:.9rem;line-height:1.5;padding:10px 0; }
 .simple-banner-copy .site-banner-link { display:inline-flex;width:auto;min-height:40px;padding:8px 12px;margin-bottom:8px; }
 .site-banner .site-banner-close { min-height:40px;min-width:40px; }
 .community-hero:not(.community-hero--compact) { padding:22px 18px; }
 .community-hero:not(.community-hero--compact) .page-title { font-size:clamp(26px,7vw,34px);line-height:1.18; }
 .community-hero:not(.community-hero--compact) .home-kicker { display:none; }
 .community-hero:not(.community-hero--compact) p { font-size:1rem;line-height:1.5; }
 .community-hero .home-actions { display:flex;flex-direction:column;align-items:stretch; }
 .community-hero .home-actions .btn { text-align:center;justify-content:center; }
 .simple-first-visit { margin:14px 0; }
 /* Le signalement reste dans le pied de page, sans recouvrir une action. */
 .bug-report-launcher { display:none!important; }
}
@media(prefers-reduced-motion:reduce) {
 .simple-publish-dialog,.simple-task-list a { transition:none; }
}

.simple-publish-dialog h2 { line-height:1.25; }
.simple-task-list strong { line-height:1.35; }
.simple-mobile-auth { display:none; }
@media(max-width:900px) {
 .simple-mobile-auth { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0; }
 .simple-mobile-auth .btn { text-align:center;justify-content:center;min-height:44px;white-space:normal; }
}
/* Le pied de page conserve le signalement sans superposition au texte. */
.bug-report-launcher { display:none!important; }
.guided-help .guided-help-launcher { width:48px;height:48px;min-width:48px;min-height:48px; }
#simpleToolSearch,#simpleConversationSearch,#pageSearch {
 border:1px solid var(--border);border-radius:12px;background:var(--card);
 color:var(--text);padding:12px 14px;box-shadow:none;
}
#simpleToolSearch:focus-visible,#simpleConversationSearch:focus-visible,#pageSearch:focus-visible {
 outline:3px solid var(--accent);outline-offset:2px;
}
@media(max-width:760px) {
 .post-card .post-author>a:not(.private-message-link) { display:inline-flex;align-items:center;gap:10px;min-width:0;text-decoration:none; }
 .post-card .post-author .avatar-lg { width:36px;height:36px;min-width:36px;font-size:17px!important;margin:0!important; }
 .post-card .post-author .username { margin:0;overflow-wrap:anywhere; }
 .post-card .post-author .post-rank { flex-basis:auto;margin:0;font-size:.8rem;color:var(--text-sub); }
 .post-card .post-author { gap:8px 12px; }
}

.pm-inbox-title .badge-chip { color:var(--accent-text)!important; }
@media(max-width:760px) {
 .guided-help .guided-help-launcher { display:none; }
 .simple-directory-hero input,.simple-inbox-controls input,.simple-search-form input { font-size:max(16px,1rem); }
}
@media(max-width:600px) {
 #main-content .calendar-nav { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:center; }
 #main-content .calendar-nav .calendar-month-title { grid-column:1/-1;grid-row:1;min-width:0;text-align:center;margin:4px 0 8px;font-size:1.4rem;line-height:1.3; }
 #main-content .calendar-nav>a { min-width:0;white-space:nowrap;word-break:normal;overflow-wrap:normal;justify-content:center;padding:10px 8px;font-size:.85rem;min-height:44px; }
 #main-content .calendar-nav>a:first-child { grid-column:1;grid-row:2; }
 #main-content .calendar-nav>a:last-child { grid-column:2;grid-row:2; }
}

#calendar-month,#calendar-upcoming { scroll-margin-top:calc(var(--site-header-height) + 16px); }

/* Deux lectures d’un même mois, sans modifier les événements. */
.calendar-view-tools { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0; }
.calendar-view-switch { display:flex;gap:8px; }
.calendar-view-switch[hidden] { display:none; }
.calendar-view-switch [aria-pressed="true"] { background:var(--accent);color:var(--accent-text);border-color:var(--accent); }
.calendar-month-list { display:none; }
.calendar-workspace[data-calendar-view="list"] .calendar-month-list { display:block; }
.calendar-workspace[data-calendar-view="list"] .calendar-grid { display:none; }
.calendar-workspace [hidden] { display:none!important; }
.calendar-list-count { color:var(--text-sub);font-size:.9rem;margin:12px 0; }
.calendar-list-event { display:grid;gap:8px;padding:18px 4px;border-top:1px solid var(--border);text-decoration:none;color:var(--text); }
.calendar-list-event strong { font-size:1.1rem;line-height:1.4;overflow-wrap:anywhere; }
.calendar-list-event:hover strong,.calendar-list-open { color:var(--accent); }
.calendar-list-date,.calendar-list-place { font-size:.9rem;color:var(--text-sub);line-height:1.5; }
.calendar-list-open { font-size:.9rem;font-weight:650; }
.calendar-preview-open { overflow:hidden; }
.event-preview-card { background:var(--card);color:var(--text); }
.event-preview-close { background:var(--bg);color:var(--text);min-width:44px;min-height:44px; }
.event-preview-close:hover,.event-preview-close:focus-visible { color:var(--accent);border-color:var(--accent); }
.event-preview-date,.event-preview-location { color:var(--text-sub); }
.event-preview-description { background:var(--bg);color:var(--text); }
.event-preview-rsvp-actions { flex-wrap:wrap; }
.calendar-list-event:focus-visible { outline:3px solid var(--accent);outline-offset:3px;border-radius:8px; }
@media(max-width:760px) {
 .calendar-workspace[data-calendar-view="month"] .calendar-grid { display:block; }
 .calendar-workspace[data-calendar-view="month"] .calendar-month-list { display:none; }
 .calendar-view-tools { align-items:stretch; }
 .calendar-view-switch { flex:1; }
 .calendar-view-switch .btn { flex:1;min-height:44px; }
 .calendar-view-tools>[data-calendar-today] { width:100%;justify-content:center;min-height:44px; }
 .event-preview-card { width:100%;padding:22px 18px;max-height:calc(100dvh - 28px); }
}

/* A transparent character rather than a cropped badge. */
.guided-help .guided-help-launcher {
 width:68px; height:76px; min-width:68px; min-height:76px;
 overflow:visible; border:0; border-radius:22px; background:transparent;
 box-shadow:none; transition:filter .2s ease;
}
.guided-help .guided-help-launcher img {
 width:68px; height:76px; object-fit:contain;
 filter:drop-shadow(0 4px 4px rgba(0,0,0,.23));
 transform-origin:50% 85%;
}
.guided-help .guided-help-launcher::after { display:none; }
.guided-help .guided-help-launcher:hover {
 filter:brightness(1.08); background:transparent;
}
.guided-help .guided-help-launcher:focus-visible {
 outline:3px solid var(--accent); outline-offset:4px;
}
@media (prefers-reduced-motion:reduce) {
 .guided-help .guided-help-launcher, .guided-help .guided-help-launcher img {
  animation:none!important; transition:none!important;
 }
}
@media(max-width:760px) {
 .guided-help .guided-help-launcher { display:none; }
}

.guided-help .guided-help-launcher img { animation:none!important; }
.guided-help .guided-help-launcher .pola-character-sprite {
 display:none; position:absolute; inset:4px 0; width:68px; height:68px;
 background-image:url('/public/images/pola-animation-v1.webp');
 background-size:400% 200%; background-repeat:no-repeat;
 animation:none; pointer-events:none;
 filter:drop-shadow(0 4px 4px rgba(0,0,0,.23));
}
.guided-help .pola-character-ready img { visibility:hidden; }
.guided-help .pola-character-ready .pola-character-sprite { display:block; }
@media(prefers-reduced-motion:reduce) {
 .guided-help .pola-character-ready img { visibility:visible; }
 .guided-help .pola-character-ready .pola-character-sprite { display:none; }
}

.guided-help .pola-bug-wizard { min-width:0; padding:2px; }
.guided-help .pola-bug-wizard h3 { font-size:1.05rem; line-height:1.4; margin:10px 0; }
.guided-help .pola-bug-wizard p { white-space:pre-wrap; overflow-wrap:anywhere; }
.guided-help .pola-bug-wizard label { display:grid; gap:8px; margin:16px 0; }
.guided-help .pola-bug-wizard input,.guided-help .pola-bug-wizard textarea {
 width:100%; box-sizing:border-box; min-width:0; padding:10px;
 color:var(--text); background:var(--card); border:1px solid var(--ui-hairline); border-radius:10px; font:inherit;
}
.guided-help .pola-bug-wizard textarea { resize:vertical; min-height:110px; }
.guided-help .pola-bug-actions { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.guided-help .pola-bug-actions .btn { white-space:normal; }
.guided-help .pola-bug-capture { display:flex; align-items:center; gap:10px; margin:12px 0; }
.guided-help .pola-bug-capture img { width:96px; max-height:90px; object-fit:contain; }
.guided-help .pola-bug-status { color:var(--text); font-weight:600; }

.guided-help .pola-response-extras { margin:8px 0; padding:8px; border:1px solid var(--ui-hairline); border-radius:10px; }
.guided-help .pola-response-extras summary { cursor:pointer; color:var(--accent); font-size:.8rem; }
.guided-help .pola-response-extras .guided-help-results { width:100%; margin-top:8px; }
.guided-help .guided-help-chat > .guided-help-message { flex-shrink:0; }

.composer-draft-tools { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:14px; }
.composer-draft-tools .draft-status { margin:0; }
.composer-publish-row > div { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.composer-publish-row > div > small { flex-basis:100%; }
@media(max-width:760px) {
 .composer-draft-tools { align-items:flex-start; }
 .composer-publish-row > div { width:100%; }
}

.composer-draft-tools .draft-recovery {
  flex: 1 0 100%;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.draft-recovery summary { cursor: pointer; font-weight: 650; }
.draft-recovery ul { list-style: none; padding: 0; margin: 8px 0 0; }
.draft-recovery li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 14px;
  border-top: 1px solid var(--border);
  padding: 9px 0;
}
.draft-recovery li p { margin: 3px 0 0; color: var(--text-sub); overflow-wrap: anywhere; }
.draft-version-actions { display: flex; gap: 6px; flex-wrap: wrap; }
@media (max-width: 520px) {
  .draft-recovery li { grid-template-columns: minmax(0, 1fr); }
}

/* Recovery from filters, and shortcuts within long conversations. */
.journey-conversation-actions { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.journey-empty { margin-top:16px; }
.journey-empty p { color:var(--text-sub); }
.journey-filter-state { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:16px 0; color:var(--text-sub); }
#pm-last-message,#simple-private-reply,#mes-brouillons { scroll-margin-top:calc(var(--header-height,140px) + 20px); }
.simple-inbox-controls [hidden],.journey-empty[hidden] { display:none!important; }
@media(max-width:760px) {
 .journey-conversation-actions .btn { flex:1; text-align:center; white-space:normal; }
 .journey-filter-state { align-items:flex-start; }
 .journey-filter-state .btn { width:100%; text-align:center; white-space:normal; }
 #simpleInboxReset { margin-top:10px; }
}

@media(max-width:760px) {
 #main-content .search-page { margin:8px 0 0; }
 #main-content .search-page-hero { padding:4px 0 8px; }
 #main-content .search-page-hero .home-kicker { display:none; }
 #main-content .search-page-hero p { margin:6px 0; line-height:1.45; }
 #main-content .search-page-hero .page-title { margin:0 0 6px; }
}

.privacy-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0; }
.privacy-choices a { display:flex; flex-direction:column; gap:6px; padding:16px; border:1px solid var(--ui-hairline); border-radius:14px; color:var(--text); background:var(--card); text-decoration:none; }
.privacy-choices a:hover,.privacy-choices a:focus-visible { border-color:var(--accent); }
.privacy-choices span { color:var(--text-sub); font-size:.88rem; }
.privacy-journey section { scroll-margin-top:calc(var(--header-height,140px) + 18px); }
.privacy-journey .privacy-explanation { padding:12px 0; }
.privacy-journey .privacy-explanation summary { font-weight:700; }
.privacy-journey .privacy-confirmation { margin-top:20px; }
.privacy-journey .privacy-final-warning { border-left:3px solid var(--accent); padding:12px 16px; margin-top:18px; background:var(--ui-soft); }
.privacy-final-actions { display:flex; gap:10px; flex-wrap:wrap; }
.privacy-journey form { gap:10px; }
.privacy-journey .privacy-final-actions .btn { min-height:44px; }
@media(max-width:760px) {
 .privacy-choices { grid-template-columns:1fr; }
 .privacy-choices a { padding:13px 15px; }
 .privacy-final-actions { flex-direction:column; }
 .privacy-journey .privacy-final-actions .btn { width:100%; }
}

.calendar-day-button,.calendar-day-browser { display:none; }
@media(max-width:760px) {
 #main-content .calendar-workspace #calendar-month { padding:12px; }
 #main-content .calendar-workspace .calendar-nav { grid-template-columns:44px minmax(0,1fr) 44px; gap:6px; }
 #main-content .calendar-workspace .calendar-nav .calendar-month-title { grid-column:2; grid-row:1; font-size:1.1rem; margin:0; }
 #main-content .calendar-workspace .calendar-nav>a { grid-row:1; padding:8px 2px; font-size:0; }
 #main-content .calendar-workspace .calendar-nav>a:first-child { grid-column:1; }
 #main-content .calendar-workspace .calendar-nav>a:last-child { grid-column:3; }
 .calendar-workspace .calendar-nav>a:first-child::before { content:'←'; font-size:1.2rem; }
 .calendar-workspace .calendar-nav>a:last-child::before { content:'→'; font-size:1.2rem; }
 .calendar-workspace .calendar-view-tools { gap:8px; margin:12px 0; }
 .calendar-workspace .calendar-view-tools>[data-calendar-today] { width:auto; min-height:40px; flex:1; padding:8px; }
 .calendar-workspace .calendar-view-switch { flex:1; }
 .calendar-workspace .calendar-view-switch .btn { padding:8px; min-height:40px; }
 .calendar-days-ready[data-calendar-view="month"] .calendar-day-browser { display:block; margin-top:12px; }
 .calendar-days-ready .calendar-week { min-height:58px; }
 .calendar-days-ready .calendar-cell { position:relative; min-height:58px; padding:0; }
 .calendar-days-ready .calendar-week-events { display:none; }
 .calendar-days-ready .calendar-day-num { display:none; }
 .calendar-days-ready .calendar-day-button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; width:100%; height:58px; padding:3px 0; border:0; border-radius:7px; color:var(--text); background:transparent; font:inherit; cursor:pointer; }
 .calendar-days-ready .calendar-day-button small { border-radius:8px; min-width:18px; padding:1px 3px; background:var(--accent); color:var(--accent-text); font-size:.65rem; }
 .calendar-days-ready .is-selected-day { outline:2px solid var(--accent); outline-offset:-2px; background:var(--ui-soft); }
 .calendar-days-ready .calendar-day-button:focus-visible { outline:3px solid var(--accent); outline-offset:-2px; }
 .calendar-day-hint { color:var(--text-sub); font-size:.8rem; margin:8px 0 14px; }
 .calendar-selected-day h3 { font-size:1.05rem; text-transform:capitalize; }
 .calendar-day-event { display:grid; gap:7px; padding:14px 0; border-top:1px solid var(--border); color:var(--text); text-decoration:none; overflow-wrap:anywhere; }
 .calendar-day-event span { font-size:.85rem; color:var(--text-sub); }
 .calendar-day-event small { color:var(--accent); }
}
@media(max-width:760px) {
 .calendar-workspace #calendar-month { scroll-margin-top:calc(var(--site-header-height,74px) + 10px); }
 .calendar-days-ready .is-today .calendar-day-button>span:first-child { border-radius:50%; background:var(--accent); color:var(--accent-text); min-width:22px; line-height:22px; }
 .calendar-days-ready .calendar-weekday:nth-child(6),.calendar-days-ready .calendar-weekday:nth-child(7) { color:var(--accent); }
}

.event-preview-rsvp .is-rsvp-selected { outline:2px solid var(--accent); outline-offset:2px; background:var(--accent); color:var(--accent-text); }
.calendar-rsvp-notice { margin:12px 0 0; color:var(--text); font-size:.9rem; min-height:1.5em; }
.event-preview-rsvp[aria-busy="true"] button { cursor:wait; opacity:.65; }

.event-preview-rsvp button[aria-pressed="false"] { background:transparent; color:var(--text); border-color:var(--border); box-shadow:none; }
.event-preview-rsvp button[aria-pressed="true"] { background:var(--accent); color:var(--accent-text); border-color:var(--accent); }

@media(max-width:760px) {
 .calendar-workspace .calendar-intro,.calendar-workspace .calendar-shortcuts { display:none; }
 .calendar-workspace .layout-main { display:flex; flex-direction:column; min-width:0; gap:0; }
 .calendar-workspace .layout-main>.page-title { order:0; font-size:1.25rem; margin:0 0 12px; }
 .calendar-workspace .layout-main>#calendar-month { order:1; margin-top:0!important; }
 .calendar-workspace .calendar-primary-actions { order:2; margin:12px 0; }
 .calendar-workspace .club-calendar-hub { order:3; }
 .calendar-workspace .layout-main>.simple-details { order:4; }
 .calendar-workspace #calendar-month { min-width:0; }
}
@media(max-width:760px) {
 .calendar-workspace #calendar-month { display:flex; flex-direction:column; }
 .calendar-workspace #calendar-month>.calendar-nav { order:0; }
 .calendar-workspace #calendar-month>#calendar-month-grid,.calendar-workspace #calendar-month>#calendar-month-list { order:1; }
 .calendar-workspace #calendar-month>.calendar-view-tools { order:2; margin:10px 0 4px; }
 .calendar-workspace #calendar-month>.calendar-day-browser { order:3; }
 .calendar-days-ready .calendar-week,.calendar-days-ready .calendar-cell { min-height:52px; }
 .calendar-days-ready .calendar-day-button { height:52px; }
}
@media(max-width:760px) {
 .calendar-days-ready .calendar-week,.calendar-days-ready .calendar-cell { min-height:52px; }
 .calendar-days-ready .calendar-day-button { height:52px; }
 .calendar-workspace .calendar-day-hint { margin:8px 0; }
}

@media(max-width:760px) {
 .calendar-workspace[data-calendar-view="list"] #calendar-month>.calendar-view-tools { order:0; }
}

.space-option-row{display:flex;align-items:center;gap:4px}
.space-option-row>a:first-child{flex:1;min-width:0}
.space-switcher-menu .space-unread-badge,.mobile-space-list .space-unread-badge{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:4px 8px;border-radius:20px;background:var(--accent);color:var(--bg);font-size:12px;font-weight:800;text-decoration:none}
.space-unread-badge:focus-visible{outline:3px solid var(--text);outline-offset:2px}
@media(max-width:760px){.mobile-space-list .space-unread-badge{min-width:44px;min-height:44px}}

.sj-shortcuts a.sj-shortcut{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 14px;border-radius:12px;line-height:1.2;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}
.sj-shortcuts .sj-shortcut .ui-line-icon{display:block;flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--accent)}
.sj-shortcuts a.sj-shortcut:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card));border-color:var(--accent)}
.sj-shortcuts a.sj-shortcut:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.sj-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sj-shortcuts a.sj-shortcut{justify-content:flex-start;min-height:44px;padding:10px 12px}.sj-shortcuts .sj-shortcut span{min-width:0;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.sj-shortcuts a.sj-shortcut{transition:none}}

.account-menu-panel,.mobile-account-menu-panel{box-sizing:border-box;max-width:calc(100vw - 24px);overflow-x:hidden}
.account-menu-panel{width:310px;max-height:calc(100dvh - var(--site-header-height,100px) - 24px);overflow-y:auto}
.account-menu-panel a,.mobile-account-menu-panel a,.simple-account-more a{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border-radius:10px;color:var(--text);text-decoration:none}
.account-menu-panel a>span,.mobile-account-menu-panel a>span{min-width:0}
.account-menu-panel a strong,.account-menu-panel a small,.mobile-account-menu-panel a strong,.mobile-account-menu-panel a small{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;line-height:1.45}
.account-menu-panel .account-link-icon,.mobile-account-menu-panel .account-link-icon{display:flex;align-items:center;justify-content:center;color:var(--accent)}
.account-link-icon .ui-line-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.account-menu-panel .simple-account-more,.mobile-account-menu-panel .simple-account-more{margin-top:6px;padding-top:6px;border-top:1px solid var(--border);min-width:0}
.account-menu-panel .simple-account-more>summary,.mobile-account-menu-panel .simple-account-more>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;box-sizing:border-box;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--text-sub);font-size:12px;font-weight:650;line-height:1.4;white-space:normal}
.account-menu-panel .simple-account-more>summary:hover,.mobile-account-menu-panel .simple-account-more>summary:hover{background:color-mix(in srgb,var(--accent) 8%,var(--card));color:var(--text)}
.account-more-chevron{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.simple-account-more[open] .account-more-chevron{transform:rotate(180deg)}
.account-menu-panel .simple-account-more a:hover,.mobile-account-menu-panel .simple-account-more a:hover{background:color-mix(in srgb,var(--accent) 8%,var(--card));color:var(--text)}
.simple-account-more>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

.admin-workspace-content{min-width:0}
.admin-nav.admin-nav-modern{padding:12px;border-radius:16px;gap:10px}
.admin-nav.admin-nav-modern .admin-nav-primary a{min-height:58px;flex-direction:column;gap:4px;padding:6px 3px}
.admin-nav.admin-nav-modern .admin-nav-primary a>.admin-item-icon{width:24px;height:24px;background:transparent}
.admin-nav.admin-nav-modern .admin-nav-primary{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
.admin-page-picker{grid-column:1/-1;display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-sub);margin:0}
.admin-page-picker select{width:auto;max-width:100%;min-height:40px;flex:1;margin:0;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit}
.admin-page-outline{margin:18px 0;border:1px solid var(--border);border-radius:12px;background:var(--card);padding:0 14px}
.admin-page-outline>summary{padding:12px 0;cursor:pointer;font-weight:650;font-size:.85rem;color:var(--text)}
.admin-page-outline nav{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 14px}
.admin-page-outline nav a{padding:8px 12px;border:1px solid var(--border);border-radius:9px;font-size:.8rem;color:var(--text)}
.admin-workspace-content h1{font-size:clamp(1.6rem,3vw,2.15rem);line-height:1.25;overflow-wrap:anywhere}
.admin-workspace-content h2{scroll-margin-top:calc(var(--site-header-height,100px) + 18px);overflow-wrap:anywhere}
.admin-workspace-content :is(input,select,textarea){max-width:100%;box-sizing:border-box}
.admin-workspace-content :is(.admin-page-intro,.site-settings-hero,.site-journal-heading){margin-block:20px}
.admin-workspace-content :is(.admin-page-intro,.site-settings-hero,.site-journal-heading)>p{max-width:80ch;line-height:1.65}
.admin-workspace-content td{overflow-wrap:anywhere;vertical-align:top}
.admin-list-search{display:grid;gap:6px;max-width:520px;margin:16px 0;font-size:.85rem;font-weight:650}
.admin-list-search input{min-height:44px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--card);color:var(--text)}
.admin-list-search small{color:var(--text-sub);font-weight:400}
.admin-workspace-content [hidden]{display:none!important}
.admin-workspace-content .site-settings-save{position:sticky;bottom:12px;z-index:12;box-shadow:0 6px 24px #0002;border:1px solid var(--border);background:var(--card);border-radius:14px;padding:14px}
.admin-unsaved-note{color:var(--accent);font-size:.8rem;font-weight:650}
.admin-role-editor summary{cursor:pointer;min-height:40px;padding:8px;border:1px solid var(--border);border-radius:9px;font-size:.8rem}
.admin-role-editor[open] summary{margin-bottom:10px}
.admin-workspace-content :is(.success-msg,.error-msg){overflow-wrap:anywhere}
@media(max-width:760px){
 .admin-nav.admin-nav-modern{display:flex;flex-wrap:wrap;gap:10px;padding:10px}
 .admin-nav.admin-nav-modern .admin-nav-brand{flex:1}
 .admin-nav.admin-nav-modern .admin-nav-groups{display:none}
 .admin-nav.admin-nav-modern .admin-nav-primary{display:none}
 .admin-page-picker{display:grid;gap:5px;width:100%}
 .admin-page-picker select{width:100%;font-size:16px}
 .admin-page-outline nav{display:grid;grid-template-columns:1fr;width:100%}
 .admin-workspace-content :is(.btn,button,select,input:not([type=checkbox]):not([type=radio]):not([type=color])){min-height:44px}
 .admin-workspace-content :is(input,select,textarea){font-size:16px}
 .admin-workspace-content .site-settings-save{bottom:8px;flex-wrap:wrap;gap:8px;padding:10px}
 .admin-workspace-content .site-settings-save>div{display:none}
 .admin-workspace-content .site-settings-save>.btn{flex:1;white-space:normal;text-align:center}
 .admin-workspace-content .mod-table{min-width:0;width:100%}
 .admin-workspace-content .mod-table thead{display:none}
 .admin-workspace-content .mod-table tbody,.admin-workspace-content .mod-table tr{display:block;width:100%}
 .admin-workspace-content .mod-table tr{padding:12px;border-bottom:1px solid var(--border);box-sizing:border-box}
 .admin-workspace-content .mod-table td{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;width:100%;padding:8px 0;border:0;box-sizing:border-box}
 .admin-workspace-content .mod-table td::before{content:attr(data-admin-label);font-size:.75rem;font-weight:650;color:var(--text-sub)}
 .admin-workspace-content .mod-table td>*{min-width:0;max-width:100%}
 .admin-workspace-content .mod-table td[colspan]{display:block}
}

.admin-nav.admin-nav-modern .admin-nav-primary a>.admin-item-label{white-space:nowrap;font-size:10.5px}
.admin-workspace-content .admin-search-form{display:flex;gap:10px;align-items:center}.admin-workspace-content .admin-search-form input{flex:1;min-width:0}

.admin-settings-quick-save{position:sticky;top:calc(var(--site-header-height,100px) + 8px);z-index:15;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:0 4px 18px #0001;margin:12px 0;font-size:.8rem}.admin-settings-quick-save button{white-space:normal}@media(max-width:760px){.admin-settings-quick-save{padding:8px;gap:8px}.admin-settings-quick-save span{max-width:38%}.admin-settings-quick-save button{font-size:.8rem;flex:1}}

/* Member rows keep contact and moderation controls in consistent groups. */
.admin-members-table .admin-member-identity,
.admin-members-table .admin-member-status,
.admin-members-table .admin-member-actions {
  display: grid;
  justify-items: start;
  gap: 5px;
}
.admin-members-table .admin-member-identity > a:first-child {
  font-weight: 650;
  overflow-wrap: anywhere;
}
.admin-members-table .admin-member-identity .private-message-link {
  padding: 5px 8px;
  font-size: .75rem;
}
.admin-members-table .admin-member-status small {
  color: var(--text-sub);
  font-size: .75rem;
}
.admin-members-table .admin-role-editor {
  width: fit-content;
  max-width: 100%;
}
.admin-members-table .admin-member-ban {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.admin-members-table .admin-member-ban input {
  width: 128px;
  min-width: 0;
  margin: 0;
  padding: 6px 8px;
  font-size: inherit;
}
@media (max-width: 760px) {
  .admin-members-table .admin-member-ban input {
    width: 100%;
  }
}

/* Keep expanded navigation above positioned controls in the workspace. */
.admin-nav.admin-nav-modern:has(.admin-nav-dropdown[open]) { position: relative; z-index: 95; }
.api-pilot-form { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.api-pilot-form > label { flex: 1 1 15rem; min-width: 0; }
.api-pilot-form input { width: 100%; }
.api-pilot-members { padding: 0; list-style: none; }
.api-pilot-members > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding-block: .65rem; border-top: 1px solid var(--border); }

.api-token-page { display: grid; min-height: 100dvh; place-items: center; padding: clamp(1rem, 5vw, 3rem); }
.api-token-card { width: min(100%, 38rem); margin: 0; min-width: 0; }
.api-token-card h1 { margin-block: .4rem; }
.api-token-card textarea { width: 100%; font-family: monospace; overflow-wrap: anywhere; }
.api-token-settings { display: grid; gap: .65rem; margin-block: 1rem; }
.api-token-settings dt { font-weight: 700; }
.api-token-settings dd { margin: .2rem 0 0; overflow-wrap: anywhere; }

/* Subscription content must not compete with its long URL in a two-column grid. */
section.calendar-subscription,details.calendar-subscription{display:block;min-width:0;width:100%;box-sizing:border-box}
details.calendar-subscription:not([open])>:not(summary){display:none}
.calendar-subscription>summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:650}
.calendar-subscription>div{min-width:0;width:100%;box-sizing:border-box}
.calendar-subscription strong,.calendar-subscription p{max-width:100%;white-space:normal;word-break:normal;overflow-wrap:break-word}
.calendar-subscription .calendar-feed-ready{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:16px;min-width:0;width:100%}
.calendar-subscription .calendar-feed-ready label{margin:0}
.calendar-subscription .calendar-feed-ready input{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;margin:0;text-overflow:ellipsis}
.calendar-subscription .calendar-feed-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.calendar-subscription .calendar-feed-actions form{display:block;min-width:0;margin:0}
.calendar-subscription .calendar-feed-actions .btn{min-height:44px;white-space:normal;max-width:100%;text-align:center;justify-content:center}
.calendar-subscription small{display:block;max-width:78ch;line-height:1.6;color:var(--text-sub);overflow-wrap:break-word}
@media(max-width:600px){.calendar-subscription .calendar-feed-actions{display:grid;grid-template-columns:minmax(0,1fr)}.calendar-subscription .calendar-feed-actions .btn,.calendar-subscription .calendar-feed-actions form{width:100%}.calendar-subscription .calendar-feed-ready input{font-size:16px}}

.pola-next-questions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.pola-next-questions button{max-width:100%;padding:9px 12px;min-height:40px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);font-size:12px;line-height:1.4;white-space:normal;text-align:left;cursor:pointer}
.pola-next-questions button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.pola-response-extras .guided-help-results{display:flex;flex-wrap:wrap;gap:7px}
.pola-response-extras .guided-help-results a{line-height:1.4}
.guided-help-feedback{gap:5px;opacity:.8}
.guided-help-feedback:focus-within,.guided-help-feedback:hover{opacity:1}
@media(max-width:600px){.pola-next-questions button{min-height:44px;width:100%}}

.guided-help-feedback{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 12px;opacity:1}
.guided-help-feedback>span{margin-right:4px;color:var(--text-sub);font-size:10px;line-height:1.4}
.guided-help-feedback>button{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:34px;height:34px;min-width:34px;min-height:34px;padding:8px;margin:0;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-sub);box-shadow:none;cursor:pointer}
.guided-help-feedback>button svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.guided-help-feedback>button:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card))}
.guided-help-feedback>button.is-active{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}
.guided-help-feedback>button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.guided-help-feedback>small{flex-basis:100%;font-size:10px;line-height:1.4}
.guided-help-feedback>small:empty{display:none}
@media(pointer:coarse){.guided-help-feedback>button{width:44px;height:44px;min-width:44px;min-height:44px}}


/* Parcours courants : contrôles lisibles et destinations explicites. */
.search-page .simple-search-form>.search-mobile-filter { display:none; grid-template-columns:auto minmax(160px,260px); gap:8px 12px; align-items:center; margin-top:12px; }
.search-mobile-filter label { margin:0; }
.search-mobile-filter small { grid-column:2; color:var(--text-sub); }
.search-mobile-filter select { width:100%; min-height:44px; }
.search-filter-chips { justify-content:flex-start; scroll-padding-inline:8px; }
.journey-actions { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 20px; }
.journey-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:12px 0; font-size:.9rem; }
.journey-breadcrumb a { display:inline-flex; align-items:center; min-height:44px; }
.journey-breadcrumb span { color:var(--text-sub); }
.journey-breadcrumb span::before { content:'/'; margin-right:14px; }
.search-page-result:focus-visible,.journey-actions a:focus-visible,.journey-breadcrumb a:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:760px) {
 .search-page .search-filter-chips { display:none; }
 .search-page .simple-search-form>.search-mobile-filter { display:grid; grid-template-columns:1fr; gap:6px; }
 .search-mobile-filter small { grid-column:1; }
 .search-page .simple-search-form>div:first-of-type { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
 .search-page .simple-search-form input { min-width:0; width:100%; }
 .journey-actions { display:grid; grid-template-columns:1fr; }
 .journey-actions .btn { width:100%; min-height:44px; }
 .dashboard-pola-card { padding:16px; gap:10px; }
 .dashboard-pola-card h2 { font-size:1.15rem; }
 .dashboard-pola-card p { margin:6px 0; }
}

@media(max-width:640px) { .spaces-section .club-grid { grid-template-columns:minmax(0,1fr); } }

.gallery-grid>.gallery-empty-state { grid-column:1 / -1; width:100%; box-sizing:border-box; }
.notification-row .grow .notification-group-count { display:inline-flex; align-items:center; justify-content:center; width:auto; min-width:24px; height:24px; padding:0 7px; vertical-align:middle; line-height:1; }
.notification-row:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:760px) {
 .gallery-empty-state { gap:12px; }
 .gallery-empty-state>div:not(.gallery-empty-actions) { flex:1 1 220px; }
 .gallery-empty-actions { margin-left:0; }
}

/* Stable columns independent of title length and available actions. */
.category-thread-list .thread-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 70px 70px 220px;
  align-items: center;
  gap: 14px;
}
.category-thread-list .thread-row > .grow { min-width: 0; overflow-wrap: anywhere; }
.category-thread-list .thread-stats { font-variant-numeric: tabular-nums; }
.category-thread-list .thread-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}
.category-thread-list .thread-row-actions > * { flex-shrink: 0; }
@media (max-width: 1100px) {
  .category-thread-list .thread-row {
    grid-template-columns: 30px minmax(0, 1fr) 70px 70px;
  }
  .category-thread-list .thread-row-actions { grid-column: 2 / -1; }
}
@media (max-width: 600px) {
  .category-thread-list .thread-row { grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .category-thread-list .thread-row > .grow { grid-column: 2 / -1; }
  .category-thread-list .thread-stats { min-width: 0; }
  .category-thread-list .thread-row > .thread-stats:nth-last-child(3) { grid-column: 2; }
  .category-thread-list .thread-row-actions { grid-column: 2 / -1; flex-wrap: wrap; }
}

/* Keep reading and the next action close to the top of the page. */
.ux-journeys .community-hero--compact {padding:18px 22px;min-height:0;margin-bottom:16px;gap:18px;}
.ux-journeys .community-hero--compact .page-title {font-size:clamp(1.35rem,2.4vw,1.9rem);margin:0;}
.ux-journeys .community-hero--compact p {margin:4px 0 0;}
.ux-journeys .community-compact-actions {display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ux-journeys .community-pulse--exchanges {margin-top:12px;padding:18px 22px;}
.ux-journeys .community-pulse--exchanges .home-section-head {margin-bottom:10px;}
.site-banner .simple-banner-copy:not([open]) {min-height:0;}
.article-navigation {padding:14px 18px;margin:0 0 24px;border:1px solid var(--border);border-radius:12px;background:var(--card);}
.article-navigation summary {font-weight:700;cursor:pointer;}
.article-navigation ol {padding-left:22px;margin:12px 0 0;}
.article-navigation li {padding:4px 0;}
.article-navigation a {text-decoration:underline;text-underline-offset:3px;}
.post-body .article-section-title {font-size:1.3em;line-height:1.4;margin:24px 0 12px;scroll-margin-top:calc(var(--header-height,160px) + 24px);}
@media(max-width:760px){
 .ux-journeys .community-hero--compact {padding:14px;gap:10px;}
 .ux-journeys .community-compact-mark {display:none;}
 .ux-journeys .community-compact-actions .btn {min-height:44px;}
 .ux-journeys .community-pulse--exchanges {padding:14px;}
 .article-navigation {padding:12px;}
 .article-navigation a {display:inline-block;padding:5px 0;}
}

.site-banner .simple-banner-copy > summary {display:list-item;cursor:pointer;}

/* Shared readability, safe media fallback and compact administration. */
.image-recovery {display:block;padding:12px;border:1px solid var(--border);border-radius:10px;color:var(--text-sub);}
.image-recovery .btn {margin:6px;}
.calendar-more-events {font-size:.8rem;padding:4px 8px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:6px;}
.ux-table-scroll {max-width:100%;overflow:auto;margin-block:14px;}
.admin-workspace-content :is(input,select,textarea) {max-width:100%;min-width:0;}
.admin-workspace-content .admin-list-search {max-width:600px;margin-block:12px;}
.calendar-rsvp-notice {flex-basis:100%;margin:4px 0;color:var(--text-sub);}
.calendar-feed-actions {flex-wrap:wrap;}
.nav-icon .ui-line-icon {width:19px;height:19px;vertical-align:middle;stroke:currentColor;stroke-width:1.7;fill:none;}
.admin-workspace-content .btn-danger {border-color:var(--danger,#b74242);}
.article-section-title {scroll-margin-top:calc(var(--site-header-height,160px) + 20px)!important;}
@media(min-width:761px){
 .admin-page-picker {display:none;}
 .calendar-workspace .calendar-intro {font-size:.88rem;margin-bottom:8px;}
 .calendar-workspace .calendar-shortcuts {margin-block:8px;}
}
@media(max-width:760px){
 .calendar-more-events {display:none;}
 .admin-workspace-content .admin-nav-primary {gap:6px;}
 .search-page-result {min-width:0;}
 .search-page-result-copy {min-width:0;overflow-wrap:anywhere;}
 .post-body img {max-width:100%;height:auto;}
 .calendar-feed-actions > * {max-width:100%;}
 .image-recovery .btn {min-height:44px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important;}}

.site-banner .site-banner-inner {padding-block:6px;}
@media(min-width:761px){.site-header .nav-link {padding-block:9px;}}
form[data-native-sending="1"] button[type="submit"] {pointer-events:none;opacity:.65;cursor:progress;}

.ux-local-filter-hidden { display: none !important; }

/* Annuaire et accès personnels, sans changer les permissions des espaces. */
.directory-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.directory-layout > .club-map-card { position: sticky; top: calc(var(--header-height, 150px) + 16px); margin: 0; min-width: 0; }
.directory-layout .club-directory-results { min-width: 0; margin: 0; }
.directory-layout .club-directory-grid { grid-template-columns: 1fr; }
.directory-layout .club-map { height: 460px; border-radius: 12px; z-index: 0; }
.directory-layout .public-club-card { min-width: 0; transition: border-color .15s; }
.directory-layout .public-club-card h3 a { color: var(--text); text-decoration: none; }
.directory-layout .public-club-card h3 a:hover { text-decoration: underline; }
.directory-layout .public-club-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.directory-layout .is-map-selected { outline: 2px solid var(--accent); outline-offset: 3px; }
.directory-card-actions, .directory-map-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.directory-map-actions .btn { min-height: 40px; }
.club-directory-filter .directory-search { flex: 2; min-width: 0; }
.club-directory-filter input { width: 100%; min-height: 44px; }
.directory-layout [hidden], .club-grid [hidden] { display: none !important; }
.directory-layout .leaflet-popup-content { color: #182838; line-height: 1.5; }
.directory-layout .leaflet-popup-content a { color: #195485; font-weight: 700; }
.directory-layout .leaflet-popup-content p { margin: 8px 0; }
.personal-club-filter { max-width: 620px; }
.personal-club-filter input { width: 100%; }
.club-card[data-my-club] { display: flex; flex-direction: column; }
.club-card[data-my-club] footer { margin-top: auto; padding-top: 16px; }
.club-card[data-my-club] h2 { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .directory-layout { grid-template-columns: 1fr; }
  .directory-layout > .club-map-card { position: static; }
  .directory-layout .club-map { height: 300px; }
  .directory-layout .public-club-card { padding: 18px; }
  .club-directory-hero { margin-bottom: 16px; }
  .club-directory-hero .page-title { font-size: clamp(25px, 6vw, 34px); }
}
@media (prefers-reduced-motion: reduce) {
  .directory-layout .public-club-card { transition: none; }
}

.directory-list-shortcut { margin: 0 0 16px; }
#directory-results { scroll-margin-top: calc(var(--header-height, 150px) + 20px); }
/* Leaflet garde une bulle blanche, indépendamment du thème du site. */
.directory-layout .leaflet-popup-content strong,
.directory-layout .leaflet-popup-content p,
.directory-layout .leaflet-popup-content small { color: #24374b; }
.directory-layout .leaflet-popup-content-wrapper,
.directory-layout .leaflet-popup-tip { background: #fff; color: #24374b; }
.directory-layout .leaflet-container a.leaflet-popup-close-button { color: #42566c; }
/* Surclasse la règle globale de paragraphes du thème sombre. */
[data-theme] .directory-layout .leaflet-popup-content p { color: #24374b !important; }

/* Administration unifiée. Les données et contrôles métier restent dans leurs vues. */
#main-content:has(.admin-shell) { max-width: 1500px; }
.admin-shell { display: grid; grid-template-columns: 230px minmax(0,1fr); align-items: start; gap: 28px; }
.admin-sidebar { position: sticky; top: calc(var(--site-header-height,100px) + 12px); max-height: calc(100dvh - var(--site-header-height,100px) - 24px); overflow: auto; padding: 16px; background: var(--card); border: 1px solid var(--border); border-radius: 16px; }
.admin-sidebar-brand { display:flex; gap:10px; align-items:center; color:var(--text); margin-bottom:20px; }
.admin-sidebar-brand svg { width:22px; height:22px; }
.admin-nav-search { display:grid; gap:6px; font-size:12px; color:var(--text-sub); }
.admin-nav-search input { width:100%; min-width:0; padding:10px; margin-bottom:14px; }
.admin-nav-section { border:0; border-top:1px solid var(--border); margin:0; padding:6px 0; }
.admin-nav-section summary { cursor:pointer; padding:10px 0; color:var(--text-sub); font-size:12px; font-weight:700; }
.admin-nav-section a { display:flex; gap:10px; align-items:center; padding:9px; border-radius:9px; color:var(--text); font-size:13px; text-decoration:none; min-height:40px; }
.admin-nav-section a:hover { background:var(--bg); }
.admin-nav-section a.is-active { background:var(--accent-soft); color:var(--accent); box-shadow:inset 3px 0 var(--accent); font-weight:750; }
.admin-nav-section .admin-item-icon { display:flex; flex:none; width:20px; height:20px; }
.admin-nav-section svg { width:20px; height:20px; }
.admin-return-site { display:block; padding:16px 8px 4px; font-size:13px; }
.admin-sidebar [hidden],.admin-search-excluded { display:none!important; }
.admin-content { min-width:0; }
.admin-content > :first-child { margin-top:0; }
.admin-content :is(.admin-page-intro,.site-settings-hero,.real-admin-page-head,.admin-mail-hero,.site-journal-heading) { padding:20px 0; margin:0 0 20px; border-bottom:1px solid var(--border); background:none; box-shadow:none; }
.admin-content h1 { margin:4px 0 12px; font-size:clamp(25px,3vw,34px); }
.admin-content h2 { font-size:20px; line-height:1.4; }
.admin-content :is(.card,.real-admin-card,.admin-management-card) { border-radius:14px; margin-bottom:18px; }
.admin-content :is(.admin-overview-hero,.admin-stat-grid,.admin-recent-grid,.health-grid,.admin-club-grid) { gap:16px; }
.admin-content .admin-overview-hero { padding:20px; margin-top:0; }
.admin-content .admin-overview-status { min-width:0; }
.admin-content .admin-stat-grid { grid-template-columns:repeat(4,minmax(0,1fr)); margin-block:24px; }
.admin-content .admin-focus-card { margin-block:20px; }
.admin-all-tools,.admin-role-help { margin-block:16px; border:1px solid var(--border); border-radius:12px; padding:14px; }
.admin-all-tools > summary,.admin-role-help > summary,.admin-campaign-card > summary { cursor:pointer; font-weight:700; padding:8px 0; }
.admin-content .admin-workspace-heading { display:none; }
.admin-content :is(.admin-quick-filters,.admin-overview-actions,.admin-decision-actions) { display:flex; flex-wrap:wrap; gap:8px; margin-block:16px; }
.admin-content :is(.admin-inline-form,.admin-edit-form-grid,.site-settings-grid,.email-composer-grid) { gap:16px; }
.admin-content label { line-height:1.5; }
.admin-content :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=hidden]),select,textarea) { max-width:100%; min-width:0; }
.admin-content :is(input,select,textarea):focus-visible,.admin-sidebar :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.admin-content .field-hint { font-size:13px; line-height:1.6; }
.admin-content .admin-danger-action { border-top:1px solid var(--border); margin-top:20px; padding-top:14px; }
.admin-content .admin-table-scroll { max-width:100%; overflow:auto; border-radius:10px; }
.admin-content table { width:100%; border-collapse:collapse; }
.admin-content th { text-align:left; padding:12px; font-size:12px; color:var(--text-sub); background:var(--bg); }
.admin-content td { padding:14px 12px; vertical-align:top; border-bottom:1px solid var(--border); }
.admin-content tbody tr:hover { background:color-mix(in srgb,var(--accent) 4%,var(--card)); }
.admin-content .admin-settings-quick-save { position:static; margin-top:0; }
.admin-content .site-settings-save { bottom:8px; }
.admin-content .admin-page-outline { margin-top:0; }
.admin-content :is(.success-msg,.error-msg) { padding:16px; margin-block:16px; border-radius:10px; }
.admin-content .moderation-decision form { display:grid; gap:12px; margin-top:12px; }
.admin-content .admin-search-form { margin-block:18px; }
@media (max-width:1200px) {
 .admin-shell { grid-template-columns:210px minmax(0,1fr); gap:18px; }
 .admin-content .admin-overview-hero { grid-template-columns:1fr; display:grid; }
 .admin-content .admin-recent-grid { grid-template-columns:1fr; }
}
@media (max-width:1050px) {
 .admin-shell { grid-template-columns:minmax(0,1fr); }
 .admin-sidebar { position:static; max-height:none; overflow:visible; padding:12px; }
 .admin-sidebar-brand { margin-bottom:10px; }
 .admin-mobile-toggle { width:100%; text-align:left; }
 #adminNavigation { margin-top:14px; }
 .admin-content .admin-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
 .admin-content :is(.health-grid,.site-settings-grid,.email-composer-grid,.palette-mode-grid,.admin-edit-form-grid) { grid-template-columns:minmax(0,1fr); }
 .admin-content :is(.admin-search-form,.admin-inline-form) { flex-wrap:wrap; }
 .admin-content .admin-search-form input { flex-basis:100%; }
 .admin-content :is(.btn,button,select) { min-height:44px; white-space:normal; }
 .admin-content :is(.card,.real-admin-card) { padding:16px; }
 .admin-content .mod-table td { padding:10px 0; }
 .admin-content .admin-overview-hero { padding:16px; }
 .admin-content :is(.admin-mail-row a,.admin-recent-row) { flex-wrap:wrap; overflow-wrap:anywhere; }
}

body:has(.admin-shell) .site-banner { display:none; }
body:has(.admin-shell) .footer-donation { display:none; }
.admin-settings-section-title { cursor:pointer; padding:8px 0; font-weight:750; font-size:17px; }
.admin-content .site-setting-card[open] > summary { margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.admin-content .site-setting-card > .site-setting-heading h2 { display:none; }
.admin-content .admin-mail-bulk-bar { flex-wrap:wrap; gap:8px; }

.admin-task-inbox { margin:20px 0; }
.admin-task-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.admin-task-links a { display:grid; gap:8px; padding:18px; border:1px solid var(--border); border-radius:12px; color:var(--text); background:var(--card); text-decoration:none; }
.admin-task-links a:hover { border-color:var(--accent); }
.admin-task-links span { color:var(--text-sub); font-size:13px; }
@media(max-width:600px) { .admin-task-links { grid-template-columns:1fr; } }

/* Publication: options secondary, explicit following, consistent final actions. */
.topic-compose-form > .simple-details, .topic-compose-form > .critique-create { margin-block:16px; border:1px solid var(--border); border-radius:12px; padding:16px; background:var(--card); }
.topic-compose-form > .simple-details > summary { cursor:pointer; font-weight:700; }
.topic-compose-form .composer-responsibility-panel { margin-block:16px; padding:14px 16px; border:1px solid var(--border); box-shadow:none; }
.topic-compose-form .composer-responsibility-panel p { margin:0; }
.topic-follow-choice { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:18px 0 12px; }
.topic-follow-choice label { display:flex; align-items:center; gap:10px; margin:0; font-size:14px; }
.topic-follow-choice input { flex:none; width:18px; height:18px; }
.topic-follow-choice a { font-size:12px; }
.topic-publish-actions { display:flex; align-items:center; gap:14px; width:100%; margin:16px 0 24px; }
.topic-publish-actions > button { flex:1; min-height:52px; justify-content:center; font-size:16px; }
.topic-return-link { flex:0 0 auto; font-size:12px; text-align:center; }
@media(max-width:600px) {
 .topic-publish-actions { gap:10px; }
 .topic-return-link { max-width:92px; }
 .topic-publish-actions > button { font-size:15px; padding-inline:12px; }
 .topic-follow-choice label { align-items:flex-start; }
 .topic-compose-form > .simple-details,.topic-compose-form > .critique-create { padding:12px; }
}

.notification-space-panel { margin:18px 0; padding:14px; border:1px solid var(--border); border-radius:14px; background:var(--card); }
.notification-space-panel > summary { padding:8px 0; margin-bottom:4px; cursor:pointer; font-weight:750; color:var(--text); }
.notification-space-panel[open] > summary { margin-bottom:14px; }
.notification-space-panel .notification-type-card { margin-top:10px; cursor:default; }
.notification-type-toggles { display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.notification-type-toggles label { display:flex; gap:7px; align-items:center; margin:0; padding:8px; border:1px solid var(--border); border-radius:9px; cursor:pointer; font-size:12px; min-height:40px; }
.notification-type-toggles label:has(input:checked) { border-color:var(--accent); background:var(--accent-soft); }
.notification-type-card .notification-channel-icon svg { width:22px; height:22px; color:var(--accent); }
.notification-type-card input[type=hidden] { display:none; }
@media(max-width:700px){
 .notification-type-card { grid-template-columns:36px minmax(0,1fr); gap:10px; padding:12px; }
 .notification-type-card .notification-channel-icon { width:34px; height:34px; }
 .notification-type-toggles { grid-column:2; justify-content:flex-start; gap:8px; }
 .notification-type-toggles label { min-height:44px; }
 .notification-space-panel { padding:10px; }
}

/* Personal content: bounded lists, search and pagination. */
.profile-creations .creations-workspace {padding:0 24px 24px;min-width:0}
.creations-workspace>.page-sub {margin:0 0 18px;line-height:1.6}
.creations-tabs {display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.creations-tabs .btn {display:inline-flex;align-items:center;gap:10px}
.creations-tabs .btn span {font-size:.8em;padding:1px 7px;border-radius:20px;background:color-mix(in srgb,var(--text) 9%,transparent)}
.creations-search {display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:12px}
.creations-search>div {flex:1 1 230px;min-width:0}
.creations-search label {display:block;font-size:.86rem;font-weight:700;margin-bottom:6px}
.creations-search input {width:100%;min-width:0;margin:0}
.creations-search .btn {margin:0;flex-shrink:0}
.creations-search>a {font-size:.85rem;align-self:center}
.creations-result-count {color:var(--text-sub);font-size:.85rem;margin:16px 0}
.creations-workspace .profile-creation-group {margin-top:12px;padding-top:12px}
.creations-workspace .profile-creation-row {padding:14px;gap:16px}
.creations-workspace .profile-creation-copy strong {white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.creations-workspace .profile-creation-copy small {white-space:normal;line-height:1.5;margin-top:5px}
.creations-workspace .profile-creation-row form {flex:0 0 auto;margin:0}
.creations-workspace .profile-delete-action {font-size:.8rem;white-space:nowrap}
.creations-pagination {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.creations-pagination>span {color:var(--text-sub);font-size:.86rem}
@media(max-width:600px){
 .profile-creations .creations-workspace {padding:0 14px 18px}
 .creations-search {padding:12px}
 .creations-search>div {flex-basis:100%}
 .creations-workspace .profile-creation-row {align-items:stretch;flex-direction:column;gap:10px}
 .creations-workspace .profile-creation-row form {align-self:flex-end}
 .creations-tabs {gap:6px}
 .creations-tabs .btn {padding:9px 11px;gap:6px}
}

.home-photos{margin:20px 0 28px;position:relative}.home-photos-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.home-photos-heading h2{margin:4px 0 12px}.home-photo-controls{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}.home-photo-controls[hidden]{display:none}.home-photo-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:thin}.home-photo-card{flex:0 0 calc((100% - 32px)/3);min-width:0;scroll-snap-align:start;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--card);color:var(--text);text-decoration:none}.home-photo-card img{display:block;width:100%;height:240px;object-fit:contain;background:var(--bg)}.home-photo-author,.home-photo-title{display:block;padding:10px 14px 0}.home-photo-title{padding-top:4px;padding-bottom:14px;font-size:.85rem;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-photo-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media(max-width:768px){.home-photo-card{flex-basis:70%}.home-photo-card img{height:220px}}@media(max-width:420px){.home-photo-card{flex-basis:86%}.home-photo-card img{height:200px}}

.home-photo-strip.is-animated{scroll-snap-type:none;scroll-behavior:auto!important}.home-photo-pause{display:block;margin:0 0 8px auto}.home-photo-pause[hidden]{display:none}

.admin-home-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.admin-home-photo-grid article{display:flex;flex-direction:column;gap:10px;min-width:0;scroll-margin-top:160px}.admin-home-photo-grid img{width:100%;height:220px;object-fit:contain;background:var(--bg);border-radius:10px}.admin-home-photo-grid a{overflow-wrap:anywhere}.admin-home-photo-grid form{margin-top:auto}

.topic-photo-home-choice{display:inline-flex;align-items:center;gap:7px;max-width:100%;font-size:.85rem;cursor:pointer}.topic-photo-home-choice input{flex:0 0 auto}

/* Consentement explicite, distinct des actions d’ajout de photos. */
.composer-hint .topic-photo-home-choice{flex:1 0 100%;align-items:flex-start;padding:10px 0;order:5}
.topic-photo-home-choice>span{display:block;min-width:0}
.topic-photo-home-choice strong{display:block;font-size:.85rem;line-height:1.5}
.topic-photo-home-choice small{display:block;font-weight:normal;font-size:.78rem;line-height:1.5;color:var(--muted);margin-top:4px}
.topic-photo-home-choice input{margin-top:3px}

/* Mobile topic writing and replies: preserve the desktop layout and all tools. */
@media(max-width:700px){
  :is(.topic-compose-form,.topic-reply-form){min-width:0;max-width:100%}
  :is(.topic-compose-form,.topic-reply-form) :is(.composer-wrap,.rich-editable,.richtoolbar){box-sizing:border-box;min-width:0;max-width:100%;width:100%}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;overflow:visible;border-radius:12px 12px 0 0}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar-group{display:flex;flex-wrap:wrap;gap:3px;min-width:0;max-width:100%;margin:0;padding:3px;border-radius:8px}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar-btn{min-height:40px;min-width:36px;padding:7px 8px;font-size:12px;white-space:normal;line-height:1.25}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar-size{min-height:40px;max-width:100%;font-size:16px}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar-hint{padding:7px 9px;font-size:12px}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar-shortcut{display:none}
  :is(.topic-compose-form,.topic-reply-form) .rich-editable{min-height:240px;padding:14px;font-size:16px;line-height:1.65;overflow-wrap:anywhere;word-break:normal;border-radius:0 0 12px 12px}
  :is(.topic-compose-form,.topic-reply-form) .rich-editable img{max-width:100%;height:auto}
  :is(.topic-compose-form,.topic-reply-form) :is(input[type=text],input[type=search],select,textarea){font-size:16px;max-width:100%;box-sizing:border-box}
  :is(.topic-compose-form,.topic-reply-form) .composer-hint{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:12px}
  :is(.topic-compose-form,.topic-reply-form) .composer-browse{justify-content:center;min-height:44px;white-space:normal;text-align:center;font-size:13px;padding:9px}
  :is(.topic-compose-form,.topic-reply-form) :is(.composer-hint-copy,.topic-photo-home-choice,.topic-photo-options){grid-column:1/-1;min-width:0;max-width:100%}
  :is(.topic-compose-form,.topic-reply-form) .composer-hint-copy{font-size:12px;line-height:1.5}
  :is(.topic-compose-form,.topic-reply-form) :is(.topic-photo-home-choice,.topic-photo-options label){min-height:44px;font-size:14px;line-height:1.4;white-space:normal}
  :is(.topic-compose-form,.topic-reply-form) .topic-photo-options{display:flex;flex-direction:column;align-items:stretch;gap:4px;border-top:1px solid var(--border);padding-top:8px}
  :is(.topic-compose-form,.topic-reply-form) .topic-photo-options label{display:flex;gap:10px}
  :is(.topic-compose-form,.topic-reply-form) input[type=checkbox]{width:21px;height:21px;min-width:21px;flex-shrink:0;margin:0}
  :is(.topic-compose-form,.topic-reply-form) .topic-photo-options select{flex:1;min-width:0;min-height:44px}
  :is(.topic-compose-form,.topic-reply-form) .topic-photo-job{width:100%;min-width:0;box-sizing:border-box;overflow-wrap:anywhere}
  .topic-compose-form .topic-publish-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-block:16px}
  .topic-compose-form .topic-publish-actions .btn{width:100%;min-height:48px;font-size:16px}
  .topic-compose-form .topic-return-link{text-align:center;font-size:13px;padding:7px}
  .topic-reply-form button[type=submit]{min-height:48px;width:100%;white-space:normal}
  .topic-compose-form .topic-follow-choice{display:flex;flex-wrap:wrap;gap:8px;padding:12px;line-height:1.5}
  .topic-compose-form .topic-follow-choice label{display:flex;align-items:flex-start;gap:10px;font-size:14px}
  :is(.topic-compose-form,.topic-reply-form) .richtoolbar-link-panel{box-sizing:border-box;width:100%;min-width:0;max-width:100%;flex-wrap:wrap}
}

[data-like-form]{position:relative;display:inline-flex;gap:3px;align-items:center}
.like-people-panel{position:absolute;bottom:calc(100% + 8px);left:0;z-index:20;width:max-content;max-width:min(290px,75vw);max-height:220px;overflow:auto;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);box-shadow:0 6px 20px #0002;font-size:.85rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.like-people-panel[hidden]{display:none}
.like-people-toggle{min-width:36px}

/* Dedicated host shell; the main site keeps its normal navigation. */
.mobile-app {padding-top:0!important;--app-bottom:76px;padding-bottom:calc(var(--app-bottom) + env(safe-area-inset-bottom));}
.mobile-app .site-header{display:none!important}
.mobile-app-top{position:sticky;top:0;z-index:220;background:var(--card);border-bottom:1px solid var(--border);padding:max(8px,env(safe-area-inset-top)) 16px 10px}
.mobile-app-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:960px;margin:auto}
.mobile-app-brand{display:flex;align-items:center;gap:9px;color:var(--text);font-weight:800;text-decoration:none;min-width:0}
.mobile-app-brand img{object-fit:contain}
.mobile-app-brand small{display:block;color:var(--text-sub);font-size:11px;font-weight:500;max-width:180px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.mobile-app-top-actions{display:flex;gap:6px;align-items:center}
.mobile-app-top-actions>a,.mobile-app-top-actions>button{display:flex;align-items:center;justify-content:center;position:relative;width:44px;height:44px;background:var(--page);border:1px solid var(--border);border-radius:14px;color:var(--text);padding:6px}
.mobile-app-top-actions .private-message-count{position:absolute;top:-5px;right:-5px}
.mobile-app-search{position:relative;display:block!important;width:100%;max-width:960px;margin:8px auto 0}
.mobile-app-search input{box-sizing:border-box;width:100%;min-height:44px;font-size:16px;border-radius:14px;padding:10px 14px}
.mobile-app-search .global-search-results{width:100%;box-sizing:border-box;max-height:55dvh}
.mobile-app-tabs{position:fixed;z-index:240;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--border);box-shadow:0 -4px 20px #0001}
.mobile-app-tabs>a,.mobile-app-tabs>button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:54px;margin:0;padding:5px 2px;border:0;border-radius:14px;color:var(--text-sub);background:transparent;text-decoration:none;font-size:11px;line-height:1.2;font-weight:650}
.mobile-app-tabs svg{width:23px;height:23px}
.mobile-app-tabs [aria-current=page]{color:var(--accent);background:var(--accent-soft)}
.mobile-app-tabs .mobile-app-publish>span:first-child{display:grid;place-items:center;width:38px;height:30px;border-radius:12px;background:var(--accent);color:var(--accent-text);font-size:27px}
/* Menu sheet: quiet sections, consistent icons and generous touch targets. */
.mobile-app-menu{position:fixed;inset:auto 0 12px;margin:0 auto;width:calc(100% - 20px);max-width:560px;max-height:90dvh;padding:0;border:1px solid var(--border);border-radius:28px;color:var(--text);background:var(--card);box-sizing:border-box;overflow:auto;box-shadow:0 24px 80px #0005;overscroll-behavior:contain}
.mobile-app-menu::backdrop{background:#06101ab3;backdrop-filter:blur(7px)}
.mobile-app-menu>header{position:sticky;top:0;background:var(--card);z-index:1;padding:22px 22px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--border)}
.mobile-app-menu header small{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--text-sub)}
.mobile-app-menu h2{font-size:26px;line-height:1.2;margin:5px 0 0;letter-spacing:-.03em}
.mobile-app-menu header button{width:42px;height:42px;min-width:42px;border:1px solid var(--border);border-radius:50%;background:var(--page);color:var(--text);padding:0}
.mobile-app-menu-content{padding:18px 20px max(24px,env(safe-area-inset-bottom))}
.mobile-app-menu-content h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-sub);margin:26px 0 12px;font-weight:700}
.mobile-app-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mobile-app-menu-grid>a,.mobile-app-menu-grid>button{display:flex;align-items:center;gap:10px;padding:12px;min-height:64px;border:1px solid transparent;border-radius:16px;color:var(--text);background:var(--page);text-align:left;text-decoration:none;font-size:13px;font-weight:600;line-height:1.4;box-sizing:border-box;min-width:0}
.mobile-app-menu-grid>a>span{min-width:0;overflow-wrap:break-word}
.app-menu-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:36px;color:var(--accent);font-style:normal}
.app-menu-icon svg{width:23px;height:23px}
.mobile-app-menu-grid>a:hover,.mobile-app-menu-grid>button:hover{border-color:var(--border);background:var(--accent-soft)}
.mobile-app-menu :is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.mobile-app-spaces{display:flex;gap:8px;flex-wrap:wrap}
.mobile-app-spaces>a{padding:12px 15px;min-height:44px;border:1px solid var(--border);border-radius:24px;color:var(--text-sub);text-decoration:none;font-size:13px;overflow-wrap:anywhere}
.mobile-app-spaces [aria-current=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:650}
.mobile-app-account{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:14px;border:1px solid var(--border);border-radius:18px;color:var(--text);text-decoration:none;background:linear-gradient(120deg,var(--accent-soft),transparent)}
.mobile-app-account>div{min-width:0;flex:1;overflow-wrap:anywhere}
.mobile-app-account>b{font-size:24px;font-weight:400;color:var(--text-sub)}
.mobile-app-account span{display:block;font-size:12px;margin-top:4px;color:var(--text-sub)}
.mobile-app-menu .app-menu-settings>button{min-height:48px;font-size:12px;font-weight:500}
.mobile-app-web-link{display:block;margin:22px 0 16px;font-size:12px;color:var(--text-sub);text-align:center}
.mobile-app-menu-content>form{text-align:center;border-top:1px solid var(--border);padding-top:14px}
.mobile-app-menu-content>form .btn{background:transparent;box-shadow:none;border-color:transparent;color:var(--text-sub);font-size:12px}
.mobile-app-install-help{font-size:13px;line-height:1.6;padding:12px;background:var(--accent-soft);border-radius:12px}
@media(max-width:380px){.mobile-app-menu-content{padding-inline:14px}.mobile-app-menu-grid>a{padding:10px 8px;gap:6px}}
.mobile-app-network{position:sticky;top:var(--site-header-height);z-index:210;padding:10px;background:var(--card);color:var(--text);border-bottom:2px solid var(--accent);font-size:13px}
.mobile-app .cookie-consent{bottom:calc(var(--app-bottom) + env(safe-area-inset-bottom) + 8px)}
.mobile-app .guided-help-launcher,.mobile-app .bug-report-launcher{display:none!important}
.mobile-app .guided-help-card{bottom:calc(var(--app-bottom) + env(safe-area-inset-bottom) + 8px)!important;max-height:calc(100dvh - var(--app-bottom) - 28px)!important}
.mobile-app.app-keyboard-open .mobile-app-tabs{display:none}
.mobile-app #main-content{max-width:1100px}
@media(max-width:700px){
 .mobile-app #main-content{padding:16px 12px 24px;width:100%;box-sizing:border-box}
 .mobile-app .site-banner{font-size:12px}
 .mobile-app input:not([type=checkbox]):not([type=radio]),.mobile-app select,.mobile-app textarea{font-size:16px}
 .mobile-app .post{border-radius:16px}
 .mobile-app .post-actions{gap:6px;flex-wrap:wrap}
 .mobile-app .post-action-btn{min-height:42px}
 .mobile-app .simple-publish-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;max-height:88dvh;border-radius:24px 24px 0 0;padding:18px 16px max(24px,env(safe-area-inset-bottom));box-sizing:border-box}
 .mobile-app .simple-task-list>a{min-height:66px}
 .mobile-app .guided-help-card{inset:8px 8px calc(var(--app-bottom) + env(safe-area-inset-bottom) + 8px)!important;width:auto!important;height:auto!important}
}
@media(prefers-reduced-motion:reduce){.mobile-app *{scroll-behavior:auto!important}}

@media(max-width:700px){
 .mobile-app .community-hero{padding:20px 16px;margin-top:0;min-height:0}
 .mobile-app .community-hero .page-title{font-size:25px;line-height:1.18}
 .mobile-app .community-hero .home-kicker{display:none}
 .mobile-app .community-hero p{font-size:14px;margin:10px 0}
 .mobile-app .home-actions{gap:8px;margin-top:12px}
 .mobile-app .home-actions .btn{padding:10px 12px;font-size:13px;min-height:44px}
 .mobile-app .cookie-consent{max-height:65dvh;overflow:auto;padding:14px}
 .mobile-app .cookie-consent-pola{width:38px;height:38px}
 .mobile-app .cookie-consent-intro p{font-size:12px;line-height:1.4}
 .mobile-app .cookie-consent-actions{gap:8px}
}
