/* Member cook-feedback / ratings — R016 pilot */

.kc-ratings-badge {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  font-weight: 600;
  color: var(--kc-sage-800, #3d5245);
  margin: 0.35rem 0 1rem;
}

.kc-ratings {
  margin: var(--kc-space-6, 1.75rem) 0 var(--kc-space-7, 2.5rem);
  padding: var(--kc-space-5, 1.25rem) 0;
  border-top: 1px solid var(--kc-line, #ddd);
  border-bottom: 1px solid var(--kc-line, #ddd);
}

.kc-ratings__heading {
  font-family: var(--kc-font-display);
  font-size: var(--kc-text-2xl);
  font-weight: 600;
  margin: 0 0 var(--kc-space-2);
}

.kc-ratings__lede {
  font-family: var(--kc-font-body);
  color: var(--kc-ink-soft);
  margin: 0 0 var(--kc-space-5);
  max-width: 36rem;
}

.kc-ratings__community {
  margin-bottom: var(--kc-space-6);
  padding: var(--kc-space-5);
  background: var(--kc-sage-50);
  border: 1px solid var(--kc-sage-200);
  border-radius: var(--kc-radius-md);
}

.kc-ratings__headline {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-lg);
  font-weight: 600;
  margin: 0 0 var(--kc-space-3);
  color: var(--kc-ink);
}

.kc-ratings__threshold {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  color: var(--kc-ink-muted);
  margin: 0;
}

.kc-ratings__dist {
  display: grid;
  gap: 0.35rem;
  margin: var(--kc-space-4) 0;
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
}

.kc-ratings__dist-row {
  display: grid;
  grid-template-columns: 3.5rem 1fr 2.5rem;
  gap: 0.5rem;
  align-items: center;
}

.kc-ratings__bar {
  height: 0.55rem;
  background: var(--kc-paper-deep);
  border-radius: 999px;
  overflow: hidden;
}

.kc-ratings__bar > span {
  display: block;
  height: 100%;
  background: var(--kc-sage-600);
}

.kc-ratings__chips-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: var(--kc-space-3);
}

.kc-ratings__chip-stat {
  font-family: var(--kc-font-ui);
  font-size: 0.72rem;
  padding: 0.3rem 0.55rem;
  border-radius: var(--kc-radius-sm, 6px);
  background: var(--kc-white);
  border: 1px solid var(--kc-line);
  color: var(--kc-ink-soft);
}

.kc-ratings__ai {
  margin-top: var(--kc-space-4);
}

.kc-ratings__ai h3 {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  font-weight: 600;
  margin: 0 0 var(--kc-space-2);
  letter-spacing: 0.02em;
}

.kc-ratings__ai p {
  margin: 0;
  font-family: var(--kc-font-body);
  color: var(--kc-ink-soft);
}

.kc-ratings__form {
  display: grid;
  gap: var(--kc-space-5);
}

.kc-ratings__fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.kc-ratings__legend {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  font-weight: 600;
  margin-bottom: var(--kc-space-3);
  color: var(--kc-ink);
}

.kc-ratings__stars {
  display: inline-flex;
  gap: 0.25rem;
}

.kc-ratings__star {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--kc-line-strong);
  border-radius: var(--kc-radius-sm, 6px);
  background: var(--kc-white);
  color: var(--kc-ink-faint);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.kc-ratings__star[aria-checked="true"],
.kc-ratings__star.is-active {
  color: var(--kc-honey);
  border-color: var(--kc-honey);
  background: #fff9ef;
}

.kc-ratings__star:hover,
.kc-ratings__star:focus-visible {
  border-color: var(--kc-sage-600);
  color: var(--kc-sage-700);
}

.kc-ratings__machines {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.kc-ratings__machine {
  font-family: var(--kc-font-ui);
  font-size: 0.85rem;
  min-height: 2.5rem;
  padding: 0.45rem 1rem;
  border-radius: var(--kc-radius-md);
  border: 1px solid var(--kc-line-strong);
  background: var(--kc-white);
  cursor: pointer;
}

.kc-ratings__machine[aria-checked="true"] {
  background: var(--kc-sage-100);
  border-color: var(--kc-sage-600);
  color: var(--kc-sage-900);
  font-weight: 600;
}

.kc-ratings__chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.kc-ratings__chip {
  font-family: var(--kc-font-ui);
  font-size: 0.8rem;
  min-height: 2.25rem;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--kc-line-strong);
  background: var(--kc-surface);
  color: var(--kc-ink-soft);
  cursor: pointer;
}

.kc-ratings__chip[aria-checked="true"] {
  background: var(--kc-sage-600);
  border-color: var(--kc-sage-600);
  color: #fff;
}

.kc-ratings__chip:focus-visible,
.kc-ratings__machine:focus-visible,
.kc-ratings__star:focus-visible {
  outline: 2px solid var(--kc-sage-700);
  outline-offset: 2px;
}

.kc-ratings__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--kc-space-3);
  align-items: center;
}

.kc-ratings__gate {
  padding: var(--kc-space-4);
  background: var(--kc-paper-warm);
  border-radius: var(--kc-radius-md);
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  color: var(--kc-ink-soft);
}

.kc-ratings__login {
  display: grid;
  gap: var(--kc-space-3);
  max-width: 22rem;
  margin-top: var(--kc-space-3);
}

.kc-ratings__login label {
  display: grid;
  gap: 0.25rem;
  font-family: var(--kc-font-ui);
  font-size: 0.8rem;
}

.kc-ratings__login input {
  min-height: 2.5rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--kc-line-strong);
  border-radius: var(--kc-radius-sm, 6px);
  font-family: var(--kc-font-ui);
}

.kc-ratings__msg {
  font-family: var(--kc-font-ui);
  font-size: 0.85rem;
  margin: 0;
}

.kc-ratings__msg--ok {
  color: var(--kc-success);
}

.kc-ratings__msg--err {
  color: var(--kc-error);
}

.kc-ratings__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
