/* Le Club Photo — cycle lisibilité et confort (28 août 2026) */
:root {
  --warm-accent: #a94968;
  --warm-accent-soft: #f9e9e5;
  --warm-border: #e5d3ca;
  --warm-sand: #fffaf4;
  --warm-ink: #2a2630;
  font-size: 16px;
}

:root[data-theme="dark"] {
  --warm-accent: #f09ab9;
  --warm-accent-soft: #35202d;
  --warm-border: #493442;
  --warm-sand: #1d1822;
  --warm-ink: #f5edf4;
}

html, body { overflow-x: hidden; }
body { font-size: 1.125rem; line-height: 1.62; color: var(--warm-ink, inherit); }

/* Une hiérarchie plus douce, avec moins d'effet « formulaire administratif ». */
.card, .community-hero, .page-hero, .club-hero, .real-admin-page-head,
.forum-category-card, .forum-section-card, .admin-panel, .meeting-card {
  border-radius: var(--radius-card, 20px);
}

button, input, select, textarea, .button, .btn, .header-admin-link,
.header-logout-button, .account-menu summary { border-radius: 12px; }

input, select, textarea { font-size: 1rem; min-height: 2.875rem; }

.page-sub, .home-section-head p, .card p, .form-help, .help-text,
.post-body, .forum-category-copy small, .forum-category-copy em,
.activity-copy small { line-height: 1.6; }

.forum-category-copy strong, .forum-category-copy a, .home-kicker,
.section-kicker, .page-kicker, .admin-kicker { color: var(--warm-accent); }

