/* kb-foyer.css — foyer, santé, réglages, notifications, événements, cercles.
   Fichier de la famille « foyer / santé / réglages » de la refonte « Ketchup moutarde ».
   Chargé après kb-base.css ; jetons uniquement, pas de couleurs écrites en dur. */


/* ── Mon foyer et ma santé (Reglages.js) ─────────────────── */
.kb-foyer { display: flex; flex-direction: column; gap: 20px; }
.kb-foyer > * { flex-shrink: 0; }
.kb-foyer__bloc { display: flex; flex-direction: column; gap: 8px; }
.kb-foyer__bloc-title { padding-left: 4px; font-weight: 600; }
.kb-foyer__person { min-height: 68px; padding: 10px 12px 10px 16px; gap: 12px; }
.kb-list > .kb-foyer__person + .kb-foyer__person { border-top: 1px solid var(--color-border); }
.kb-foyer__avatar {
  display: grid; place-items: center; flex: none;
  width: 36px; height: 36px; border-radius: 999px;
  background: var(--color-surface-2); color: var(--color-text);
  font: 600 13px/1 var(--font-body);
}
.kb-foyer__age { font-weight: 600; }
.kb-foyer__pills { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.kb-foyer__pills > .pill { min-height: 20px; padding: 0 8px; }

/* Ligne de réglage commune (Mon foyer, Réglages, Magasins et offres) : <button class="v4-nav-row">. */
.v4-nav-row {
  display: flex; align-items: center; gap: 14px;
  width: 100%; min-height: 52px; padding: 10px 12px 10px 16px;
  border: 0; background: transparent; color: var(--color-text);
  font: inherit; text-align: left; cursor: pointer;
}
.v4-nav-row:active { background: var(--color-surface-2); }
.kb-list > .v4-nav-row + .v4-nav-row, .kb-list > .v4-nav-row + *, .kb-list > * + .v4-nav-row { border-top: 1px solid var(--color-border); }
.v4-nav-row .kb-row__title { font-weight: 500; }
.v4-nav-row__icon { display: grid; place-items: center; flex: none; width: 24px; height: 24px; color: var(--color-primary); }
.v4-nav-row__value { flex: 0 1 auto; max-width: 45%; font-size: 13px; line-height: 18px; color: var(--color-muted); text-align: right; font-variant-numeric: tabular-nums; }
@media (min-width: 760px) {
  .kb-foyer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .kb-foyer > .kb-foyer__people { grid-row: span 3; }
}

/* ── Réglages (Settings.js) et Mes données (ExportData.js) ─ */
.kb-settings { display: flex; flex-direction: column; gap: 24px; }
.kb-settings > *, .kb-donnees > *, .kb-donnees-screen > * { flex-shrink: 0; }
.kb-settings__section { display: flex; flex-direction: column; gap: 8px; }
.kb-settings__label { padding-left: 4px; font-weight: 600; }
.kb-settings__account { display: flex; flex-direction: column; gap: 14px; }
.kb-settings__profile { display: flex; align-items: center; gap: 14px; }
.kb-settings__avatar {
  display: grid; place-items: center; flex: none; width: 56px; height: 56px; border-radius: 999px;
  background: var(--color-primary); color: var(--color-on-primary); font: 600 20px/1 var(--font-display);
}
.kb-settings__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kb-settings__email { font: 600 17px/24px var(--font-display); letter-spacing: -.01em; overflow-wrap: anywhere; }
.kb-settings__premium { color: var(--color-primary); font-weight: 600; }
.kb-settings__premium-row { display: flex; flex-wrap: wrap; gap: 8px; }
.kb-settings__premium-row > .btn--primary { min-height: 48px; }
.kb-settings__logout { flex: 1 1 140px; }
.kb-settings__themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kb-settings__theme.appearance-control__option {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  min-height: 86px; padding: 12px 8px; border: 1px solid var(--color-border); border-radius: var(--radius-tile);
  background: var(--color-surface); color: var(--color-text); font: 600 13px/18px var(--font-body); box-shadow: none;
}
.kb-settings__theme.appearance-control__option.is-active {
  border: 2px solid var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary);
}
.kb-settings__hint { padding-left: 4px; }
.kb-settings__switch { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 10px 16px; cursor: pointer; }
.kb-list > .kb-settings__switch { border-top: 1px solid var(--color-border); }
.kb-settings__alerts { padding: 0; }
.kb-settings__alerts-row { display: flex; align-items: flex-start; gap: 14px; padding: 14px 16px; }
.kb-settings__alerts-btn { margin: 0 16px 14px 54px; align-self: flex-start; }

.kb-donnees { display: flex; flex-direction: column; gap: 16px; }
.kb-donnees__export { display: flex; flex-direction: column; gap: 10px; }
.kb-donnees__contenu { list-style: none; margin: 0; padding: 0; }
.kb-donnees__contenu > .kb-row { min-height: 48px; font-size: 15px; }
.kb-donnees__contenu > li + li { border-top: 1px solid var(--color-border); }
.kb-donnees__accord { display: flex; flex-direction: column; gap: 8px; }
.kb-donnees__accord .btn { min-height: 48px; height: auto; white-space: normal; }
.kb-donnees__droits { padding-inline: 4px; }
.kb-donnees__confirm { font-size: 15px; line-height: 21px; color: var(--color-text); }
.kb-donnees-screen { display: flex; flex-direction: column; padding-bottom: 0; }
.kb-donnees-screen > .kb-donnees { flex: 1; }
.kb-donnees-screen .kb-bottom-bar { margin-top: auto; }

