/* Gestures press the original control. Never transform this wrapper: a card's
   phone action bar remains fixed to the viewport, including its confirmation. */
.ui-task-swipe {
  position: relative;
  min-width: 0;
  touch-action: pan-y pinch-zoom;
  overscroll-behavior-x: contain;
}
.ui-task-swipe-affordance {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  pointer-events: none;
  visibility: hidden;
}
.ui-task-swipe-reveal {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1rem 1.5rem;
  border-radius: inherit;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  overflow-wrap: anywhere;
  opacity: 0;
  transition: opacity 120ms ease;
}
.ui-task-swipe-reveal-ignore {
  color: var(--color-accent-strong, #92400e);
  background: var(--color-warn-soft, #fff7e6);
  box-shadow: inset 0 0 0 2px var(--color-line-strong, #d3ccc0);
}
.ui-task-swipe-reveal-complete {
  color: var(--color-good-ink, #166534);
  background: var(--color-good-soft, #f0fdf4);
  box-shadow: inset 0 0 0 2px var(--color-good, #46844c);
}
.ui-task-swipe-reveal-arrow { flex: 0 0 auto; font-size: 1.75rem; }
[data-task-swipe-state] > .ui-task-swipe-affordance { visibility: visible; }
[data-task-swipe-direction="left"] > .ui-task-swipe-affordance [data-task-swipe-reveal="left"],
[data-task-swipe-direction="right"] > .ui-task-swipe-affordance [data-task-swipe-reveal="right"] {
  display: flex;
  opacity: 0.8;
}
[data-task-swipe-state="ready"] > .ui-task-swipe-affordance .ui-task-swipe-reveal { opacity: 1; }
.ui-task-swipe-hint { display: none; margin: 0.75rem 0 0; line-height: 1.4; }
.ui-task-swipe-alternatives :is(button, a, label, summary) { min-height: 2.75rem; }
@media (pointer: coarse) {
  .ui-task-swipe-hint { display: block; font-size: 0.75rem; }
  li.ui-task-swipe > .ui-task-swipe-hint { margin: 0; padding: 0 1rem 0.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ui-task-swipe-reveal { transition: none; }
}
@media print {
  .ui-task-swipe-affordance, .ui-task-swipe-hint { display: none; }
}
