/* kb-cuisine.css — famille 3 : Ma cuisine, inventaire, courses, magasins, cartes.
   Refonte « Ketchup moutarde ». Chargée après kb-base.css ; jetons uniquement,
   aucune couleur écrite en dur. Préfixe local : .kc- (kitchubb cuisine/courses). */

/* ── Règles d'autres familles historiquement rangées ici (inchangées) ── */
.cooking-wizard__prev { background: var(--color-raspberry-soft); }
.stats-impact__hero, .cooking-photo { background: var(--color-raspberry-soft); }

/* ── Communs de la famille ─────────────────────────────────── */
.kc-pills { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.kc-header-link.btn { color: var(--color-primary); font-weight: 600; padding-inline: 8px; }
.kc-bar {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px var(--gutter) calc(12px + var(--safe-bottom));
  background: var(--color-bg);
}
.kc-bar__row { display: flex; gap: 8px; }
.kc-bar__row > .btn { flex: 1 1 0; min-width: 0; min-height: 44px; padding-inline: 8px; gap: 6px; font-size: 13px; line-height: 16px; font-weight: 600; }
.kc-bar > .btn--lg { min-height: 52px; }
.kc-bar--line { border-top: 1px solid var(--color-border); }
.kc-bar--split { flex-direction: row; align-items: center; gap: 16px; }
.kc-bar--split > .btn { flex: 1; }
.kc-sheet .modal__body { gap: 12px; }
.kc-sheet .modal__actions .btn--danger, .kc-sheet .modal__actions .btn--primary { min-height: 52px; }
.kc-field-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; font-size: 15px; }
.kc-field-row__input { display: inline-flex; align-items: center; gap: 8px; }
.kc-field-row__input input { width: 110px; text-align: center; font-variant-numeric: tabular-nums; }
.kc-section-label { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--color-muted); }
.kc-total { display: flex; flex-direction: column; }
.kc-total__label { font-size: 13px; color: var(--color-muted); }
.kc-total__value { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kc-done-circle { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 999px; background: var(--color-primary); color: var(--color-on-primary); }

/* ── Ma cuisine (accueil des rangements) ───────────────────── */
.frigo-alt { background: var(--color-bg); }
.kc-home { display: flex; flex-direction: column; gap: 20px; padding-bottom: 20px; }
.kc-alert {
  display: flex; align-items: center; gap: 12px; width: 100%;
  min-height: 56px; padding: 8px 12px 8px 16px;
  border: 0; border-radius: var(--radius-tile);
  background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg);
  text-align: left; font: inherit; cursor: pointer;
}
.kc-alert svg { flex: none; }
.kc-alert__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-alert__text strong { font-size: 15px; line-height: 20px; font-weight: 600; font-variant-numeric: tabular-nums; }
.kc-alert__text span { font-size: 13px; line-height: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-zones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kc-zones--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kc-zone {
  display: flex; flex-direction: column; justify-content: space-between; gap: 6px;
  min-width: 0; min-height: 92px; padding: 12px;
  border: 1px solid var(--color-border); border-radius: var(--radius-tile);
  background: var(--color-surface); color: var(--color-text);
  text-align: left; font: inherit; cursor: pointer;
}
.kc-zone[aria-pressed="true"] { background: var(--color-primary-soft); border: 2px solid var(--color-primary); padding: 11px; }
.kc-zone__top { display: flex; align-items: center; justify-content: space-between; color: var(--color-primary); }
.kc-zone__alert { font-size: 11px; line-height: 14px; font-weight: 600; color: var(--dlc-bientot-fg); font-variant-numeric: tabular-nums; }
.kc-zone__name { font-size: 15px; line-height: 20px; font-weight: 600; letter-spacing: -.015em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 380px) { .kc-zone__name { font-size: 14px; } .kc-zone { padding: 10px; } .kc-zone[aria-pressed="true"] { padding: 9px; } }
.kc-zone__meta { font-size: 11px; line-height: 14px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kc-drawers { padding-block: 2px; }
.kc-drawers .kb-chip { min-height: 40px; font-size: 13px; font-variant-numeric: tabular-nums; }
.kc-links { display: flex; flex-direction: column; }
.kc-link {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 52px; padding: 0; border: 0; border-bottom: 1px solid var(--color-border);
  background: none; color: var(--color-text); font: 500 15px/20px var(--font-body); text-align: left; cursor: pointer;
}
.kc-link svg { color: var(--color-subtle); flex: none; }
.kc-empty { margin-top: 40px; }
.kc-empty .empty-screen__icon { width: 88px; height: 88px; background: var(--color-primary-soft); }
.kc-bar--stack > .btn { min-height: 52px; }
.kc-peri .kb-row { min-height: 56px; }

/* Restes */
.kc-restes .kb-section__head .kb-meta { font-variant-numeric: tabular-nums; }
.kc-reste { display: flex; flex-direction: column; gap: 12px; padding: 14px 16px; }
.kc-reste__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.kc-reste__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kc-reste__name { font-size: 17px; line-height: 22px; font-weight: 600; }
.kc-reste__parts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 3px; max-width: 76px; padding-top: 3px; }
.kc-reste__parts i { width: 14px; height: 14px; border-radius: 4px; background: var(--color-primary); }
.kc-reste__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.kc-reste__actions .btn--sm { min-height: 40px; }
.kc-reste__jeter.btn { color: var(--color-danger); }

/* Feuilles : tiroir, fiche produit, jeter, quantité */
.kc-drawer__sub { margin-top: -8px; }
.kc-drawer__empty { padding: 16px 0; color: var(--color-muted); font-size: 15px; }
.kc-product__head { display: flex; flex-direction: column; gap: 6px; padding-bottom: 14px; border-bottom: 1px solid var(--color-border); }
.kc-product__qty { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--color-border); font-size: 15px; }
.kc-product__qty .btn { min-height: 44px; font-variant-numeric: tabular-nums; }
.kc-product__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kc-action-tile {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  min-height: 72px; padding: 8px; border: 0; border-radius: var(--radius-tile);
  background: var(--color-surface-2); color: var(--color-text); font: 600 13px/16px var(--font-body); cursor: pointer;
}
.kc-action-tile--danger { color: var(--color-danger); }
.kc-trash__reasons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kc-trash__reason {
  min-height: 56px; border: 1px solid var(--color-border); border-radius: var(--radius-tile);
  background: var(--color-surface); color: var(--color-text); font: 600 15px var(--font-body); cursor: pointer;
}
.kc-trash__reason[aria-pressed="true"] { border: 2px solid var(--color-danger); background: var(--color-danger-soft); color: var(--color-danger); }
.kc-qty__now { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.kc-qty__value { font: 600 40px/46px var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kc-qty__value small { font-size: 17px; font-weight: 500; color: var(--color-muted); }
.kc-qty__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.kc-qty__grid .btn { padding: 0; font-variant-numeric: tabular-nums; }
.kc-qty__quick { display: flex; gap: 8px; }
.kc-qty__quick .btn { flex: 1; }

/* ── Inventaire ─────────────────────────────────────────────── */
.frigo-screen { background: var(--color-bg); }
.frigo-screen__body { display: flex; flex-direction: column; gap: 12px; padding-bottom: calc(110px + var(--safe-bottom)); }
.kc-search { display: block; }
.kc-search > input { width: 100%; min-height: 48px; border-radius: var(--radius-field, 10px); background-color: var(--color-surface); border-color: var(--color-border); }
.kc-filters .kb-chip { min-height: 36px; padding: 0 12px; font-size: 13px; }
.kc-group { display: flex; flex-direction: column; }
.kc-group__title { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--color-muted); }
.kc-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--color-subtle); flex: none; }
.kc-dot--urgent { background: var(--dlc-urgent-fg); }
.kc-dot--bientot { background: var(--dlc-bientot-fg); }
.kc-dot--ok { background: var(--dlc-ok-fg); }
.kc-no-results { padding: 32px 0; text-align: center; color: var(--color-muted); font-size: 15px; }
.kc-list { display: flex; flex-direction: column; }
.kc-list > .kc-item { border-top: 1px solid var(--color-border); }
.kc-list--page .kb-swipe-row__content { background: var(--color-bg); }
.kc-item__main {
  display: flex; align-items: center; gap: 12px; width: 100%;
  min-height: 60px; padding: 8px 0; border: 0; background: transparent;
  color: var(--color-text); font: inherit; text-align: left; cursor: pointer;
}
.kc-item__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.kc-item__name { font-size: 15px; line-height: 20px; font-weight: 500; overflow-wrap: anywhere; }
.kc-item__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; line-height: 18px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kc-fab-scrim { position: fixed; inset: 0; z-index: 39; background: var(--color-scrim); animation: kb-fade 200ms ease; }
.kc-fab-menu {
  position: fixed; z-index: 41;
  right: max(var(--gutter), calc((100vw - 720px) / 2 + var(--gutter)));
  bottom: calc(96px + var(--safe-bottom));
  display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
}
.kc-fab-menu > button {
  display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px 0 18px;
  border: 0; border-radius: 999px; background: var(--color-surface); color: var(--color-text);
  font: 600 15px var(--font-body); box-shadow: var(--shadow-float); cursor: pointer;
}
.kc-fab-menu > button svg { color: var(--color-primary); }
.kb-fab[aria-expanded="true"] { background: var(--color-surface); color: var(--color-text); }
.kc-product .modal__title { font-size: 24px; line-height: 30px; letter-spacing: -.02em; }
.kc-product__head { margin-top: -10px; }