/* ── Notifications ───────────────────────────────────────── */
.kb-notif__tout { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--color-primary); font: 600 15px var(--font-body); }
.kb-notifs { display: flex; flex-direction: column; }
.kb-notifs__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.kb-notifs__liste .kb-swipe-row { border-radius: var(--radius-card); }
.kb-notifs__liste .kb-swipe-row__actions { overflow: hidden; border-radius: 0 var(--radius-card) var(--radius-card) 0; }
.kb-notifs__liste .kb-swipe-row__actions[aria-hidden="true"] { visibility: hidden; }
.kb-notifs__liste .kb-swipe-row.is-dragging .kb-swipe-row__actions { visibility: visible; }
.kb-notifs__liste .kb-swipe-row__content { background: transparent; }
.kb-notifs__liste .kb-swipe-row__action { width: 84px; }
.kb-notif {
  border: 1px solid var(--color-border); border-radius: var(--radius-card);
  background: var(--color-surface); overflow: hidden;
}
.notifications__item {
  display: flex; align-items: flex-start; gap: 12px; width: 100%;
  min-height: 64px; padding: 14px 16px; border: 0; background: transparent;
  color: var(--color-text); font: inherit; text-align: left; cursor: pointer;
}
.kb-notif__icon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: var(--color-surface-2); color: var(--color-text); }
.kb-notif__icon--brand { background: var(--color-primary-soft); color: var(--color-primary); }
.kb-notif__icon--warn { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }
.kb-notif__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.kb-notif__texte { font-size: 15px; line-height: 20px; font-weight: 500; overflow-wrap: anywhere; }
.kb-notif--non-lue .kb-notif__texte { font-weight: 600; }
.kb-notif__meta { font-size: 13px; line-height: 18px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kb-notif__actions { display: flex; gap: 8px; padding: 0 16px 14px 64px; }
.kb-notif__actions .btn { min-height: 44px; padding-inline: 18px; }
.kb-notifs__aide { margin-top: 16px; text-align: center; }
.kb-notifs__vide { flex: 1; min-height: 60vh; }
.kb-notifs__vide-icon { color: var(--color-muted); }

/* ── Événements : liste (EventsList) et détail (EventDetail) ─ */
.kb-empty-brand { background: var(--color-primary-soft); color: var(--color-primary); width: 88px; height: 88px; }
.kb-events { display: flex; flex-direction: column; }
.kb-events__nouveau { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--color-primary); font: 600 17px var(--font-body); }
.kb-events__vide { flex: 1; }
.kb-events__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.kb-event-card {
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 88px; padding: 14px 16px 14px 8px;
  border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface);
  color: var(--color-text); font: inherit; text-align: left; cursor: pointer;
}
.kb-event-card:active { background: var(--color-surface-2); }
.kb-event-card__date { display: flex; flex-direction: column; align-items: center; flex: 0 0 56px; color: var(--color-primary); }
.kb-event-card__mois { font: 600 11px/14px var(--font-body); letter-spacing: .06em; }
.kb-event-card__jour { font: 600 24px/30px var(--font-display); color: var(--color-text); font-variant-numeric: tabular-nums; }
.kb-event-card__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.kb-event-card__titre { font: 600 17px/22px var(--font-display); letter-spacing: -.01em; overflow-wrap: anywhere; }
.kb-event-card__meta { font-size: 13px; line-height: 18px; color: var(--color-muted); }
.kb-event-card__statut { align-self: flex-start; margin-top: 4px; padding: 2px 8px; border-radius: 999px; background: var(--color-primary-soft); font: 600 11px/16px var(--font-body); }
.kb-event-card__statut--brand { color: var(--color-primary); }
.kb-event-card__statut--accent { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }

.event-detail { display: flex; flex-direction: column; }
.event-detail > * { flex-shrink: 0; }
.event-detail__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 16px; font-size: 13px; line-height: 18px; color: var(--color-muted); }
.event-detail .event-detail__participants { margin: 0; font-size: 13px; color: var(--color-muted); }
.event-detail__date::first-letter { text-transform: uppercase; }
.event-proposition {
  display: flex; flex-direction: column; gap: 8px; padding: 18px;
  border-radius: var(--radius-card); background: var(--color-primary); color: var(--color-on-primary);
}
.event-proposition__eyebrow { display: block; margin-bottom: 8px; font: 600 11px/14px var(--font-body); letter-spacing: .06em; text-transform: uppercase; opacity: .9; }
.event-proposition__titre { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; overflow-wrap: anywhere; }
.event-proposition__actions { display: flex; gap: 8px; margin-top: 6px; }
.event-proposition__accepter { flex: 1; background: var(--color-surface); color: var(--color-primary); }
.event-proposition__refuser { flex: 0 1 auto; border-color: color-mix(in srgb, var(--color-on-primary) 60%, transparent); background: transparent; color: var(--color-on-primary); }
.event-detail .event-ma-part__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.event-detail .event-ma-part__liste li { display: flex; align-items: center; gap: 4px; min-height: 52px; border-top: 1px solid var(--color-border); }
.event-detail .event-ma-part__fait span { text-decoration: line-through; color: var(--color-subtle); }
.event-detail .event-ma-part__stock { margin-left: auto; display: flex; align-items: center; gap: 6px; font-size: 13px; white-space: nowrap; }
.event-ma-part__prendre { margin-left: auto; }
.event-progress { gap: 10px; }
.event-progress__track { height: 6px; border-radius: 999px; background: var(--color-surface-2); overflow: hidden; }
.event-progress__track > span { display: block; height: 100%; border-radius: 999px; background: var(--color-primary); transition: width .3s; }
.event-import-photo { min-height: 48px; }
.event-detail .event-task-row__stock { font-size: 13px; color: var(--color-apple); }
.event-detail .event-task-row__poids { font-size: 13px; color: var(--color-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.event-detail .event-task-row__duree { width: 72px; min-height: 40px; padding: 0 8px; font-size: 15px; }
.event-detail .event-task-row__refus { color: var(--color-danger); font-size: 13px; font-weight: 600; }
.event-detail .event-participants__choix .pill { min-height: 40px; padding: 0 14px; border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); font-size: 13px; cursor: pointer; }
.event-detail .event-participants__choix .pill[aria-checked="true"] { border-color: var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary); }
.event-detail .timeline-generator__quand { font-size: 13px; font-weight: 600; color: var(--color-muted); }
.event-detail .timeline-generator__ouvrir { min-height: 52px; width: 100%; padding: 0 16px; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); color: var(--color-text); font: 600 15px var(--font-body); }
.timeline-generator__actions { display: flex; gap: 8px; }
.timeline-generator__actions > .btn--primary { flex: 1; }
.event-infos { gap: 12px; }

