/* Responses: neutral controls until selected; semantic color confirms the choice. */
.present-status { background: var(--soft); color: var(--green); }
.absent-status { background: var(--redsoft); color: var(--red); }
.pending-status { background: var(--ambersoft); color: var(--amber); }
.published { background: var(--bluesoft); color: var(--blue); }
.answer-actions { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: .625rem; }
.answer-actions button {
  min-width: 0;
  min-height: var(--touch-target);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: .35rem .6rem;
  background: var(--surface-content-soft);
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: .82rem;
  font-weight: 600;
  transition: transform .14s ease, color .14s ease, background-color .14s ease;
  -webkit-tap-highlight-color: transparent;
}
.answer-actions button:active { transform: scale(.98); }
.answer-actions[data-answer="present"] .present { border-color: var(--green); background: var(--soft); color: var(--green); }
.answer-actions[data-answer="absent"] .absent { border-color: var(--red); background: var(--redsoft); color: var(--red); }
.answer .answer-actions { margin-top: .35rem; }
/* 32px visible surface inside an independent 44px touch target. */
.answer .answer-actions button:is(.present, .absent) { display: flex; align-items: center; padding: 6px 0; border: 0; background: transparent; box-shadow: none; }
.answer .answer-choice-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  width: 100%;
  min-height: 32px;
  padding: .25rem .45rem;
  border: 1px solid var(--surface-content-border);
  border-radius: 9px;
  background: var(--surface-content-soft);
  color: var(--ink);
  line-height: 1.2;
  box-shadow: none;
}
.answer .answer-actions[data-answer="present"] .present .answer-choice-label { border-color: color-mix(in srgb, var(--green) 65%, transparent); background: var(--soft); color: var(--green); }
.answer .answer-actions[data-answer="absent"] .absent .answer-choice-label { border-color: color-mix(in srgb, var(--red) 65%, transparent); background: var(--redsoft); color: var(--red); }
.answer .answer-actions[data-answer="present"] .present .answer-choice-label::before { content: "✓"; }
.answer .answer-actions[data-answer="absent"] .absent .answer-choice-label::before { content: "×"; }
.answer-actions button:disabled { cursor: not-allowed; opacity: .5; }
.answer-actions button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.convocation-status { margin: .65rem 0 .35rem; padding: 0; border: 0; background: transparent; color: var(--ink); font-size: .88rem; font-weight: 600; text-align: center; line-height: 1.4; }
.convocation-status.is-convoked { color: var(--green); }
.convocation-status.is-not-convoked { color: var(--red); }
.composition-status { margin: .7rem 0; font-weight: 600; color: var(--ink); }
@media (prefers-reduced-motion: reduce) { .answer-actions button { transition: none; } .answer-actions button:active { transform: none; } }
@media (prefers-contrast: more) { .answer .answer-choice-label { border-color: var(--ink); background: var(--surface-content-soft); box-shadow: none; } }