/* ── Parcours courses : étapes ─────────────────────────────── */
.kc-step { display: flex; flex-direction: column; gap: 14px; }
.kc-step__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.kc-step__count { font-size: 13px; font-weight: 600; color: var(--color-primary); font-variant-numeric: tabular-nums; }
.kc-step__hint { text-align: center; font-size: 13px; color: var(--color-muted); }
.kc-step__empty { padding: 24px 0; color: var(--color-muted); font-size: 15px; text-align: center; }
.kc-step__done { display: flex; flex-direction: column; gap: 4px; }
.kc-step__back { align-self: center; }
.kc-seg-small { min-height: 40px; }
.kc-seg-small > button { min-height: 34px; }
.kc-step .kb-bottom-bar { margin-top: 8px; }
.kc-step .kb-bottom-bar > .btn--secondary { flex: 1; }

/* Vérifier mon stock : pile de cartes */
.kc-stack { position: relative; margin-bottom: 16px; }
.kc-stack::before, .kc-stack::after {
  content: ""; position: absolute; border-radius: var(--radius-card); z-index: 0;
  left: 6px; right: 6px; bottom: -8px; height: 40px; background: var(--color-surface); border: 1px solid var(--color-border);
}
.kc-stack::after { left: 14px; right: 14px; bottom: -16px; background: var(--color-surface-2); border: 0; z-index: -1; }
.kc-stack__card {
  position: relative; z-index: 1; display: flex; flex-direction: column; gap: 8px;
  min-height: 330px; padding: 20px; border: 1px solid var(--color-border); border-radius: var(--radius-card);
  background: var(--color-surface); box-shadow: var(--shadow-float); touch-action: pan-y; user-select: none;
}
.kc-stack__card.is-entering { animation: kb-swipe-in 200ms ease-out; }
.kc-stack__name { font: 600 32px/38px var(--font-display); letter-spacing: -.025em; overflow-wrap: anywhere; }
.kc-stack__spacer { flex: 1; min-height: 24px; }
.kc-answers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kc-answer {
  min-height: 56px; padding: 0 6px; border: 1px solid var(--color-border); border-radius: var(--radius-tile);
  background: var(--color-surface); color: var(--color-text); font: 600 15px/18px var(--font-body); cursor: pointer;
}
.kc-answer--plus { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
.kc-answer[aria-pressed="true"] { background: var(--color-primary-soft); border: 2px solid var(--color-primary); color: var(--color-primary); }
.kc-answer--plus[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); }
.kc-remaining { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 15px; }
.kc-remaining input { width: 96px; text-align: center; }
.kc-stock-list { list-style: none; display: flex; flex-direction: column; }
.kc-stock-row { display: flex; flex-direction: column; gap: 10px; padding: 14px 0; border-top: 1px solid var(--color-border); }
.kc-stock-row__text { display: flex; flex-direction: column; gap: 2px; }
.kc-stock-row__name { font-size: 15px; font-weight: 600; }
.kc-stock-row .kc-answer { min-height: 44px; font-size: 13px; }