/* ── Cercles : liste (Cercles) et détail (CercleDetail) ──── */
.kb-cercles, .kb-cercle { display: flex; flex-direction: column; gap: 16px; }
.kb-cercles > *, .kb-cercle > * { flex-shrink: 0; }
.kb-cercles__invitations { display: flex; flex-direction: column; gap: 8px; }
.kb-cercles__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.kb-cercles__vide { flex: 1; }
.kb-cercle-card {
  display: flex; align-items: center; gap: 4px; padding: 4px 4px 4px 0;
  border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface);
}
.kb-cercle-card--skel { flex-direction: column; align-items: flex-start; gap: 10px; padding: 18px; }
.kb-cercle-card__open {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex: 1; min-width: 0;
  min-height: 64px; padding: 14px 8px 14px 16px; border: 0; background: transparent; color: var(--color-text); font: inherit; text-align: left; cursor: pointer;
}
.kb-cercle-card__nom { font: 600 17px/24px var(--font-display); letter-spacing: -.01em; overflow-wrap: anywhere; }
.kb-cercle-card__nb { flex: none; font-size: 13px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kb-cercle-card__suppr { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--color-subtle); cursor: pointer; }
.kb-cercles__creer {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px;
  border: 1px dashed var(--color-border); border-radius: var(--radius-card); background: transparent;
  color: var(--color-primary); font: 600 15px var(--font-body); cursor: pointer;
}
.kb-cercles__form { display: flex; flex-direction: column; gap: 14px; }
.kb-cercles__nom { min-height: 56px; font-size: 20px; font-weight: 600; }

.kb-cercle__inviter { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--color-primary); font: 600 17px var(--font-body); }
.kb-cercle__onglet { display: flex; flex-direction: column; gap: 12px; }
.kb-cercle__partages { list-style: none; margin: 0; padding: 0; }
.kb-cercle__partage { display: flex; align-items: center; gap: 12px; min-height: 72px; border-bottom: 1px solid var(--color-border); }
.kb-cercle__partage:first-child { border-top: 1px solid var(--color-border); }
.kb-cercle__avatar { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 999px; background: var(--color-surface-2); font: 600 13px/1 var(--font-body); }
.kb-cercle__partage-open { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; min-height: 56px; justify-content: center; border: 0; background: transparent; color: var(--color-text); font: inherit; text-align: left; cursor: pointer; padding: 0; }
.kb-cercle__partage-nom { font-size: 15px; line-height: 20px; font-weight: 600; overflow-wrap: anywhere; }
.kb-cercle__mot { font-style: italic; }
.kb-cercle__enregistrer { color: var(--color-primary); }
.kb-cercle__titre { margin-top: 12px; }
.kb-cercle__invite { display: flex; flex-direction: column; gap: 6px; }
.kb-cercle__invite-row { display: flex; gap: 8px; }
.kb-cercle__invite-row > input { flex: 1; min-width: 0; }
.kb-cercle__membres { list-style: none; margin: 0; padding: 0; }
.kb-cercle__membres > li + li { border-top: 1px solid var(--color-border); }
.kb-cercle__quitter { margin-top: 12px; }
.kb-cercle__introuvable { margin: 40px auto; text-align: center; }

/* ── Cacheroute (CacherouteConfig) ───────────────────────── */
.kb-cacher { display: flex; flex-direction: column; gap: 16px; }
.kb-cacher > * { flex-shrink: 0; }
.kb-cacher__tradition { display: flex; flex-direction: column; gap: 6px; }
.kb-cacher__curseur-tete { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; color: var(--color-muted); }
.kb-cacher__mark { color: var(--color-primary); font-weight: 600; }
.kb-cacher__curseur {
  -webkit-appearance: none; appearance: none; width: 100%; height: 44px; margin: 0; background: transparent; cursor: pointer;
}
.kb-cacher__curseur::-webkit-slider-runnable-track { height: 4px; border-radius: 999px; background: linear-gradient(to right, var(--color-primary) var(--val, 50%), var(--color-surface-2) var(--val, 50%)); }
.kb-cacher__curseur::-moz-range-track { height: 4px; border-radius: 999px; background: var(--color-surface-2); }
.kb-cacher__curseur::-moz-range-progress { height: 4px; border-radius: 999px; background: var(--color-primary); }
.kb-cacher__curseur::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -11px; border: 2px solid var(--color-primary); border-radius: 999px; background: var(--color-surface); }
.kb-cacher__curseur::-moz-range-thumb { width: 22px; height: 22px; border: 2px solid var(--color-primary); border-radius: 999px; background: var(--color-surface); }
.kb-cacher__switch { display: flex; align-items: center; gap: 14px; cursor: pointer; }
.kb-cacher__switch--sep { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--color-border); }
.kb-cacher__switch--row { min-height: 64px; padding: 10px 16px; }
.kb-list > .kb-cacher__switch--row + .kb-cacher__switch--row { border-top: 1px solid var(--color-border); }
.kb-cacher__hebreu { font-weight: 400; color: var(--color-subtle); font-size: 13px; }
.kb-cacher__residence { display: flex; flex-direction: column; gap: 8px; }
.kb-cacher__residence .kb-seg > [aria-checked="true"] { background: var(--color-surface); color: var(--color-text); font-weight: 600; }
.kb-cacher__aide { margin-bottom: -4px; }
.kb-cacher__board { display: flex; flex-direction: column; gap: 12px; }
.kb-cacher__zone { display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 2px solid transparent; border-radius: var(--radius-card); background: var(--color-surface-2); transition: border-color var(--trans-fast); }
.kb-cacher__zone.is-over { border-color: var(--color-primary); }
.kb-cacher__zone-head { display: flex; justify-content: space-between; gap: 12px; padding-inline: 2px; font: 600 13px/18px var(--font-body); }
.kb-cacher__count { font-size: 11px; font-variant-numeric: tabular-nums; opacity: .8; }
.kb-cacher__zone--casher_certifie { background: var(--color-primary-soft); color: var(--color-primary); }
.kb-cacher__zone--verif_ingredients { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }
.kb-cacher__zone--partout { background: var(--color-surface-2); color: var(--color-text); }
.kb-cacher__zone--pool { background: var(--color-surface); border: 1px dashed var(--color-border); color: var(--color-muted); }
.kb-cacher__pool-vide { padding: 10px 14px; border: 1px dashed var(--color-border); border-radius: var(--radius-tile); font-size: 13px; color: var(--color-muted); }
.kb-cacher__pool-vide.is-over { border-color: var(--color-primary); }
.kb-cacher__chips { display: flex; flex-wrap: wrap; gap: 8px; min-height: 40px; }
.kb-cacher__hint { align-self: center; font-size: 13px; color: var(--color-muted); }
.kb-cacher__aliment {
  min-height: 40px; padding: 0 14px; border: 1px solid var(--color-border); border-radius: 999px;
  background: var(--color-surface); color: var(--color-text); font: 500 13px/18px var(--font-body);
  cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none;
}
.kb-cacher__aliment.is-dragging { opacity: .25; }
.kb-cacher__ghost {
  position: fixed; z-index: 9999; pointer-events: none; touch-action: none;
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px;
  border: 2px solid var(--color-primary); border-radius: 999px; background: var(--color-surface); color: var(--color-text);
  font: 600 13px/18px var(--font-body); box-shadow: var(--shadow-float); transform: scale(1.06) rotate(-2deg); will-change: left, top;
}
.kb-cacher__prive { background: var(--color-surface-2); color: var(--color-muted); font-weight: 500; font-size: 13px; line-height: 18px; }


