@layer components.item {
  .item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
  }

  .item-form {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    min-height: 56px;
  }

  .item-form.checked {
    opacity: 0.6;
  }

  .item-form.checked .item-content {
    text-decoration: line-through;
  }

  .item-checkbox {
    width: 24px;
    height: 24px;
    cursor: pointer;
    flex-shrink: 0;
  }

  .item-content {
    flex: 1;
    font-size: var(--font-size-base);
    word-break: break-word;
  }

  .item-input {
    flex: 1;
    padding: var(--spacing-sm);
    font-size: var(--font-size-base);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius);
  }

  .edit-actions {
    display: flex;
    gap: var(--spacing-xs);
  }

  .btn-confirm {
    padding: var(--spacing-sm);
    background: var(--color-primary);
    color: white;
    border: none;
    border-radius: var(--radius);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    min-width: 36px;
  }

  .btn-confirm:hover {
    background: var(--color-primary-hover);
  }

  .btn-cancel {
    padding: var(--spacing-sm);
    background: transparent;
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    min-width: 36px;
  }

  .btn-cancel:hover {
    background: var(--color-bg);
  }

  /* New item form */
  .new-item-form {
    display: flex;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
  }

  .new-item-input {
    flex: 1;
    padding: var(--spacing-md);
    font-size: var(--font-size-base);
    border: 2px solid var(--color-border);
    border-radius: var(--radius);
    min-height: 48px;
  }

  .new-item-input:focus {
    outline: none;
    border-color: var(--color-primary);
  }

  .new-item-form .btn-primary {
    width: auto;
    padding: var(--spacing-md) var(--spacing-xl);
  }

  /* Textarea styling for bulk paste */
  .new-item-form textarea.new-item-input {
    resize: vertical;
    min-height: 80px;
    font-family: inherit;
  }

  /* Animation for items moving between tabs */
  .item {
    animation: fadeInItem 0.2s ease;
  }

  @keyframes fadeInItem {
    from {
      opacity: 0;
      transform: translateY(-10px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Turbo stream removing animation */
  turbo-frame .item {
    transition: opacity 0.2s ease, transform 0.2s ease;
  }

  /* Drag handle styles */
  .drag-handle {
    cursor: grab;
    color: var(--color-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-sm); /* Increased padding for better touch targets */
    border-radius: var(--radius);
    opacity: 0.5;
    transition: opacity 0.15s ease;

    /* Prevent browser scrolling during touch interactions */
    touch-action: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;

    /* Ensure minimum touch target size */
    min-width: 32px;
    min-height: 32px;
  }

  .drag-handle:hover {
    opacity: 1;
    background: var(--color-bg);
  }

  .drag-handle:active {
    cursor: grabbing;
  }

  /* SortableJS ghost element (placeholder) */
  .sortable-ghost {
    opacity: 0.4;
    background: var(--color-bg);
    border: 2px dashed var(--color-border);
  }

  /* SortableJS dragging element */
  .sortable-drag {
    opacity: 0.9;
    transform: rotate(2deg);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
    cursor: grabbing;
  }

  /* Prevent animations during sorting */
  .sortable-drag,
  .sortable-ghost {
    animation: none !important;
  }
}