/* Liste : départs, articles, vérification */
.kc-departs .kb-chip { font-size: 13px; min-height: 40px; }
.kc-courses--embedded { display: flex; flex-direction: column; gap: 12px; }
.kc-courses__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kc-shop-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.kc-file { position: relative; cursor: pointer; }
.kc-file input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.kc-add-form { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); }
.kc-add-form__name, .kc-add-form__cat { grid-column: 1 / -1; }
.kc-add-form__ok { grid-column: 1 / -1; }
.kc-field--alert { border-color: var(--color-primary); }
.kc-shop-list { display: flex; flex-direction: column; gap: 16px; }
.kc-shop-empty .empty-screen__icon, .kc-one__done .empty-screen__icon { width: 88px; height: 88px; background: var(--color-primary-soft); }
.kc-rayon { display: flex; flex-direction: column; }
.kc-rayon__head {
  display: flex; align-items: center; gap: 8px; width: 100%; min-height: 36px; padding: 0 0 6px;
  border: 0; border-bottom: 1px solid var(--color-border); background: none; color: var(--color-muted);
  font: 600 13px/18px var(--font-body); text-align: left; cursor: pointer;
}
.kc-rayon__head--static { cursor: default; }
.kc-rayon__name { flex: 1; }
.kc-rayon__count { font-size: 11px; font-variant-numeric: tabular-nums; }
.kc-course { border-bottom: 1px solid var(--color-border); }
.kc-course__line { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 6px 0; }
.kc-check { flex: none; width: 24px; height: 24px; }
.kc-course__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.kc-course__title { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; }
.kc-course__name { font-size: 15px; line-height: 20px; font-weight: 500; }
.kc-course__qty { font-size: 13px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kc-course__reasons { display: flex; flex-direction: column; font-size: 13px; line-height: 18px; color: var(--color-muted); }
.kc-course__price { flex: none; font-size: 15px; font-variant-numeric: tabular-nums; }
.kc-course.is-checked .kc-course__name { text-decoration: line-through; color: var(--color-subtle); }
.kc-course.is-checked .kc-course__price { color: var(--color-subtle); }
.kc-icon-btn { flex: none; display: grid; place-items: center; width: 40px; height: 44px; margin-right: -8px; border: 0; border-radius: 999px; background: none; color: var(--color-subtle); cursor: pointer; }
.kc-course__settings { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 0 12px 36px; }
.kc-course__settings select { flex: 1 1 140px; min-height: 44px; }
.kc-review { display: flex; flex-direction: column; gap: 12px; }
.kc-review__list { display: flex; flex-direction: column; }
.kc-review__row { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid var(--color-border); cursor: pointer; }
.kc-review__actions { display: flex; gap: 8px; }
.kc-review__actions .btn { flex: 1; }
.kc-skel-list { display: flex; flex-direction: column; }
.kc-skel-row { display: flex; align-items: center; gap: 12px; min-height: 64px; border-top: 1px solid var(--color-border); }
.kc-skel-row__text { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.kc-skel-list > .kb-meta { padding-top: 16px; }
.kc-warn-banner { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }
.kc-ok-banner { justify-content: flex-start; }
.kc-verif-list { list-style: none; display: flex; flex-direction: column; }
.kc-verif-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--color-border); }
.kc-verif-row__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-verif-row__name { font-size: 15px; font-weight: 600; }