/* Caféine et eau (shared/CaffeineWaterInput.js) */
.kb-boire { display: flex; flex-direction: column; gap: 16px; }
.kb-boire__eau { display: flex; flex-direction: column; gap: 14px; }
.kb-boire__anneau { position: relative; width: 200px; height: 200px; margin: 4px auto 0; }
.kb-boire__anneau svg { width: 100%; height: 100%; }
.kb-boire__anneau circle { fill: none; stroke-width: 16; }
.kb-boire__anneau-fond { stroke: var(--color-surface-2); }
.kb-boire__anneau-val { stroke: var(--color-primary); stroke-linecap: butt; transition: stroke-dasharray .3s; }
.kb-boire__anneau-texte { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.kb-boire__total { font: 600 40px/44px var(--font-display); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.kb-boire__verres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.kb-boire__verre {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px; padding: 8px 4px;
  border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface); color: var(--color-text); cursor: pointer;
}
.kb-boire__plus { font: 600 17px/22px var(--font-display); color: var(--color-primary); font-variant-numeric: tabular-nums; }
.kb-boire__verre-nom { font-size: 11px; line-height: 14px; color: var(--color-muted); text-align: center; }
.kb-boire__cafeine { display: flex; flex-direction: column; gap: 12px; }
.kb-boire__cafeine-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kb-boire__niveau { font: 600 15px/20px var(--font-body); font-variant-numeric: tabular-nums; text-align: right; }
.kb-boire__niveau--ok { color: var(--color-apple); }
.kb-boire__niveau--warning { color: var(--dlc-bientot-fg); }
.kb-boire__niveau--exceeded { color: var(--color-danger); }
.kb-boire__barre { height: 6px; border-radius: 999px; background: var(--color-surface-2); overflow: hidden; }
.kb-boire__barre-val { display: block; height: 100%; border-radius: 999px; background: var(--color-apple); transition: width .3s; }
.kb-boire__barre-val--warning { background: var(--dlc-bientot-fg); }
.kb-boire__barre-val--exceeded { background: var(--color-danger); }
.kb-boire__chip { min-height: 40px; font-size: 13px; }
.kb-boire__prises { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--color-border); }
.kb-boire__prises li { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; font-size: 13px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kb-boire__suppr { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -12px; border: 0; border-radius: 999px; background: transparent; color: var(--color-danger); cursor: pointer; }

/* Vérifier un produit (frigo/ProductVerifier.js) */
.kb-verif__form { display: flex; flex-direction: column; gap: 10px; }
.kb-verif__recherche { display: flex; gap: 8px; }
.kb-verif__recherche > input { flex: 1; min-width: 0; }
.kb-verif__scan { display: grid; place-items: center; flex: none; width: 48px; min-height: 48px; border: 1px solid var(--color-border); border-radius: var(--radius-field); background: var(--color-surface); color: var(--color-text); cursor: pointer; }
.kb-verif__vide { color: var(--color-subtle); }
.kb-verif__info { padding: 16px; border-radius: var(--radius-tile); background: var(--color-surface-2); text-align: center; display: flex; flex-direction: column; gap: 4px; }
.kb-verif__resultat { display: flex; flex-direction: column; gap: 8px; }
.kb-verif__produit { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; margin-top: -4px; overflow-wrap: anywhere; }
.kb-verif__pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.kb-verif__pill--ok { background: var(--parve-bg); color: var(--parve-fg); }
.kb-verif__pill--warn { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }
.kb-verif__pill--danger { background: var(--viande-bg); color: var(--viande-fg); }
.kb-verif__personnes { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--color-border); }
.kb-verif__personne { display: flex; align-items: flex-start; gap: 12px; min-height: 52px; padding: 12px 0; border-bottom: 1px solid var(--color-border); }
.kb-verif__icone { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 999px; }
.kb-verif__icone--ok { background: var(--parve-bg); color: var(--parve-fg); }
.kb-verif__icone--warn { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }
.kb-verif__icone--danger { background: var(--viande-bg); color: var(--viande-fg); }
.kb-verif__corps { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; padding-top: 3px; }
.kb-verif__nom { font-size: 15px; line-height: 20px; }
.kb-verif__raison { font-size: 13px; line-height: 18px; color: var(--color-muted); }
.kb-verif__statut { flex: none; padding-top: 4px; font: 600 13px/18px var(--font-body); text-align: right; }
.kb-verif__statut--ok { color: var(--color-muted); }
.kb-verif__statut--warn { color: var(--dlc-bientot-fg); }
.kb-verif__statut--danger { color: var(--viande-fg); }
.kb-verif__ia { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: var(--radius-tile); background: var(--color-surface-2); font-size: 13px; line-height: 18px; }
.kb-verif__mention { margin-top: 4px; }
.kb-verif .modal__actions .btn--secondary { flex: 0 1 auto; }

/* ── Traditions et santé : Chabbat, Ramadan, Grossesse, Bébé ─ */
.kb-tradition { display: flex; flex-direction: column; gap: 20px; }
.kb-tradition > * { flex-shrink: 0; }