.forum-category-card, .forum-section-card {
  border-color: color-mix(in srgb, var(--warm-accent) 28%, var(--border-color, #e5d8dc));
  background: color-mix(in srgb, var(--warm-accent-soft) 36%, var(--card));
}

.forum-category-card:hover, .forum-section-card:hover,
.button:hover, .btn:hover { border-color: var(--warm-accent); }

.cat-icon-box, .activity-empty-icon, .journey-step-number {
  background: color-mix(in srgb, var(--warm-accent-soft) 82%, transparent);
  border-color: color-mix(in srgb, var(--warm-accent) 25%, transparent);
}

.site-header nav .nav-link { min-height: 2.875rem; font-size: .9rem; padding-inline: .7rem; }
.site-header nav .nav-link .nav-icon { width: 1.25em; text-align: center; }
.context-nav-inner a { min-height: 2.75rem; font-size: .9rem; }
.search-form input { min-height: 48px; }

/* Les textes courants gagnent un cran, sans gonfler les titres. */
.page-sub, .home-section-head p, .card p, .form-help, .help-text,
.forum-category-copy small, .forum-category-copy em { font-size: .945rem; }

/* A−− restitue l’ancienne taille compacte ; A− reste un compromis plus doux. */
html[data-text-size="tiny"] { font-size: 14.25px; }
html[data-text-size="small"] { font-size: 15.1px; }
html[data-text-size="normal"] { font-size: 16px; }
html[data-text-size="large"] { font-size: 17.8px; }
html[data-text-size="xl"] { font-size: 19.55px; }

.text-size-control { position: fixed; left: 16px; bottom: 76px; z-index: 1200; }
.text-size-control > button { border: 1px solid var(--warm-accent); background: var(--warm-accent-soft); color: var(--warm-accent); min-width: 48px; min-height: 44px; font-weight: 800; box-shadow: 0 8px 24px rgba(30, 18, 25, .12); }
.text-size-control-panel { display: none; position: absolute; left: 0; bottom: 52px; width: 296px; padding: 16px; border: 1px solid var(--warm-border); border-radius: 18px; background: var(--card); box-shadow: 0 14px 34px rgba(30, 18, 25, .18); }
.text-size-control.is-open .text-size-control-panel { display: block; }
.text-size-control-panel strong { display: block; margin-bottom: 10px; }
.text-size-control-panel p { margin: 0 0 12px; font-size: 15px; line-height: 1.4; }
.text-size-control-panel .text-size-choices { display: grid; grid-template-columns: minmax(60px, 1.25fr) repeat(4, minmax(42px, 1fr)); gap: 6px; }
.text-size-control-panel button { min-height: 40px; padding: 0 6px; border: 1px solid var(--warm-border); background: transparent; color: inherit; font-weight: 700; white-space: nowrap; }
.text-size-control-panel button[aria-pressed="true"] { background: var(--warm-accent); color: var(--accent-text, #fff); border-color: var(--warm-accent); }
.text-size-control-panel em { display: block; margin-top: 10px; color: var(--muted, #6b6670); font-size: 13px; font-style: normal; }
.comfort-switch { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--warm-border); cursor: pointer; }
.comfort-switch input { min-width: 21px; min-height: 21px; margin: 0; accent-color: var(--warm-accent); }
.comfort-switch b, .comfort-switch small { display: block; }
.comfort-switch small { margin-top: 2px; font-size: 13px; }

.visitor-start, .member-essentials { margin: 28px 0; }
.visitor-start-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.visitor-start-card { min-height: 176px; background: var(--warm-sand); border-color: var(--warm-border); box-shadow: 0 8px 24px rgba(77, 50, 42, .06); }
.visitor-start-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(77, 50, 42, .12); }
.club-help-link { background: var(--warm-accent-soft); border: 1px solid var(--warm-border); border-radius: 999px; padding: 10px 14px; }

html[data-comfort="true"] body { letter-spacing: .01em; }
html[data-comfort="true"] :where(button, .button, .btn, a.btn, summary, input, select, textarea) { min-height: 52px; }
html[data-comfort="true"] .card, html[data-comfort="true"] .community-hero, html[data-comfort="true"] .page-hero, html[data-comfort="true"] .club-hero, html[data-comfort="true"] .forum-category-card, html[data-comfort="true"] .forum-section-card { margin-bottom: 24px; }
html[data-comfort="true"] .forum-category-card, html[data-comfort="true"] .visitor-start-card { border-width: 2px; }
html[data-comfort="true"] .page-sub, html[data-comfort="true"] .home-section-head p, html[data-comfort="true"] .card p { line-height: 1.78; }

@media (max-width: 760px) {
  body { font-size: 1.125rem; }
  .site-header nav .nav-link { font-size: .9rem; min-height: 3rem; }
  .context-nav-inner a { font-size: .9rem; min-height: 2.875rem; }
  .text-size-control { left: 12px; bottom: 84px; }
  .text-size-control-panel { width: min(296px, calc(100vw - 24px)); }
  .visitor-start-grid { grid-template-columns: 1fr; }
  .visitor-start-card { min-height: 0; }

  /* Sur téléphone, une action doit rester lisible : l’icône complète le libellé. */
  .display-customizer { right: 12px; bottom: 84px; }
  .display-customizer-toggle {
    width: auto;
    min-height: 46px;
    height: auto;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 14px;
  }
  .display-customizer-toggle b { display: inline; }
}

/* Cycle 3 — confort dans les contenus réellement consultés.
   La taille de base est volontairement renforcée aussi dans les composants
   qui avaient encore une police locale héritée de l’ancienne interface. */
.post-card,
.event-discussion,
.club-meeting-card,
.meeting-document,
.activity-row,
.topic-head,
.calendar-event-card {
  border-color: var(--warm-border);
}

.post-card {
  padding: clamp(1.25rem, 2.5vw, 1.8rem);
  background: color-mix(in srgb, var(--card) 93%, var(--warm-sand));
}

.post-body,
.event-comment-body,
.event-discussion-body,
.meeting-document-content,
.club-meeting-content {
  font-size: 1rem;
  line-height: 1.75;
}

.post-meta,
.post-author-meta,
.event-comment-meta,
.club-meeting-meta,
.meeting-document-meta,
.activity-row time,
.activity-row small,
.post-actions,
.post-actions a,
.post-actions button {
  font-size: .82rem;
  line-height: 1.45;
}

.post-actions,
.event-comment-actions,
.meeting-document-actions {
  gap: .55rem;
}

.post-actions a,
.post-actions button,
.event-comment-actions a,
.event-comment-actions button,
.meeting-document-actions a,
.meeting-document-actions button {
  min-height: 2.5rem;
  padding: .45rem .72rem;
  border-radius: .75rem;
}

.event-discussion,
.club-meeting-card,
.meeting-document,
.calendar-event-card {
  padding: clamp(1rem, 2.4vw, 1.55rem);
  border-radius: 1.2rem;
}

.event-discussion h2,
.club-meeting-card h2,
.meeting-document h2,
.calendar-event-card h2 {
  font-size: clamp(1.28rem, 2vw, 1.6rem);
  line-height: 1.25;
}

.first-visit-guide {
  display: grid;
  grid-template-columns: minmax(15rem, .9fr) minmax(20rem, 1.3fr) auto;
  gap: 1.35rem;
  align-items: center;
  margin: 1.25rem 0 1.65rem;
  padding: 1.4rem 1.55rem;
  border-color: var(--warm-border);
  background: linear-gradient(120deg, var(--warm-sand), color-mix(in srgb, var(--warm-accent-soft) 54%, var(--card)));
}

.first-visit-guide[hidden] { display: none; }
.first-visit-guide h2 { margin: .22rem 0 .4rem; font-size: clamp(1.25rem, 2vw, 1.6rem); }
.first-visit-guide p { margin: 0; color: var(--text-sub); }
.first-visit-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: 0; margin: 0; list-style: none; }
.first-visit-steps li { display: flex; gap: .58rem; min-width: 0; align-items: flex-start; }
.first-visit-steps li > span { display: grid; flex: 0 0 1.7rem; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: 50%; background: var(--warm-accent); color: #fff; font-size: .78rem; font-weight: 800; }
.first-visit-steps strong,.first-visit-steps small { display: block; }
.first-visit-steps strong { font-size: .88rem; }
.first-visit-steps small { margin-top: .12rem; color: var(--text-sub); font-size: .76rem; line-height: 1.38; }
.first-visit-actions { display: grid; gap: .5rem; align-items: center; }
.first-visit-actions .btn { justify-content: center; white-space: nowrap; }
.btn-quiet { background: transparent; border-color: var(--warm-border); color: var(--text-sub); box-shadow: none; }
.btn-quiet:hover { background: var(--warm-accent-soft); color: var(--warm-accent); }

html[data-comfort="true"] .post-card,
html[data-comfort="true"] .event-discussion,
html[data-comfort="true"] .club-meeting-card,
html[data-comfort="true"] .meeting-document,
html[data-comfort="true"] .calendar-event-card { padding: clamp(1.45rem, 3vw, 2.1rem); }
html[data-comfort="true"] .post-body,
html[data-comfort="true"] .event-comment-body,
html[data-comfort="true"] .event-discussion-body,
html[data-comfort="true"] .meeting-document-content { line-height: 1.9; }
html[data-comfort="true"] .post-actions a,
html[data-comfort="true"] .post-actions button,
html[data-comfort="true"] .event-comment-actions a,
html[data-comfort="true"] .event-comment-actions button { min-height: 2.9rem; padding-inline: .9rem; }

@media (max-width: 900px) {
  .first-visit-guide { grid-template-columns: 1fr; }
  .first-visit-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .post-card { padding: 1.1rem; }
  .post-body,
  .event-comment-body,
  .event-discussion-body,
  .meeting-document-content,
  .club-meeting-content { font-size: 1rem; line-height: 1.72; }
  .post-actions,
  .event-comment-actions,
  .meeting-document-actions { gap: .42rem; }
  .post-actions a,
  .post-actions button,
  .event-comment-actions a,
  .event-comment-actions button,
  .meeting-document-actions a,
  .meeting-document-actions button { min-height: 2.65rem; }
  .first-visit-guide { margin-block: 1rem 1.35rem; padding: 1.15rem; }
  .first-visit-steps { grid-template-columns: 1fr; gap: .65rem; }
  .first-visit-actions { grid-template-columns: 1fr; }
}

/* Cycle sécurité d’usage : clavier, tactile et mouvements réduits. */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--warm-accent);
  outline-offset: 3px;
}

@media (pointer: coarse) {
  :where(button, .button, .btn, a.button, summary) { min-height: 44px; }
}

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

/* Cycle 2 — une base plus chaleureuse et moins “tableau administratif”. */
:root, :root[data-theme="light"] {
  --bg: #fbf7f2;
  --card: #fffdfb;
  --border: #e6d8cf;
  --text: #2c2630;
  --text-sub: #706773;
  --muted: #827885;
  --soft: #f5ebe3;
  --accent: #0876d9;
  --accent-dark: #0565ba;
  --shadow: 0 10px 26px rgba(89, 57, 44, .09);
}
:root[data-theme="dark"] {
  --bg: #19151c;
  --card: #251e29;
  --border: #493b4b;
  --text: #f8eff5;
  --text-sub: #c8bac5;
  --muted: #ad9eab;
  --soft: #302534;
  --accent: #f092b6;
  --accent-dark: #dc6f9d;
  --shadow: 0 12px 30px rgba(0, 0, 0, .25);
}

body, .page-shell { background: var(--bg); color: var(--text); }
.site-header, .context-nav, .site-banner { background: color-mix(in srgb, var(--card) 92%, var(--warm-sand)); border-color: var(--border); }
.site-header { box-shadow: 0 1px 0 rgba(118, 78, 60, .06); }
.card, .community-hero, .page-hero, .club-hero, .forum-section-card, .forum-category-card,
.admin-nav, .real-space-admin-menu, .space-actions, .club-dashboard-main, .club-members-preview {
  border-color: var(--border);
  box-shadow: var(--shadow);
}
.btn, .button, button { border-radius: 14px; }
.btn-primary, .button-primary { box-shadow: 0 7px 17px color-mix(in srgb, var(--accent) 24%, transparent); }
.page-title { letter-spacing: -.035em; }
.page-title { font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.08; }
.home-section-head h2, .discover-section h2, .club-hero h2 { font-size: clamp(1.45rem, 2.5vw, 2rem); line-height: 1.18; }
.forum-section-card h3, .club-forum-section h3, .visitor-start-card strong, .discover-card strong { font-size: 1.12rem; }
.btn, .button, button, input, select, textarea { font-size: 1rem; }
.home-kicker { color: var(--warm-accent); letter-spacing: .11em; }
.site-header nav .nav-link, .context-nav-inner a { font-weight: 750; }
.club-hero-more-actions { margin-top: 12px; }
.club-hero-more-actions > summary {
  display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 2px;
  color: var(--text-sub); font-weight: 750; cursor: pointer; list-style: none;
}
.club-hero-more-actions > summary::-webkit-details-marker { display: none; }
.club-hero-more-actions[open] > summary { color: var(--warm-accent); }
.club-hero-secondary-actions { margin-top: 4px; padding: 14px; border: 1px solid var(--warm-border); border-radius: 18px; background: color-mix(in srgb, var(--warm-sand) 76%, var(--card)); }

/* Le sous-menu mobile reste dans la carte : il défile avec la page et ne déborde jamais de l’écran. */
@media (max-width: 760px) {
  .real-space-admin-menu.real-space-admin-modern .real-space-admin-dropdown,
  .admin-nav-modern .admin-nav-dropdown { position: static; }
  .real-space-admin-menu.real-space-admin-modern .real-space-admin-dropdown-panel,
  .admin-nav-modern .admin-nav-dropdown-panel {
    position: static;
    width: 100%; min-width: 0; max-height: none; box-sizing: border-box;
    margin: 6px 0 0; padding: 6px; overflow: visible; box-shadow: none;
  }
  .real-space-admin-menu.real-space-admin-modern .real-space-admin-dropdown-panel a,
  .admin-nav-modern .admin-nav-dropdown-panel a { white-space: normal; font-size: 14px; padding: 11px 10px; }
  .club-hero-primary-actions .btn { width: 100%; justify-content: center; }
  .club-hero-secondary-actions { display: grid; grid-template-columns: 1fr; }
}

/* Finalisation sombre — aucun composant ne doit retomber sur un fond clair.
   Cette variante conserve la chaleur rose/prune, avec un contraste suffisant
   pour les textes, les cartes et le panneau de confort. */
:root[data-theme="dark"] {
  color-scheme: dark;
}

:root[data-theme="dark"] .forum-section-card {
  background: var(--card);
  border-color: var(--border);
}

:root[data-theme="dark"] .forum-category-card {
  background: color-mix(in srgb, var(--warm-accent-soft) 32%, var(--card));
  border-color: color-mix(in srgb, var(--warm-border) 78%, var(--warm-accent));
}

:root[data-theme="dark"] .forum-category-copy strong,
:root[data-theme="dark"] .forum-category-copy a,
:root[data-theme="dark"] .home-kicker,
:root[data-theme="dark"] .section-kicker,
:root[data-theme="dark"] .page-kicker,
:root[data-theme="dark"] .admin-kicker {
  color: var(--warm-accent);
}

:root[data-theme="dark"] .forum-category-copy small,
:root[data-theme="dark"] .forum-category-copy em,
:root[data-theme="dark"] .page-sub,
:root[data-theme="dark"] .home-section-head p,
:root[data-theme="dark"] .card p,
:root[data-theme="dark"] .form-help,
:root[data-theme="dark"] .help-text {
  color: var(--text-sub);
}

:root[data-theme="dark"] .cat-icon-box,
:root[data-theme="dark"] .activity-empty-icon,
:root[data-theme="dark"] .journey-step-number {
  background: color-mix(in srgb, var(--warm-accent-soft) 82%, var(--card));
  border-color: color-mix(in srgb, var(--warm-accent) 35%, var(--warm-border));
}

:root[data-theme="dark"] .text-size-control > button {
  background: var(--warm-accent-soft);
  color: var(--warm-accent);
  border-color: var(--warm-accent);
  box-shadow: 0 10px 25px rgba(0, 0, 0, .34);
}

:root[data-theme="dark"] .text-size-control-panel {
  background: var(--card);
  color: var(--text);
  border-color: var(--border);
  box-shadow: 0 18px 36px rgba(0, 0, 0, .48);
}

:root[data-theme="dark"] .text-size-control-panel p,
:root[data-theme="dark"] .text-size-control-panel em,
:root[data-theme="dark"] .comfort-switch small {
  color: var(--text-sub);
}

:root[data-theme="dark"] .text-size-control-panel button {
  background: var(--bg);
  color: var(--text);
  border-color: var(--border);
}

:root[data-theme="dark"] .text-size-control-panel button[aria-pressed="true"] {
  background: var(--warm-accent);
  color: var(--accent-text, #fff);
  border-color: var(--warm-accent);
}

:root[data-theme="dark"] .visitor-start-card,
:root[data-theme="dark"] .first-visit-guide,
:root[data-theme="dark"] .club-hero-secondary-actions,
:root[data-theme="dark"] .club-help-link {
  background: var(--card);
  border-color: var(--border);
}

/* Palette configurable : les composants qui avaient historiquement leurs
   propres couleurs suivent maintenant les variables de la communauté. */
.btn-primary, .button-primary,
.mobile-nav-action-primary,
.admin-nav-links a.is-active,
.admin-nav-modern .admin-nav-primary a.is-active,
.real-space-admin-menu.real-space-admin-modern .real-space-admin-primary a.is-active {
  color: var(--accent-text, #fff) !important;
}

/* Réglages de palette — une grille concise, avec un aperçu vivant par thème. */
.site-palette-card { border-color: var(--warm-border); background: linear-gradient(135deg, color-mix(in srgb, var(--warm-sand) 88%, var(--card)), var(--card)); }
.error-msg { margin:0 0 1.15rem; padding:.95rem 1.1rem; border:1px solid color-mix(in srgb, #b93838 52%, var(--border, #e5d3ca)); border-radius:1rem; background:color-mix(in srgb, #b93838 10%, var(--card, #fffdfb)); color:var(--text, #2a2630); font-weight:700; }
.palette-safety-note { display:flex; gap:10px; align-items:flex-start; margin:18px 0 0; padding:12px 14px; border:1px solid color-mix(in srgb, var(--warm-accent) 28%, var(--warm-border)); border-radius:14px; background:color-mix(in srgb, var(--warm-accent-soft) 52%, var(--card)); }
.palette-safety-note strong { color:var(--warm-accent); white-space:nowrap; }
.palette-safety-note span { color:var(--text-sub); }
.palette-mode-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; margin-top:20px; }
.palette-mode { min-width:0; margin:0; padding:16px; border:1px solid var(--warm-border); border-radius:18px; background:var(--card); }
.palette-mode legend { display:flex; align-items:center; gap:8px; width:100%; margin:0 0 14px; padding:0; color:var(--text); }
.palette-mode legend > span { display:grid; width:31px; height:31px; place-items:center; border-radius:10px; background:var(--warm-accent-soft); }
.palette-mode legend small { display:block; margin-left:auto; color:var(--text-sub); font-size:12px; font-weight:500; text-align:right; }
.palette-preview { --preview-accent:var(--warm-accent); --preview-accentHover:var(--warm-accent-dark, var(--warm-accent)); --preview-accentText:#fff; --preview-accentSoft:var(--warm-accent-soft); --preview-page:var(--warm-sand); --preview-surface:var(--card); --preview-text:var(--text); --preview-textSub:var(--text-sub); --preview-border:var(--warm-border); margin-bottom:14px; padding:10px; border:1px solid var(--preview-border); border-radius:14px; background:var(--preview-page); }
.palette-preview-card { display:grid; gap:7px; padding:14px; border:1px solid var(--preview-border); border-radius:11px; background:var(--preview-surface); color:var(--preview-text); box-shadow:inset 0 0 0 999px color-mix(in srgb, var(--preview-accentSoft) 14%, transparent); }
.palette-preview-kicker { color:var(--preview-accent); font-size:10px; font-weight:850; letter-spacing:.11em; }
.palette-preview strong { font-size:16px; }
.palette-preview p { margin:0; color:var(--preview-textSub); font-size:13px; line-height:1.45; }
.palette-preview b { justify-self:start; padding:7px 10px; border-radius:9px; background:var(--preview-accent); color:var(--preview-accentText); font-size:12px; transition:background-color .16s ease, transform .16s ease; }
.palette-preview b:hover { background:var(--preview-accentHover); transform:translateY(-1px); }
.palette-preview-card > small { color:var(--preview-textSub); font-size:11px; }
.palette-field-grid { display:grid; gap:8px; }
.palette-field { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:8px 0; border-bottom:1px solid color-mix(in srgb, var(--warm-border) 65%, transparent); cursor:pointer; }
.palette-field:last-child { border-bottom:0; }
.palette-field > span:first-child { min-width:0; }
.palette-field strong, .palette-field small { display:block; }
.palette-field strong { font-size:14px; }
.palette-field small { margin-top:2px; color:var(--text-sub); font-size:11px; line-height:1.3; }
.palette-picker { display:flex; align-items:center; gap:7px; flex:none; }
.palette-picker input[type="color"] { width:36px; min-width:36px; height:36px; min-height:36px; padding:3px; border:1px solid var(--warm-border); border-radius:10px; background:var(--card); cursor:pointer; }
.palette-picker output { min-width:59px; color:var(--text-sub); font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:11px; text-align:right; }
.palette-reset { width:100%; margin-top:12px; justify-content:center; font-size:13px; }
.palette-save-inline { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; padding:14px; border:1px solid var(--warm-border); border-radius:15px; background:color-mix(in srgb, var(--warm-accent-soft) 22%, var(--card)); }
.palette-contrast-override { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.palette-contrast-override input { width:20px; height:20px; margin-top:2px; accent-color:var(--warm-accent); }
.palette-contrast-override strong, .palette-contrast-override small { display:block; }
.palette-contrast-override small { margin-top:2px; color:var(--text-sub); font-size:12px; line-height:1.35; }
.palette-save-inline .btn { flex:none; white-space:nowrap; }
.palette-help { margin:16px 0 0; }

@media (max-width: 860px) { .palette-mode-grid { grid-template-columns:1fr; } }
@media (max-width: 520px) {
  .palette-safety-note { flex-direction:column; gap:4px; }
  .palette-mode { padding:13px; }
  .palette-mode legend small { max-width:128px; }
  .palette-field { gap:8px; }
  .palette-field small { display:none; }
  .palette-save-inline { align-items:stretch; flex-direction:column; }
  .palette-save-inline .btn { width:100%; justify-content:center; }
}

/* Les formulaires d'administration utilisent parfois leur propre fond clair.
   Cette règle les ramène tous dans la même palette, y compris les pages moins
   souvent visitées (protection, membres, réglages et notes internes). */
:root[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea {
  background: var(--bg);
  color: var(--text);
  border-color: var(--border);
}

:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder {
  color: color-mix(in srgb, var(--text-sub) 82%, transparent);
  opacity: 1;
}

:root[data-theme="dark"] .admin-detail-status.is-pending,
:root[data-theme="dark"] .protection-countdown,
:root[data-theme="dark"] .idea-column-building .idea-status {
  background: #3a2d1a;
  border-color: #866427;
  color: #ffe0a1;
}

:root[data-theme="dark"] .admin-detail-status.is-danger {
  background: #3d2529;
  border-color: #8a4a52;
  color: #ffc4cb;
}