/* Où acheter */
.kc-total-card { display: flex; flex-direction: column; gap: 10px; }
.kc-total-card__top { display: flex; flex-direction: column; gap: 4px; }
.kc-total-card__value { display: flex; flex-direction: column; font: 600 40px/46px var(--font-display); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.kc-total-card__label { font: 400 13px/18px var(--font-body); letter-spacing: 0; color: var(--color-muted); }
.kc-total-card__inc { font: 500 13px/18px var(--font-body); letter-spacing: 0; color: var(--color-muted); }
.kc-meter { height: 8px; border-radius: 999px; background: var(--color-surface-2); overflow: hidden; }
.kc-meter > i { display: block; height: 100%; border-radius: 999px; background: var(--color-primary); transition: width .2s; }
.kc-meter--over > i { background: var(--color-danger); }
.kc-chip-dark[aria-pressed="true"] { background: var(--color-text); border-color: var(--color-text); color: var(--color-bg); }
.kc-store-chips .kb-chip { font-size: 13px; font-variant-numeric: tabular-nums; }
.kc-buy-list { list-style: none; display: flex; flex-direction: column; }
.kc-buy-row { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 8px 0; border-top: 1px solid var(--color-border); }
.kc-buy-row__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-buy-row__name { font-size: 15px; font-weight: 500; }
.kc-buy-row__offer { font-size: 13px; font-weight: 600; color: var(--color-apple); }
.kc-buy-row__price { flex: none; min-width: 56px; text-align: right; font-size: 15px; font-variant-numeric: tabular-nums; }
.kc-store-select { flex: 0 1 132px; min-width: 0; min-height: 36px; padding: 0 28px 0 12px; border: 0; border-radius: 999px; background-color: var(--color-surface-2); font-size: 13px; font-weight: 600; }
.kc-tips { padding: 14px 16px; border-radius: var(--radius-tile); background: var(--color-apple-soft); color: var(--color-text); }
.kc-tips__title { font-size: 13px; font-weight: 600; color: var(--color-apple); }
.kc-tips ul { margin: 4px 0 0; padding-left: 18px; font-size: 13px; line-height: 18px; }
.kc-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.kc-tools > .kb-meta { flex-basis: 100%; }

/* Faire les courses / Mes courses */
.kc-shop-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kc-shop-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-height: 64px; font: 600 13px/16px var(--font-body); }
.kc-shop-tile svg { color: var(--color-primary); }
.kc-courses.screen { background: var(--color-bg); }
.kc-courses__body { display: flex; flex-direction: column; gap: 16px; }
.kc-budget { display: flex; flex-direction: column; gap: 10px; }
.kc-budget__head { display: flex; align-items: center; justify-content: space-between; }
.kc-budget__value { font-size: 15px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kc-budget__value strong { font: 600 24px/30px var(--font-display); color: var(--color-text); letter-spacing: -.02em; }
.kc-link-btn { min-height: 44px; border: 0; background: none; color: var(--color-primary); font: 600 13px var(--font-body); cursor: pointer; }
.kc-bar--split .kc-total { flex: none; }
.kc-bar--split > .btn { flex: 1; min-width: 0; }

/* Mode magasin (plein écran) */
.kc-store {
  position: fixed; inset: 0; z-index: 200; display: flex; flex-direction: column;
  padding-top: var(--safe-top); background: var(--color-bg); color: var(--color-text);
}
.kc-store__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px 8px 8px; }
.kc-store__back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 10px; border: 0; border-radius: 999px; background: none; color: var(--color-text); font: 600 15px var(--font-body); cursor: pointer; }
.kc-store__head .kb-seg { flex: 0 0 auto; min-width: 150px; }
.kc-store__filter { padding: 0 var(--gutter) 8px; }
.kc-store__progress { display: flex; flex-direction: column; gap: 8px; padding: 4px var(--gutter) 8px; }
.kc-store__count { display: flex; align-items: baseline; justify-content: space-between; font-size: 13px; color: var(--color-muted); }
.kc-store__count strong { font: 600 24px/30px var(--font-display); color: var(--color-text); font-variant-numeric: tabular-nums; }
.kc-store__list { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 var(--gutter) 16px; }
.kc-store__rayon { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; }
.kc-store__line {
  display: flex; align-items: center; gap: 16px; width: 100%; min-height: 64px; padding: 12px 16px;
  border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface);
  color: var(--color-text); text-align: left; cursor: pointer;
}
.kc-store__line.is-fait { background: var(--color-surface-2); }
.kc-store__line.is-fait .kc-store__name { text-decoration: line-through; color: var(--color-muted); }
.kc-store__box { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border: 1.5px solid var(--color-subtle); border-radius: 7px; color: var(--color-on-primary); }
.kc-store__line.is-fait .kc-store__box { background: var(--color-primary); border-color: var(--color-primary); }
.kc-store__name { flex: 1; min-width: 0; font: 500 17px/22px var(--font-body); }
.kc-store__qty { font-size: 15px; color: var(--color-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.kc-one { flex: 1; display: flex; flex-direction: column; gap: 14px; padding: 4px var(--gutter) calc(16px + var(--safe-bottom)); overflow-y: auto; }
.kc-one__steps { display: flex; gap: 3px; }
.kc-one__steps > span { flex: 1; height: 4px; border-radius: 999px; background: var(--color-surface-2); }
.kc-one__steps > span.is-done { background: var(--color-primary); }
.kc-one__eyebrow { margin-top: 10px; font-size: 13px; font-weight: 600; color: var(--color-primary); font-variant-numeric: tabular-nums; }
.kc-one__card { display: flex; flex-direction: column; gap: 10px; padding: 20px; }
.kc-one__name { font: 600 40px/46px var(--font-display); letter-spacing: -.025em; overflow-wrap: anywhere; }
.kc-one__qty { font-size: 20px; line-height: 26px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kc-one__offer { font-size: 13px; font-weight: 600; color: var(--color-apple); }
.kc-one__finish { align-self: flex-start; margin-left: -12px; }
.kc-one__actions { margin-top: auto; display: grid; grid-template-columns: 2fr 3fr; gap: 10px; margin-inline: -8px; }
.kc-one__later, .kc-one__cart {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  min-height: 96px; border-radius: var(--radius-card); font: 600 15px var(--font-body); cursor: pointer;
}
.kc-one__later { border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); }
.kc-one__cart { border: 0; background: var(--color-raspberry); color: var(--color-on-raspberry); font-size: 20px; }
.kc-one__done { margin-top: 40px; }

/* Rentrer et ranger */
.kc-add-ways { display: flex; flex-direction: column; gap: 8px; }
.kc-add-ways__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kc-add-way {
  display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-height: 76px; padding: 14px;
  border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface);
  color: var(--color-text); font: 600 13px/16px var(--font-body); text-align: left; cursor: pointer;
}
.kc-add-way svg { color: var(--color-primary); }
.kc-add-way--main { flex-direction: row; align-items: center; gap: 14px; background: var(--color-primary-soft); border-color: var(--color-primary); }
.kc-add-way--main > span { display: flex; flex-direction: column; gap: 2px; }
.kc-add-way--main strong { font-size: 17px; line-height: 22px; }
.kc-add-way--basiques { flex-direction: row; align-items: center; gap: 14px; text-align: left; }
.kc-add-way--basiques > span { display: flex; flex-direction: column; gap: 2px; }
.kc-store-rows { list-style: none; display: flex; flex-direction: column; }
.kc-store-rows > li { border-top: 1px solid var(--color-border); }
.kc-put__line { display: flex; align-items: center; gap: 10px; min-height: 60px; }
.kc-put__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border: 0; background: none; color: var(--color-text); font: inherit; text-align: left; cursor: pointer; }
.kc-put__name { font-size: 15px; font-weight: 500; }
.kc-zone-seg { flex: none; display: flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--color-surface-2); }
.kc-zone-seg > button { display: grid; place-items: center; width: 40px; height: 36px; border: 0; border-radius: 999px; background: none; color: var(--color-muted); cursor: pointer; }
.kc-zone-seg > button[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); }
.kc-put__panel { display: flex; flex-direction: column; gap: 10px; padding: 0 0 14px; }
.kc-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kc-qty-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; }
.kc-qty-row__name { font-size: 15px; font-weight: 500; }
.kc-qty-row input { width: 88px; text-align: center; }
.kc-recap { font: 600 17px/24px var(--font-body); font-variant-numeric: tabular-nums; }
.kc-match { display: flex; align-items: center; gap: 12px; min-height: 56px; }
.kc-match__check { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: var(--color-primary); color: var(--color-on-primary); flex: none; }
.kc-match__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-match__name { font-size: 15px; font-weight: 500; }
.kc-check-row { display: flex; align-items: center; gap: 12px; min-height: 56px; cursor: pointer; }
.kc-check-row__text { display: flex; flex-direction: column; gap: 2px; font-size: 15px; }
.kc-overlay { position: fixed; inset: 0; z-index: 150; display: flex; flex-direction: column; background: var(--color-bg); overflow: auto; }
.kc-overlay__body { padding: 0 var(--gutter) 24px; }