.kb-chabbat__horaires { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kb-chabbat__horaires-vide { grid-column: 1 / -1; }
.kb-chabbat__tuile { display: flex; flex-direction: column; gap: 4px; min-height: 90px; padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); }
.kb-chabbat__tuile--allumage { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-on-primary); }
.kb-chabbat__quand { font-size: 13px; line-height: 18px; }
.kb-chabbat__heure { font: 600 32px/38px var(--font-display); letter-spacing: -.025em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.kb-chabbat__parasha { margin-top: -8px; }
.kb-chabbat__prepa { display: flex; flex-direction: column; gap: 4px; }
.kb-chabbat__compte { font: 600 15px var(--font-body); color: var(--color-primary); font-variant-numeric: tabular-nums; }
.checklist-item { display: flex; align-items: center; gap: 14px; min-height: 58px; padding: 0 2px; border-top: 1px solid var(--color-border); cursor: pointer; }
.checklist-item[aria-disabled="true"] { cursor: progress; }
.checklist-item__check { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border: 1.5px solid var(--color-subtle); border-radius: 999px; background: var(--color-surface); color: var(--color-on-primary); }
.checklist-item--done .checklist-item__check { border-color: var(--color-primary); background: var(--color-primary); }
.checklist-item__titre { flex: 1; font-size: 15px; line-height: 20px; }
.checklist-item--done .checklist-item__titre { text-decoration: line-through; color: var(--color-subtle); }

.kb-ramadan__horaires { display: flex; flex-direction: column; gap: 10px; }
.kb-ramadan__heures { display: flex; justify-content: space-between; gap: 12px; }
.kb-ramadan__heures > div { display: flex; flex-direction: column; }
.kb-ramadan__iftar { align-items: flex-end; color: var(--color-primary); }
.kb-ramadan__iftar .kb-meta { color: var(--color-muted); }
.kb-ramadan__heure { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kb-ramadan__jour { position: relative; height: 6px; margin: 8px 0; border-radius: 999px; background: var(--color-surface-2); }
.kb-ramadan__jour > span { display: block; height: 100%; border-radius: 999px; background: var(--color-primary); }
.kb-ramadan__jour > i { position: absolute; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 2px solid var(--color-primary); border-radius: 999px; background: var(--color-surface); }
.kb-ramadan__decompte { font-size: 15px; font-weight: 500; }
.kb-ramadan__plan { display: flex; flex-direction: column; gap: 4px; }
.kb-ramadan__plan-liste { list-style: none; margin: 0; padding: 0; }
.kb-ramadan__plan-ligne { display: flex; align-items: center; gap: 16px; min-height: 60px; padding: 8px 0; border-top: 1px solid var(--color-border); }
.kb-ramadan__moment { flex: 0 0 64px; font: 600 11px/14px var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--color-muted); }
.kb-ramadan__repas { flex: 1; font-size: 15px; line-height: 20px; }
.kb-ramadan__repas--vide { color: var(--color-muted); font-size: 13px; }
.kb-ramadan__lien { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--color-primary); font: 600 13px var(--font-body); }
.kb-ramadan__idees { display: flex; flex-direction: column; gap: 10px; }
.kb-ramadan__carrousel { display: flex; gap: 8px; overflow-x: auto; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scrollbar-width: none; scroll-snap-type: x mandatory; }
.kb-ramadan__carrousel::-webkit-scrollbar { display: none; }
.kb-ramadan__idee { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 8px; flex: 0 0 150px; min-height: 96px; padding: 12px; border-radius: var(--radius-tile); background: var(--color-surface-2); scroll-snap-align: start; }
.kb-ramadan__idee-titre { font: 600 15px/20px var(--font-display); }
.ramadan-water { display: flex; flex-direction: column; gap: 10px; }
.ramadan-water__tete { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ramadan-water__progress { height: 6px; border-radius: 999px; background: var(--color-surface-2); overflow: hidden; }
.ramadan-water__progress > span { display: block; height: 100%; background: var(--color-primary); }
.ramadan-water__dots { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; }
.ramadan-water__dot { aspect-ratio: 1; min-height: 32px; border: 1.5px dashed var(--color-border); border-radius: 10px; background: transparent; cursor: pointer; }
.ramadan-water__dot--filled { border: 0; background: var(--color-primary-soft); box-shadow: inset 0 -12px 0 var(--color-primary); }
.ramadan-water__dot:disabled { opacity: 1; cursor: default; }
.ramadan-water__meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; }