/* Fin du parcours */
.kc-fin { min-height: 100%; }
.kc-fin__body { flex: 1; display: flex; flex-direction: column; gap: 20px; padding: 64px var(--gutter) 0; }
.kc-fin__head { display: flex; flex-direction: column; gap: 4px; }
.kc-fin__sub { font-size: 17px; color: var(--color-muted); }
.kc-fin__tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kc-fin__tile { padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface); }
.kc-fin__tile p { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--color-muted); }
.kc-fin__tile strong { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; color: var(--color-text); font-variant-numeric: tabular-nums; }
.kc-fin__tile--apple { background: var(--color-apple-soft); border-color: transparent; }
.kc-fin__tile--apple strong { color: var(--color-apple); }
.kc-fin__actions { margin-top: auto; }
.kc-fin__actions .kc-bar__row > .btn { min-height: 48px; font-size: 15px; }
.kc-bar--split > .btn { white-space: nowrap; padding-inline: 16px; }
.kc-step .kb-bottom-bar > .btn { white-space: nowrap; padding-inline: 14px; }
.kc-step .kb-bottom-bar > .btn--secondary { flex: 0 1 auto; font-size: 15px; }
@media (max-width: 380px) { .kc-step .kb-bottom-bar > .btn--secondary svg { display: none; } }
.parcours__corps > .kc-step { min-height: calc(100dvh - 210px - var(--safe-top)); }
.kc-step > .kb-bottom-bar { margin-top: auto; }
.kc-store__head .kb-seg > button { white-space: nowrap; padding-inline: 10px; }

/* ── Sous-écrans : comparateur, promos, magasins, cartes, budget ── */
.kc-sub { background: var(--color-bg); }
.kc-sub__body { display: flex; flex-direction: column; gap: 16px; }
.parcours__raccourci .kc-sub { overflow: visible; }
.parcours__raccourci .kc-sub .screen__body { overflow: visible; padding-inline: 0; }
.kc-col { flex-direction: column; align-items: flex-start; gap: 4px; }
.kc-center { text-align: center; }
.kc-note { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 10px; background: var(--color-surface-2); font-size: 13px; color: var(--color-muted); }
.kc-link-btn--start { align-self: flex-start; min-height: 36px; padding: 0; }
.kc-apple-banner { background: var(--color-apple-soft); color: var(--color-apple); }
.kc-info-banner { background: var(--color-surface-2); color: var(--color-muted); }
.kc-form { display: flex; flex-direction: column; gap: 14px; }
.kc-stack-list { display: flex; flex-direction: column; gap: 10px; }

/* Comparateur et tournée */
.kc-basket { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; }
.kc-basket.is-best { border: 2px solid var(--color-primary); padding: 15px 17px; }
.kc-basket__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; width: 100%; padding: 0; border: 0; background: none; color: var(--color-text); text-align: left; cursor: pointer; }
.kc-basket__name { font-size: 17px; font-weight: 600; }
.kc-basket__total { font: 600 20px/26px var(--font-display); letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.kc-basket__best { font-size: 13px; font-weight: 600; color: var(--color-primary); }
.kc-meter--muted > i { background: var(--color-muted); }
.kc-basket__items { display: flex; flex-direction: column; }
.kc-cmp-item { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-top: 1px solid var(--color-border); }
.kc-cmp-item__line { display: flex; justify-content: space-between; gap: 10px; font-size: 15px; }
.kc-cmp-item__price { font-weight: 600; font-variant-numeric: tabular-nums; }
.kc-tour { display: flex; flex-direction: column; gap: 12px; }
.kc-tour__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kc-tour__summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: var(--radius-tile); background: var(--color-primary-soft); }
.kc-tour__summary > span:first-child { display: flex; flex-direction: column; }
.kc-tour__summary strong { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kc-stops { list-style: none; display: flex; flex-direction: column; }
.kc-stop { position: relative; display: flex; gap: 14px; padding-bottom: 16px; }
.kc-stop:not(:last-child)::before { content: ""; position: absolute; left: 15px; top: 32px; bottom: 0; width: 2px; background: var(--color-border); }
.kc-stop__num { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 999px; background: var(--color-primary); color: var(--color-on-primary); font-weight: 600; font-size: 15px; }
.kc-stop__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.kc-stop__head { display: flex; justify-content: space-between; gap: 8px; }
.kc-stop__name { font-size: 17px; font-weight: 600; }
.kc-stop__total { font-weight: 600; font-variant-numeric: tabular-nums; }
.kc-stop__product { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; color: var(--color-muted); }
.kc-stop__price { white-space: nowrap; color: var(--color-text); font-variant-numeric: tabular-nums; }

/* Promos */
.kc-offers-head { display: flex; flex-direction: column; gap: 12px; }
.kc-offer-summary { font-size: 13px; font-weight: 600; color: var(--color-apple); }
.kc-promo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.kc-promo { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 14px; border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface); }
.kc-promo__top { display: flex; align-items: center; justify-content: space-between; }
.kc-promo__badge { color: var(--color-text); }
.kc-promo__del { display: grid; place-items: center; width: 36px; height: 36px; margin: -6px -8px -6px 0; border: 0; border-radius: 999px; background: none; color: var(--color-subtle); cursor: pointer; }
.kc-promo__name { font-size: 15px; line-height: 20px; font-weight: 600; overflow-wrap: anywhere; }
.kc-promo__price { margin-top: auto; font-size: 13px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.kc-promo__price strong { font-size: 17px; color: var(--color-text); }
.kc-file.is-disabled { opacity: .5; pointer-events: none; }
@media (max-width: 340px) { .kc-promo-grid { grid-template-columns: 1fr; } }

/* Magasins */
.kc-shop-list-card .kc-shop-row + .kc-shop-row { border-top: 1px solid var(--color-border); }
.kc-shop-row { display: flex; align-items: flex-start; gap: 14px; padding: 14px 8px 14px 16px; }
.kc-shop-row__initial { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--color-surface-2); font-weight: 600; font-size: 13px; }
.kc-shop-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.kc-shop-row__name { font-size: 15px; font-weight: 600; }
.kc-shop-row .kc-icon-btn { margin: -4px 0; }
.kc-switch-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); cursor: pointer; }
.kc-switch-row__text { display: flex; flex-direction: column; gap: 2px; }
.kc-switch-row__title { font-size: 15px; font-weight: 600; }
.kc-places { display: flex; flex-direction: column; }
.kc-place { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; border-top: 1px solid var(--color-border); }
.kc-place__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kc-place__add { color: var(--color-primary); }
.kc-attribution { padding-top: 8px; font-size: 11px; font-weight: 600; color: var(--color-text); white-space: nowrap; }
.v4-store-search-form { display: flex; flex-direction: column; gap: 10px; }
.v4-store-hint, .v4-store-feedback { font-size: 13px; line-height: 18px; color: var(--color-muted); }
.v4-store-search-error { color: var(--color-danger); }
.v4-inline-spinner { display: inline-block; width: 12px; height: 12px; margin-right: 4px; border-radius: 999px; background: var(--color-surface-2); vertical-align: -1px; animation: kb-pulse 1.4s ease-in-out infinite; }
.v4-store-suggestions { display: flex; flex-direction: column; max-height: 260px; overflow-y: auto; border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface); }
.v4-store-suggestion { display: flex; flex-direction: column; gap: 2px; width: 100%; min-height: 56px; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--color-border); background: none; color: var(--color-text); text-align: left; font: 15px var(--font-body); cursor: pointer; }
.v4-store-suggestion span, .v4-store-suggestion small { font-size: 13px; color: var(--color-muted); }
.v4-store-suggestion:disabled { opacity: .6; cursor: default; }
.v4-store-suggestions .v4-map-attribution, .v4-place-selected .v4-map-attribution { padding: 8px 14px; font-size: 11px; font-weight: 600; }
.v4-place-selected { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-radius: var(--radius-tile); background: var(--color-primary-soft); font-size: 13px; line-height: 18px; }
.v4-store-change, .v4-store-maps-link { align-self: flex-start; min-height: 44px; display: inline-flex; align-items: center; padding: 0; border: 0; background: none; color: var(--color-primary); font: 600 13px var(--font-body); text-decoration: none; cursor: pointer; }
.v4-store-options { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.v4-store-options legend { margin-bottom: 8px; font-size: 13px; font-weight: 500; color: var(--color-muted); }
.v4-store-options .kb-chip { font-size: 13px; }
.v4-store-form-actions { display: flex; gap: 8px; }
.v4-store-form-actions .btn { flex: 1; }

/* Cartes de fidélité */
.kc-wallet { display: flex; flex-direction: column; padding-bottom: 8px; }
.kc-wallet__card {
  position: relative; display: flex; flex-direction: column; justify-content: flex-start; gap: 8px;
  width: 100%; min-height: 150px; padding: 18px; margin-top: -64px;
  border: 1px solid var(--color-border); border-radius: var(--radius-card);
  background: var(--color-surface); color: var(--color-text); text-align: left; font: inherit; cursor: pointer;
  box-shadow: var(--shadow-float);
}
.kc-wallet__card:first-child { margin-top: 0; }
.kc-wallet__card--0 { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
.kc-wallet__card--2 { background: var(--color-surface-2); }
.kc-wallet__card:last-child { min-height: 200px; }
.kc-wallet__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.kc-wallet__brand { font-size: 17px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-wallet__amount { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.kc-wallet__meta { margin-top: auto; font-size: 13px; opacity: .85; }
.kc-wallet__card:not(:last-child) .kc-wallet__meta { display: none; }
.kc-barcode { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.kc-barcode--card { width: 100%; padding: 24px 20px; color: var(--color-text); cursor: pointer; }
.kc-barcode__svg { display: block; max-width: 100%; overflow: hidden; }
.kc-barcode__svg svg { display: block; max-width: 100%; height: auto; }
.kc-barcode__number { font: 600 20px/26px var(--font-body); letter-spacing: .12em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; text-align: center; }
.kc-barcode-overlay { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding: 24px; background: var(--color-scrim); cursor: pointer; animation: kb-fade 200ms ease; }
.kc-barcode-overlay .kc-barcode { width: min(100%, 460px); padding: 24px; border-radius: var(--radius-card); background: var(--color-surface); color: var(--color-text); }
.kc-barcode-overlay__hint { font-size: 13px; color: var(--color-bg); }
.kc-coupons { display: flex; flex-direction: column; }
.kc-coupon { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 0; border-top: 1px solid var(--color-border); }
.kc-coupon__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-coupon__title { font-size: 15px; font-weight: 500; }
.kc-coupon__price { font-size: 13px; font-weight: 600; color: var(--color-apple); }
.kc-coupon .kc-link-btn { min-height: 32px; }

/* Budget */
.kc-budget-screen { display: flex; flex-direction: column; gap: 20px; }
.kc-objective { display: flex; flex-direction: column; gap: 8px; }
.kc-goal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 6px; }
.kc-goal__field { display: flex; flex-direction: column; gap: 4px; padding: 10px 14px; border: 1px solid var(--color-border); border-radius: var(--radius-tile); background: var(--color-surface); }
.kc-goal__field:focus-within { border: 2px solid var(--color-primary); padding: 9px 13px; }
.kc-goal__label { font-size: 11px; line-height: 14px; color: var(--color-muted); }
.kc-goal__input { position: relative; display: flex; align-items: baseline; gap: 4px; }
.kc-goal__input input { width: 100%; min-height: 32px; padding: 0; border: 0; background: transparent; font: 600 20px/26px var(--font-display); font-variant-numeric: tabular-nums; }
.kc-goal__input input:focus-visible { box-shadow: none; outline: none; }
.kc-goal__currency { font-size: 15px; color: var(--color-muted); }
.kc-savings { display: flex; flex-direction: column; gap: 4px; }
.kc-savings__total { font: 600 56px/62px var(--font-display); letter-spacing: -.03em; color: var(--color-apple); font-variant-numeric: tabular-nums; }
.kc-bars { display: flex; align-items: flex-end; gap: 8px; height: 180px; }
.kc-bars__col { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.kc-bars__value { font-size: 10px; color: var(--color-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.kc-bars__track { flex: 1; width: 100%; display: flex; align-items: flex-end; }
.kc-bars__bar { width: 100%; border-radius: 8px; background: var(--color-primary-soft); }
.kc-bars__col.is-last .kc-bars__bar { background: var(--color-primary); }
.kc-bars__label { font-size: 11px; color: var(--color-muted); }

/* Scan ticket, code-barres, ajout manuel */
.kc-capture { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 20px; border: 1.5px dashed var(--color-primary); border-radius: var(--radius-card); background: var(--color-primary-soft); color: var(--color-text); text-align: center; cursor: pointer; }
.kc-capture input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.kc-capture__frame { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 999px; background: var(--color-surface); color: var(--color-primary); }
.kc-capture strong { font-size: 17px; }
.kc-ticket { position: fixed; inset: 0; z-index: 210; display: flex; flex-direction: column; padding-top: var(--safe-top); background: var(--color-bg); }
.kc-ticket__body { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 0 var(--gutter) 16px; }
.kc-ticket__summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kc-ticket__summary > span { display: flex; flex-direction: column; }
.kc-ticket__total { font: 600 24px/30px var(--font-display); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kc-ticket__list { display: flex; flex-direction: column; }
.kc-ticket__store { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 0 8px; }
.kc-ticket__store strong { flex: 1 1 100%; font-size: 13px; color: var(--color-muted); }
.kc-ticket__store select { flex: 1; min-width: 0; }
.kc-ticket__item { border-top: 1px solid var(--color-border); }
.kc-ticket__row { display: flex; align-items: center; gap: 12px; min-height: 56px; }
.kc-ticket__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kc-ticket__name { font-size: 15px; font-weight: 500; }
.kc-ticket__price { font-size: 15px; font-variant-numeric: tabular-nums; }
.kc-ticket__item.is-unchecked .kc-ticket__name, .kc-ticket__item.is-unchecked .kc-ticket__price { color: var(--color-subtle); }
.kc-ticket__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 0 14px 36px; }
.kc-ticket__wide { grid-column: 1 / -1; }
.kc-ticket .screen__header .kc-header-link { font-size: 13px; }
.kc-cam-overlay { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; justify-content: flex-end; background: var(--color-scrim); }
/* Fond de la vue caméra : noir dans les deux thèmes (le flux vidéo l'exige). */
.kc-cam { --kc-camera: #0E0B0D; display: flex; flex-direction: column; width: 100%; max-width: 720px; max-height: 100dvh; margin: 0 auto; overflow: hidden; }
.kc-cam__view { position: relative; flex: 1 1 auto; min-height: 220px; aspect-ratio: 4 / 3; background: var(--kc-camera); overflow: hidden; }
.kc-cam__view video { width: 100%; height: 100%; object-fit: cover; }
.kc-cam__aim { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.kc-cam__aim span { width: 75%; max-width: 300px; height: 140px; border: 2px solid var(--color-surface); border-radius: var(--radius-card); }
.kc-cam__error { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; color: var(--color-bg); text-align: center; font-size: 15px; }
:root[data-theme="dark"] .kc-cam__error { color: var(--color-text); }
.kc-cam__sheet { display: flex; flex-direction: column; gap: 12px; margin-top: -24px; padding: 20px var(--gutter) calc(20px + var(--safe-bottom)); border-radius: var(--radius-sheet) var(--radius-sheet) 0 0; background: var(--color-surface); position: relative; }
.kc-cam__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kc-cam__form { display: flex; gap: 8px; }
.kc-cam__form input { flex: 1; min-width: 0; }
.kc-add__label-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kc-add__verify { align-self: flex-start; padding-inline: 0; color: var(--color-primary); }
.kc-add__row > .form-field { min-width: 0; }
.kc-add__row select, .kc-add__row input { width: 100%; }
.kc-add__clear { align-self: flex-end; margin-top: -8px; }
.kc-add__qty { display: flex; align-items: center; gap: 12px; }
.kc-add__qty select { flex: 1; min-width: 0; }
.kc-stepper { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); }
.kc-stepper > button { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 999px; background: none; color: var(--color-primary); cursor: pointer; }
.kc-stepper > button:first-child { color: var(--color-muted); }
.kc-stepper > input { width: 64px; min-height: 40px; padding: 0; border: 0; background: transparent; text-align: center; font: 600 17px var(--font-body); font-variant-numeric: tabular-nums; }
.kc-stepper > input:focus-visible { outline: none; box-shadow: none; }
.kc-kchip--parve[aria-pressed="true"] { background: var(--parve-bg); border-color: var(--parve-fg); color: var(--parve-fg); }
.kc-kchip--laitier[aria-pressed="true"] { background: var(--laitier-bg); border-color: var(--laitier-fg); color: var(--laitier-fg); }
.kc-kchip--viande[aria-pressed="true"] { background: var(--viande-bg); border-color: var(--viande-fg); color: var(--viande-fg); }
.kc-kchip--nq[aria-pressed="true"] { background: var(--nq-bg); border-color: var(--nq-fg); color: var(--nq-fg); }
.kc-tips__text { font-size: 13px; line-height: 18px; margin-bottom: 8px; }
.parcours__corps > .courses-rentrer > .kc-step { min-height: calc(100dvh - 210px - var(--safe-top)); }
.kc-fin { min-height: calc(100dvh - 64px - var(--safe-top)); padding-bottom: 0; }
.kc-fin__body { padding-top: 40px; }
@media (max-width: 380px) {
  .kc-bar--split { flex-direction: column; align-items: stretch; gap: 8px; }
  .kc-bar--split .kc-total { flex-direction: row; align-items: baseline; justify-content: space-between; }
  .kc-bar--split > .btn { flex: none; width: 100%; }
}
.kc-home > [hidden] { display: none; }
.kc-icon-btn--tight { width: 36px; margin-right: -6px; }
.kc-empty .empty-screen__icon, .kc-shop-empty .empty-screen__icon, .kc-one__done .empty-screen__icon { flex: none; min-height: 88px; }
.kc-empty { flex: none; margin-top: 8px; }

/* Alertes de la tournée IA : une carte à la fois, garder ou passer */
.kc-alertes { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.kc-alerte { display: flex; flex-direction: column; gap: 6px; min-height: 180px; padding: 18px; }
.kc-alerte__type { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; min-height: 24px; padding: 0 10px; border-radius: 999px; font: 600 11px/1 var(--font-body); letter-spacing: .02em; }
.kc-alerte--danger .kc-alerte__type { background: var(--color-danger-soft); color: var(--color-danger); }
.kc-alerte--bientot .kc-alerte__type { background: var(--dlc-bientot-bg); color: var(--dlc-bientot-fg); }
.kc-alerte--neutre .kc-alerte__type { background: var(--color-surface-2); color: var(--color-muted); }
.kc-alerte__produit { margin-top: 6px; font-size: 24px; line-height: 30px; font-weight: 600; letter-spacing: -.02em; }
.kc-alerte__detail { font-size: 15px; line-height: 21px; color: var(--color-text); }
.kc-alertes__aide { text-align: center; }

/* Tournée modifiable : magasin de chaque article, puis validation. */
.kc-stop__product { flex-wrap: wrap; }
.kc-stop__move { flex-basis: 100%; min-height: 36px; font-size: 14px; }
.kc-tour__valider { margin-top: 12px; }
.kc-principal { display: grid; gap: 8px; }
.kc-principal__seuil { margin-top: 4px; }