.kb-grossesse__jour-carte { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.kb-grossesse__jour-carte > div { display: flex; flex-direction: column; gap: 4px; }
.kb-grossesse__chiffre { font: 600 20px/26px var(--font-display); letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.kb-grossesse__eau { background: var(--color-primary); }
.kb-grossesse__groupe { display: flex; flex-direction: column; gap: 10px; }
.kb-grossesse__pills { display: flex; flex-wrap: wrap; gap: 8px; }
.kb-grossesse__pill { min-height: 32px; padding: 0 12px; font-size: 13px; }
.kb-grossesse__raisons > summary { min-height: 44px; display: inline-flex; align-items: center; color: var(--color-primary); font: 600 13px var(--font-body); cursor: pointer; }
.kb-grossesse__raisons ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; line-height: 18px; color: var(--color-muted); }
.kb-grossesse__raisons strong { color: var(--color-text); font-weight: 600; }
.kb-grossesse__historique { display: flex; flex-direction: column; gap: 6px; }
.kb-grossesse__jours { list-style: none; margin: 0; padding: 0; }
.kb-grossesse__jour { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; padding: 10px 0; border-top: 1px solid var(--color-border); font-size: 13px; }
.kb-grossesse__date { font-weight: 600; }
.kb-grossesse__valeurs { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.kb-grossesse__boissons { grid-column: 1 / -1; }

.kb-bebe__texture { display: flex; flex-direction: column; gap: 4px; }
.kb-bebe__texture-nom { font: 600 20px/26px var(--font-display); letter-spacing: -.015em; color: var(--color-primary); }
.kb-bebe__aliments, .kb-bebe__journal { display: flex; flex-direction: column; gap: 10px; }
.kb-bebe__grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.kb-bebe__tuile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 66px; padding: 8px 4px; border: 1px solid transparent; border-radius: var(--radius-tile); text-align: center; color: var(--color-text); }
.kb-bebe__tuile--ok { background: var(--parve-bg); }
.kb-bebe__tuile--ok .kb-bebe__tuile-etat { color: var(--parve-fg); }
.kb-bebe__tuile--attente { border: 1px dashed var(--color-border); background: var(--color-surface-2); cursor: pointer; }
.kb-bebe__tuile--attente[aria-pressed="true"] { border: 1px solid var(--color-primary); background: var(--color-primary-soft); }
.kb-bebe__tuile-nom { font: 600 12px/16px var(--font-body); overflow-wrap: break-word; hyphens: auto; }
.kb-bebe__tuile-etat { font: 600 11px/14px var(--font-body); color: var(--color-muted); }
.kb-bebe__entrees { list-style: none; margin: 0; padding: 0; }
.bebe-journal-entry { display: flex; align-items: center; gap: 10px; min-height: 56px; border-top: 1px solid var(--color-border); }
.bebe-journal-entry__allergen { flex: 1; min-width: 0; font-size: 15px; }
.bebe-journal-entry__reaction { font-size: 13px; color: var(--color-muted); }
.bebe-journal-entry__date { padding: 2px 8px; border-radius: 999px; background: var(--dlc-ok-bg); color: var(--dlc-ok-fg); font: 600 11px/18px var(--font-body); white-space: nowrap; }
.bebe-journal-entry__del { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--color-subtle); cursor: pointer; }
.bebe-intro-form { display: flex; flex-direction: column; gap: 12px; }
@media (max-width: 370px) { .kb-bebe__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ── Nutrition et journal (NutritionHub, Macros, Stats, Poids, Nutri-Score) ── */
.kb-nutrition { display: flex; flex-direction: column; gap: 16px; }
.kb-nutrition > * { flex-shrink: 0; }
.kb-nutrition__onglets > [role="tab"] { min-height: 44px; font-size: 13px; }
.macros-dashboard, .macro-card { display: flex; flex-direction: column; gap: 12px; }
.macro-card__resume { display: flex; align-items: center; gap: 18px; padding: 18px; }
.macro-ring { position: relative; flex: none; width: 124px; height: 124px; }
.macro-ring svg { width: 100%; height: 100%; }
.macro-ring circle { fill: none; stroke-width: 16; }
.macro-ring__fond { stroke: var(--color-surface-2); }
.macro-ring__val { stroke: var(--color-primary); }
.macro-ring__texte { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.macro-ring__texte strong { font: 600 24px/28px var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.macro-ring__texte small { font-size: 11px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.macro-bars { display: flex; flex-direction: column; gap: 12px; flex: 1; min-width: 0; }
.macro-bar__label { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 4px; font-size: 13px; font-weight: 600; }
.macro-bar__label span:last-child { font-weight: 500; color: var(--color-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.macro-bar__track { height: 6px; border-radius: 999px; background: var(--color-surface-2); overflow: hidden; }
.macro-bar__fill { height: 100%; border-radius: 999px; background: var(--color-primary); }
.macro-bar--gluc_g .macro-bar__fill { background: var(--color-raspberry); }
.macro-bar--lip_g .macro-bar__fill { background: var(--dlc-bientot-fg); }
.macro-card__journal { margin-top: 4px; }
.consumption-list { list-style: none; margin: 0; padding: 0; }
.consumption-item { display: flex; align-items: center; gap: 10px; min-height: 52px; border-top: 1px solid var(--color-border); }
.consumption-item__nom { flex: 1; min-width: 0; font-size: 15px; overflow-wrap: anywhere; }
.consumption-item__macros { font-size: 13px; color: var(--color-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.consumption-item__suppr, .weight-history__suppr { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--color-subtle); cursor: pointer; }
.log-meal-form { display: flex; flex-wrap: wrap; gap: 8px; }
.log-meal-form input[type="text"] { flex: 1 1 100%; min-width: 0; }
.log-meal-form input[type="number"] { flex: 0 0 88px; }
.log-meal-form .btn { flex: 1; }
.congrat-banner { justify-content: space-between; }
.premium-gate { flex-direction: column; align-items: flex-start; }

.stats-impact { display: flex; flex-direction: column; gap: 16px; }
.stats-impact__heading { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.stats-impact__co2 { display: flex; flex-direction: column; gap: 2px; }
.stats-impact__chiffre { font: 600 48px/52px var(--font-display); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.stats-impact__waste { display: flex; flex-direction: column; gap: 10px; }
.stats-impact__bars { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; align-items: end; }
.stats-impact__day { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.stats-impact__bar-track { display: flex; align-items: flex-end; width: 100%; height: 124px; }
.stats-impact__bar { display: block; width: 100%; border-radius: 8px 8px 4px 4px; background: var(--color-primary-soft); }
.stats-impact__bar--max { background: var(--color-primary); }
.stats-impact__day-label { font-size: 11px; color: var(--color-muted); }
.stats-impact__tuiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.stats-impact__tuile { display: flex; flex-direction: column; gap: 4px; min-height: 104px; padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); }
.stats-impact__tuile--jete { border-color: transparent; background: var(--color-surface-2); }
.stats-impact__tuile strong { margin-top: auto; font: 600 24px/30px var(--font-display); font-variant-numeric: tabular-nums; }
.stats-impact__tuile span { font-size: 13px; color: var(--color-muted); }
.stats-impact__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.stats-impact__nutri-ring--A { background: #038141; } .stats-impact__nutri-ring--B { background: #85bb2f; }
.stats-impact__nutri-ring--C { background: #fecb02; } .stats-impact__nutri-ring--D { background: #ee8100; } .stats-impact__nutri-ring--E { background: #e63e11; }

.weight-tracker { display: flex; flex-direction: column; gap: 14px; }
.weight-tracker__prive { background: var(--color-surface-2); color: var(--color-muted); font-weight: 500; font-size: 13px; line-height: 18px; }
.weight-tracker__dernier strong { font: 600 48px/52px var(--font-display); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.weight-chart { padding: 8px 0; border-bottom: 1px solid var(--color-border); }
.weight-chart svg { display: block; width: 100%; height: auto; }
.weight-chart__ligne { fill: none; stroke: var(--color-primary-soft); stroke-width: 2; stroke-linejoin: round; }
.weight-chart__point { fill: var(--color-primary); }
.weight-form { display: flex; flex-direction: column; gap: 12px; }
.weight-history { list-style: none; margin: 0; padding: 0; }
.weight-history__ligne { display: flex; align-items: center; gap: 12px; min-height: 52px; border-top: 1px solid var(--color-border); }
.weight-history__date { flex: 0 0 64px; font-size: 13px; color: var(--color-muted); }
.weight-history__kg { font-weight: 600; font-variant-numeric: tabular-nums; }
.weight-history__note { flex: 1; min-width: 0; }

/* Nutri-Score : couleurs officielles de l'échelle (identité externe, pas des jetons de marque). */
.ns-badge--A { --ns-bg: #038141; --ns-fg: #FFFFFF; }
.ns-badge--B { --ns-bg: #85BB2F; --ns-fg: #FFFFFF; }
.ns-badge--C { --ns-bg: #FECB02; --ns-fg: #3A2F00; }
.ns-badge--D { --ns-bg: #EE8100; --ns-fg: #FFFFFF; }
.ns-badge--E { --ns-bg: #E63E11; --ns-fg: #FFFFFF; }
.ns-badge--vide { --ns-bg: var(--color-surface-2); --ns-fg: var(--color-subtle); }
.ns-badge {
  display: inline-grid; place-items: center; flex: none; width: var(--ns-size, 44px); height: var(--ns-size, 44px);
  border-radius: calc(var(--ns-size, 44px) / 4); background: var(--ns-bg); color: var(--ns-fg);
  font: 700 calc(var(--ns-size, 44px) * .5)/1 var(--font-display);
}
.kb-nutriscore { display: flex; flex-direction: column; gap: 16px; }
.kb-nutriscore > * { flex-shrink: 0; }
.ns-echelle { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.ns-echelle__lettre { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 56px; border-radius: 12px; background: var(--ns-bg); color: var(--ns-fg); font: 600 20px/24px var(--font-display); }
.ns-echelle__lettre.is-current { outline: 2px solid var(--color-text); outline-offset: 2px; }
.ns-echelle__lettre small { font: 600 11px/14px var(--font-body); opacity: .9; }
.ns-leviers { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ns-levier { padding: 14px; border-radius: var(--radius-card); }
.ns-levier--up { background: var(--parve-bg); color: var(--parve-fg); }
.ns-levier--down { background: var(--viande-bg); color: var(--viande-fg); }
.ns-levier__titre { font: 600 13px/18px var(--font-body); margin-bottom: 6px; }
.ns-levier ul { margin: 0; padding: 0; list-style: none; font-size: 13px; line-height: 18px; color: var(--color-text); }
.ns-reperes { display: flex; flex-direction: column; gap: 6px; font-size: 13px; line-height: 18px; color: var(--color-muted); }
.ns-liste { display: flex; flex-direction: column; gap: 4px; }
.v4-nutri-guide__row { display: flex; align-items: center; gap: 12px; min-height: 52px; border-top: 1px solid var(--color-border); font-size: 15px; }
.stats-impact__heading h2 { margin: 0; }
.stats-impact__hero-empty { padding: 4px 0; }

/* ── Foyer & membres (FoyerMembres) et fiche membre (MembreEditor) ── */
.kb-membres { display: flex; flex-direction: column; gap: 20px; }
.kb-membres > * { flex-shrink: 0; }
.kb-membres__section { display: flex; flex-direction: column; gap: 8px; }
.kb-membres__section > .kb-label { padding-left: 4px; font-weight: 600; }
.kb-membres__liste { list-style: none; margin: 0; padding: 0; }
.kb-membres__invitation { gap: 8px; }
.kb-membres__aide { text-align: center; }
.kb-membres__envoyees > summary { min-height: 44px; display: flex; align-items: center; font-size: 13px; color: var(--color-muted); cursor: pointer; }
.kb-membre { display: flex; flex-direction: column; gap: 8px; padding: 12px 8px 12px 16px; }
.kb-membre + .kb-membre { border-top: 1px solid var(--color-border); }
.kb-membre__ligne { display: flex; align-items: center; gap: 12px; }
.kb-membre__avatar {
  display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 999px;
  background: var(--color-surface-2); color: var(--color-text); font: 600 15px/1 var(--font-body);
  box-shadow: inset 0 0 0 2px var(--avatar, transparent);
}
.kb-membre__corps { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.kb-membre__nom { font-size: 15px; line-height: 20px; font-weight: 600; overflow-wrap: anywhere; }
.kb-membre__pills { display: flex; flex-wrap: wrap; gap: 4px; }
.kb-membre__pills:empty { display: none; }
.kb-membre__pills > .pill { min-height: 20px; padding: 0 8px; }
.kb-membre__acces { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--color-apple); overflow-wrap: anywhere; }
.kb-membre__actions { display: flex; flex: none; }
.kb-membre__btn { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--color-muted); cursor: pointer; }
.kb-membre__btn--danger { color: var(--color-danger); }
.kb-membre__inviter { align-self: flex-start; margin-left: 52px; }

.membre-editor .modal__body { gap: 20px; }
.membre-editor__identite { display: flex; align-items: flex-end; gap: 14px; }
.membre-editor__identite > .form-field { flex: 1; }
.membre-editor__avatar {
  display: grid; place-items: center; flex: none; width: 64px; height: 64px; border-radius: 999px;
  background: color-mix(in srgb, var(--avatar, var(--color-primary)) 18%, var(--color-surface));
  color: var(--color-text); font: 600 24px/1 var(--font-display); box-shadow: inset 0 0 0 2px var(--avatar, var(--color-primary));
}
.membre-editor__section { display: flex; flex-direction: column; gap: 8px; }
.membre-editor__couleurs { display: flex; flex-wrap: wrap; gap: 8px; }
.membre-editor__couleur { width: 36px; height: 36px; padding: 0; border: 3px solid var(--color-surface); border-radius: 999px; background: var(--avatar); box-shadow: 0 0 0 1px var(--color-border); cursor: pointer; }
.membre-editor__couleur[aria-checked="true"] { box-shadow: 0 0 0 2px var(--color-text); }
.membre-editor__types { flex-wrap: wrap; border-radius: 22px; }
.membre-editor__types > button { flex: 1 1 0; padding: 0 6px; white-space: normal; line-height: 15px; text-align: center; }
.membre-editor__chips .kb-chip { min-height: 40px; font-size: 13px; }
.membre-editor__chips .kb-chip[aria-checked="true"] { background: var(--color-primary-soft); border-color: var(--color-primary); color: var(--color-primary); font-weight: 600; }
.membre-editor__chip-aide { flex-direction: column; align-items: flex-start; white-space: normal; height: auto; padding-block: 8px; text-align: left; }
.membre-editor__chip-aide small { font-weight: 400; font-size: 11px; line-height: 14px; }
.membre-editor__sous-titre { margin-top: 8px; }
.membre-editor__case { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 18px; cursor: pointer; }
.membre-editor__case > input { margin-top: 1px; }
.membre-editor__accord-religieux { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: var(--radius-tile); background: var(--color-surface-2); font-size: 13px; line-height: 18px; color: var(--color-muted); }
.membre-editor__accord-religieux .membre-editor__case { color: var(--color-text); }
.membre-editor__accord-religieux > a { margin-left: 32px; font-size: 13px; }
.membre-editor__accord { display: flex; flex-direction: column; gap: 6px; }
.membre-editor__alerte { font-size: 13px; line-height: 18px; color: var(--color-danger); }
.membre-editor__ajout { display: flex; gap: 8px; }
.membre-editor__ajout > input { flex: 1; min-width: 0; }
.is-inactif { opacity: .5; }

/* ── Appareils et ustensiles (EquipmentV4 + EquipmentShared, aussi à l'onboarding) ── */
.equipment-screen { display: flex; flex-direction: column; gap: 16px; }
.equipment-screen > * { flex-shrink: 0; }
.equipment-toolbar, .equipment-item-actions, .equipment-form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.equipment-toolbar > p, .equipment-help, .equipment-presets > p, .utensil-catalog > p { font-size: 13px; line-height: 18px; color: var(--color-muted); }
.equipment-list { display: grid; gap: 10px; }
.equipment-item { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; }
.equipment-item-title { display: flex; align-items: center; gap: 12px; }
.equipment-item-title > div { min-width: 0; }
.equipment-item h2, .equipment-presets h2, .equipment-form h2, .utensil-catalog h2 { font: 600 17px/24px var(--font-display); letter-spacing: -.01em; overflow-wrap: anywhere; }
.equipment-item-title p { font-size: 13px; color: var(--color-muted); }
.equipment-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.equipment-tags:empty { display: none; }
.equipment-tags > .pill:not([class*="pill--"]) { background: var(--color-surface-2); color: var(--color-muted); }
.equipment-delete { color: var(--color-danger); }
.equipment-presets, .utensil-catalog { display: flex; flex-direction: column; gap: 10px; }
.equipment-presets > div { display: flex; flex-wrap: wrap; gap: 8px; }
.equipment-liste-titre { padding-left: 4px; font-weight: 600; }
.equipment-form { display: flex; flex-direction: column; gap: 14px; }
.equipment-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 12px; }
.equipment-form .form-label { display: flex; flex-direction: column; gap: 6px; }
.equipment-form legend { margin-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--color-muted); }
.equipment-functions > p { font-size: 13px; color: var(--color-muted); }
.equipment-functions > div { display: flex; flex-wrap: wrap; gap: 8px; }
.equipment-functions button { min-height: 40px; padding: 0 14px; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text); font: 500 13px var(--font-body); cursor: pointer; }
.equipment-functions button[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary); font-weight: 600; }
.equipment-form summary { min-height: 44px; display: flex; align-items: center; color: var(--color-primary); font: 600 15px var(--font-body); cursor: pointer; }
.equipment-form details .btn { margin-top: 10px; }
.equipment-form-actions .btn { flex: 1; }
.equipment-checkbox { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; }
.equipment-item .equipment-form { margin: 0; padding: 14px 0 0; border: 0; border-top: 1px solid var(--color-border); border-radius: 0; }
.utensil-catalog fieldset { min-width: 0; margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; }
.utensil-counter { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 56px; border-top: 1px solid var(--color-border); font-size: 15px; }
.utensil-counter small { color: var(--color-muted); font-size: 13px; }
.utensil-counter > div { display: flex; align-items: center; flex: none; padding: 2px; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); }
.utensil-counter button { width: 40px; height: 40px; border: 0; border-radius: 999px; background: transparent; color: var(--color-primary); font: 600 20px/1 var(--font-body); cursor: pointer; }
.utensil-counter button:disabled { color: var(--color-subtle); }
.utensil-counter output { min-width: 28px; text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }
.utensil-catalog fieldset > .btn { width: 100%; margin-top: 12px; }
@media (min-width: 760px) { .equipment-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── Magasins et offres (MagasinsOffres) : tuiles ─────────── */
.screen__body.kb-offres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start; }
.kb-offres > .v4-nav-row {
  flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 2px; min-height: 128px; padding: 14px;
  border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface);
}
.kb-offres > .v4-nav-row:first-child { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-on-primary); }
.kb-offres__icone { margin-bottom: auto; }
.kb-offres__titre { font: 600 17px/22px var(--font-display); letter-spacing: -.01em; }
.kb-offres__sous { font-size: 13px; line-height: 18px; opacity: .85; }

/* ── Donner mon avis (FeedbackV4) ─────────────────────────── */
.v4-feedback { display: flex; flex-direction: column; gap: 24px; }
.v4-feedback > * { flex-shrink: 0; }
.v4-feedback__form { display: flex; flex-direction: column; gap: 12px; }
.v4-feedback__question { margin-top: 4px; }
.v4-feedback__intro, .v4-feedback__hint { font-size: 13px; line-height: 18px; color: var(--color-muted); }
.v4-feedback__success { padding: 12px 14px; border-radius: var(--radius-tile); background: var(--parve-bg); color: var(--parve-fg); font-weight: 600; }
.v4-feedback__form .kb-bottom-bar { margin-bottom: 0; }
.v4-feedback__history { display: flex; flex-direction: column; gap: 8px; }
.v4-feedback__history .kb-list { list-style: none; margin: 0; padding: 0; }
.v4-feedback__history li { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; }
.v4-feedback__history li + li { border-top: 1px solid var(--color-border); }
.v4-feedback__history li p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; }
.v4-feedback__history small { color: var(--color-subtle); font-size: 13px; }
.v4-feedback__report-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.v4-feedback__reply { padding: 10px 12px; border-radius: var(--radius-tile); background: var(--color-surface-2); }

/* ── Mes partages (MesPartages) ───────────────────────────── */
.kb-partages { display: flex; flex-direction: column; gap: 20px; }
.kb-partages > * { flex-shrink: 0; }
.kb-partages__groupe { display: flex; flex-direction: column; gap: 4px; }
.kb-partages__groupe > .kb-label { padding-left: 2px; font-weight: 600; }
.kb-partages__liste { list-style: none; margin: 0; padding: 0; }
.kb-partage { display: flex; align-items: center; gap: 12px; min-height: 64px; border-top: 1px solid var(--color-border); }
.kb-partage:last-child { border-bottom: 1px solid var(--color-border); }

/* ── Halal (HalalConfig) ─────────────────────────────────── */
.kb-halal__ligne { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; }
.kb-halal__ligne + .kb-halal__ligne { border-top: 1px solid var(--color-border); }
.kb-halal__ligne .kb-chip { min-height: 40px; font-size: 13px; }
